Package weka.core.converters

# Class AbstractLoader

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

All Implemented Interfaces:
  `Serializable`, `Loader`, `RevisionHandler`

Direct Known Subclasses:
  `AbstractFileLoader`, `DatabaseLoader`, `TextDirectoryLoader`

public abstract class AbstractLoader extends 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
  Description
  `AbstractLoader()`

- ## Method Summary

  Modifier and Type
  Method
  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(File file)`
  Default implementation throws an IOException.
  `void`
  `setSource(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 Details

  - ### AbstractLoader

    public AbstractLoader()

- ## Method Details

  - ### 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(File file) throws IOException
    Default implementation throws an IOException.
    Specified by:
      `setSource` in interface `Loader`
    Parameters:
      `file` - the File
    Throws:
      `IOException` - always

  - ### reset

    public void reset() throws Exception
    Default implementation sets retrieval mode to NONE
    Specified by:
      `reset` in interface `Loader`
    Throws:
      `Exception` - if Loader can't be reset for some reason.

  - ### setSource

    public void setSource(InputStream input) throws IOException
    Default implementation throws an IOException.
    Specified by:
      `setSource` in interface `Loader`
    Parameters:
      `input` - the input stream
    Throws:
      `IOException` - always

  - ### getStructure

    public abstract Instances getStructure() throws 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:
      `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 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:
      `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 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:
      `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).