weka.core.converters

## Class C45Loader

- java.lang.Object
- - weka.core.converters.AbstractLoader
  - - weka.core.converters.AbstractFileLoader
    - - weka.core.converters.C45Loader

- All Implemented Interfaces:
    java.io.Serializable, BatchConverter, FileSourcedConverter, IncrementalConverter, Loader, EnvironmentHandler, RevisionHandler

      public class C45Loader
      extends AbstractFileLoader
      implements BatchConverter, IncrementalConverter

  Reads a file that is C45 format. Can take a filestem or filestem with .names or .data appended. Assumes that path/<filestem>.names and path/<filestem>.data exist and contain the names and data respectively.

  Version:
    $Revision: 9290 $
  Author:
    Mark Hall (mhall@cs.waikato.ac.nz)
  See Also:
    `Loader`, Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface weka.core.converters.Loader

      `Loader.StructureNotReadyException`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `FILE_EXTENSION` the file extension

    - ### Fields inherited from class weka.core.converters.AbstractFileLoader

      `FILE_EXTENSION_COMPRESSED`

    - ### Fields inherited from interface weka.core.converters.Loader

      `BATCH, INCREMENTAL, NONE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `C45Loader()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Instances` | `getDataSet()` Return the full data set.
    `java.lang.String` | `getFileDescription()` Returns a description of the file type.
    `java.lang.String` | `getFileExtension()` Get the file extension used for arff files
    `java.lang.String[]` | `getFileExtensions()` Gets all the file extensions used for this type of file
    `Instance` | `getNextInstance(Instances structure)` Read the data set incrementally---get the next instance in the data set or returns null if there are no more instances to get.
    `java.lang.String` | `getRevision()` Returns the revision string.
    `Instances` | `getStructure()` Determines and returns (if possible) the structure (internally the header) of the data set as an empty set of instances.
    `java.lang.String` | `globalInfo()` Returns a string describing this attribute evaluator
    `static void` | `main(java.lang.String[] args)` Main method for testing this class.
    `void` | `reset()` Resets the Loader ready to read a new data set or the same data set again.
    `void` | `setSource(java.io.File file)` Resets the Loader object and sets the source of the data set to be the supplied File object.

    - ### Methods inherited from class weka.core.converters.AbstractFileLoader

      `getUseRelativePath, retrieveFile, runFileLoader, setEnvironment, setFile, setUseRelativePath, useRelativePathTipText`

    - ### Methods inherited from class weka.core.converters.AbstractLoader

      `setRetrieval, setSource`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### FILE_EXTENSION

          public static java.lang.String FILE_EXTENSION

      the file extension

  - ### Constructor Detail

    - #### C45Loader

          public C45Loader()

  - ### Method Detail

    - #### globalInfo

          public java.lang.String globalInfo()

      Returns a string describing this attribute evaluator
      Returns:
        a description of the evaluator suitable for displaying in the explorer/experimenter gui

    - #### reset

          public void reset()
                     throws java.io.IOException

      Resets the Loader ready to read a new data set or the same data set again.
      Specified by:
        `reset` in interface `Loader`
      Overrides:
        `reset` in class `AbstractFileLoader`
      Throws:
        `java.io.IOException` - if something goes wrong

    - #### getFileExtension

          public java.lang.String getFileExtension()

      Get the file extension used for arff files
      Specified by:
        `getFileExtension` in interface `FileSourcedConverter`
      Returns:
        the file extension

    - #### getFileExtensions

          public java.lang.String[] getFileExtensions()

      Gets all the file extensions used for this type of file
      Specified by:
        `getFileExtensions` in interface `FileSourcedConverter`
      Returns:
        the file extensions

    - #### getFileDescription

          public java.lang.String getFileDescription()

      Returns a description of the file type.
      Specified by:
        `getFileDescription` in interface `FileSourcedConverter`
      Returns:
        a short file description

    - #### setSource

          public void setSource(java.io.File file)
                         throws java.io.IOException

      Resets the Loader object and sets the source of the data set to be the supplied File object.
      Specified by:
        `setSource` in interface `Loader`
      Overrides:
        `setSource` in class `AbstractFileLoader`
      Parameters:
        `file` - the source file.
      Throws:
        `java.io.IOException` - if an error occurs

    - #### getStructure

          public Instances getStructure()
                                 throws java.io.IOException

      Determines and returns (if possible) the structure (internally the header) of the data set as an empty set of instances.
      Specified by:
        `getStructure` in interface `Loader`
      Specified by:
        `getStructure` in class `AbstractLoader`
      Returns:
        the structure of the data set as an empty set of Instances
      Throws:
        `java.io.IOException` - if an error occurs

    - #### getDataSet

          public Instances getDataSet()
                               throws java.io.IOException

      Return the full data set. If the structure hasn't yet been determined by a call to getStructure then method should do so before processing the rest of the data set.
      Specified by:
        `getDataSet` in interface `Loader`
      Specified by:
        `getDataSet` in class `AbstractLoader`
      Returns:
        the structure of the data set as an empty set of Instances
      Throws:
        `java.io.IOException` - if there is no source or parsing fails

    - #### getNextInstance

          public Instance getNextInstance(Instances structure)
                                   throws java.io.IOException

      Read the data set incrementally---get the next instance in the data set or returns null if there are no more instances to get. If the structure hasn't yet been determined by a call to getStructure then method should do so before returning the next instance in the data set. If it is not possible to read the data set incrementally (ie. in cases where the data set structure cannot be fully established before all instances have been seen) then an exception should be thrown.
      Specified by:
        `getNextInstance` in interface `Loader`
      Specified by:
        `getNextInstance` in class `AbstractLoader`
      Parameters:
        `structure` - the dataset header information, will get updated in case of string or relational attributes
      Returns:
        the next instance in the data set as an Instance object or null if there are no more instances to be read
      Throws:
        `java.io.IOException` - if there is an error during parsing

    - #### getRevision

          public java.lang.String getRevision()

      Returns the revision string.
      Specified by:
        `getRevision` in interface `RevisionHandler`
      Returns:
        the revision

    - #### main

          public static void main(java.lang.String[] args)

      Main method for testing this class.
      Parameters:
        `args` - should contain <filestem>[.names | data]