weka.core.converters

## Class AbstractLoader

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

- All Implemented Interfaces:
    java.io.Serializable, Loader, RevisionHandler
  Direct Known Subclasses:
    AbstractFileLoader, DatabaseLoader, TextDirectoryLoader

      public abstract class AbstractLoader
      extends java.lang.Object
      implements Loader

  Abstract class gives default implementation of setSource methods. All other methods must be overridden.
  Version:
    $Revision: 12184 $
  Author:
    Richard Kirkby (rkirkby@cs.waikato.ac.nz)
  See Also:
    Serialized Form

- - ### Nested Class Summary

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

      `Loader.StructureNotReadyException`

  - ### Field Summary

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

      `BATCH, INCREMENTAL, NONE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractLoader()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract Instances` | `getDataSet()` Return the full data set.
    `abstract 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.
    `abstract Instances` | `getStructure()` Determines and returns (if possible) the structure (internally the header) of the data set as an empty set of instances.
    `void` | `reset()` Default implementation sets retrieval mode to NONE
    `void` | `setRetrieval(int mode)` Sets the retrieval mode.
    `void` | `setSource(java.io.File file)` Default implementation throws an IOException.
    `void` | `setSource(java.io.InputStream input)` Default implementation throws an IOException.

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

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

    - ### Methods inherited from interface weka.core.RevisionHandler

      `getRevision`

- - ### Constructor Detail

    - #### AbstractLoader

          public AbstractLoader()

  - ### Method Detail

    - #### setRetrieval

          public void setRetrieval(int mode)

      Sets the retrieval mode.
      Specified by:
        `setRetrieval` in interface `Loader`
      Parameters:
        `mode` - the retrieval mode

    - #### setSource

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

      Default implementation throws an IOException.
      Specified by:
        `setSource` in interface `Loader`
      Parameters:
        `file` - the File
      Throws:
        `java.io.IOException` - always

    - #### reset

          public void reset()
                     throws java.lang.Exception

      Default implementation sets retrieval mode to NONE
      Specified by:
        `reset` in interface `Loader`
      Throws:
        `never.`
        `java.lang.Exception` - if Loader can't be reset for some reason.

    - #### setSource

          public void setSource(java.io.InputStream input)
                         throws java.io.IOException

      Default implementation throws an IOException.
      Specified by:
        `setSource` in interface `Loader`
      Parameters:
        `input` - the input stream
      Throws:
        `java.io.IOException` - always

    - #### getStructure

          public abstract Instances getStructure()
                                          throws java.io.IOException

      Description copied from interface: `Loader`
      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`
      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

                public_normal_behavior
                  requires: model_sourceSupplied == true
                            && model_structureDetermined == false
                            && (* successful parse *);
                  modifiable: model_structureDetermined;
                  ensures: \result != null
                           && \result.numInstances() == 0
                           && model_structureDetermined == true;
              also
                public_exceptional_behavior
                  requires: model_sourceSupplied == false
                            || (* unsuccessful parse *);
                  signals: (IOException);

    - #### getDataSet

          public abstract Instances getDataSet()
                                        throws java.io.IOException

      Description copied from interface: `Loader`
      Return the full data set. If the structure hasn't yet been determined by a call to getStructure then the method should do so before processing the rest of the data set.
      Specified by:
        `getDataSet` in interface `Loader`
      Returns:
        the full data set as an Instances object
      Throws:
        `java.io.IOException` - if there is an error during parsing or if getNextInstance has been called on this source (either incremental or batch loading can be used, not both).

                public_normal_behavior
                  requires: model_sourceSupplied == true
                            && (* successful parse *);
                  modifiable: model_structureDetermined;
                  ensures: \result != null
                           && \result.numInstances() >= 0
                           && model_structureDetermined == true;
              also
                public_exceptional_behavior
                  requires: model_sourceSupplied == false
                            || (* unsuccessful parse *);
                  signals: (IOException);

    - #### getNextInstance

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

      Description copied from interface: `Loader`
      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`
      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 or if getDataSet has been called on this source (either incremental or batch loading can be used, not both).