Class Sorter

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, EventListener, Accessible, EnvironmentHandler, BeanCommon, DataSource, DataSourceListener, EventConstraints, InstanceListener, StructureProducer, TestSetListener, TrainingSetListener, Visible

Sorts incoming instances in ascending or descending order according to the values of user specified attributes. Instances can be sorted according to multiple attributes (defined in order). Handles data sets larger than can be fit into main memory via instance connections and specifying the in-memory buffer size. Implements a merge-sort by writing the sorted in-memory buffer to a file when full and then interleaving instances from the disk based file(s) when the incoming stream has finished.

Version:
$Revision: 11132 $
Author:
Mark Hall (mhall{[at]}pentaho{[dot]}com)
See Also:
  • Constructor Details

    • Sorter

      public Sorter()
      Constructs a new Sorter
  • Method Details

    • globalInfo

      public String globalInfo()
      Help information suitable for displaying in the GUI.
      Returns:
      a description of this component
    • eventGeneratable

      public boolean eventGeneratable(String eventName)
      Returns true if, at the current time, the named event could be generated.
      Specified by:
      eventGeneratable in interface EventConstraints
      Parameters:
      eventName - the name of the event in question
      Returns:
      true if the named event could be generated
    • acceptInstance

      public void acceptInstance(InstanceEvent e)
      Accept and process an instance event
      Specified by:
      acceptInstance in interface InstanceListener
      Parameters:
      e - an InstanceEvent value
    • acceptTestSet

      public void acceptTestSet(TestSetEvent e)
      Accept and process a test set event
      Specified by:
      acceptTestSet in interface TestSetListener
      Parameters:
      e - a TestSetEvent value
    • acceptTrainingSet

      public void acceptTrainingSet(TrainingSetEvent e)
      Accept and process a training set event
      Specified by:
      acceptTrainingSet in interface TrainingSetListener
      Parameters:
      e - a TrainingSetEvent value
    • getBufferSize

      public String getBufferSize()
      Get the size of the in-memory buffer
      Returns:
      the size of the in-memory buffer
    • setBufferSize

      public void setBufferSize(String buffSize)
      Set the size of the in-memory buffer
      Parameters:
      buffSize - the size of the in-memory buffer
    • setTempDirectory

      public void setTempDirectory(String tempDir)
      Set the directory to use for temporary files during incremental operation
      Parameters:
      tempDir - the temp dir to use
    • getTempDirectory

      public String getTempDirectory()
      Get the directory to use for temporary files during incremental operation
      Returns:
      the temp dir to use
    • setSortDetails

      public void setSortDetails(String sortDetails)
      Set the sort rules to use
      Parameters:
      sortDetails - the sort rules in internal string representation
    • getSortDetails

      public String getSortDetails()
      Get the sort rules to use
      Returns:
      the sort rules in internal string representation
    • acceptDataSet

      public void acceptDataSet(DataSetEvent e)
      Accept and process a data set event
      Specified by:
      acceptDataSet in interface DataSourceListener
      Parameters:
      e - a DataSetEvent value
    • addDataSourceListener

      public void addDataSourceListener(DataSourceListener dsl)
      Add a datasource listener
      Specified by:
      addDataSourceListener in interface DataSource
      Parameters:
      dsl - the datasource listener to add
    • removeDataSourceListener

      public void removeDataSourceListener(DataSourceListener dsl)
      Remove a datasource listener
      Specified by:
      removeDataSourceListener in interface DataSource
      Parameters:
      dsl - the datasource listener to remove
    • addInstanceListener

      public void addInstanceListener(InstanceListener dsl)
      Add an instance listener
      Specified by:
      addInstanceListener in interface DataSource
      Parameters:
      dsl - the instance listener to add
    • removeInstanceListener

      public void removeInstanceListener(InstanceListener dsl)
      Remove an instance listener
      Specified by:
      removeInstanceListener in interface DataSource
      Parameters:
      dsl - the instance listener to remove
    • useDefaultVisual

      public void useDefaultVisual()
      Use the default visual representation
      Specified by:
      useDefaultVisual in interface Visible
    • setVisual

      public void setVisual(BeanVisual newVisual)
      Set a new visual representation
      Specified by:
      setVisual in interface Visible
      Parameters:
      newVisual - a BeanVisual value
    • getVisual

      public BeanVisual getVisual()
      Get the visual representation
      Specified by:
      getVisual in interface Visible
      Returns:
      a BeanVisual value
    • setCustomName

      public void setCustomName(String name)
      Set a custom (descriptive) name for this bean
      Specified by:
      setCustomName in interface BeanCommon
      Parameters:
      name - the name to use
    • getCustomName

      public String getCustomName()
      Get the custom (descriptive) name for this bean (if one has been set)
      Specified by:
      getCustomName in interface BeanCommon
      Returns:
      the custom name (or the default name)
    • stop

      public void stop()
      Stop any processing that the bean might be doing.
      Specified by:
      stop in interface BeanCommon
    • isBusy

      public boolean isBusy()
      Returns true if. at this time, the bean is busy with some (i.e. perhaps a worker thread is performing some calculation).
      Specified by:
      isBusy in interface BeanCommon
      Returns:
      true if the bean is busy.
    • setLog

      public void setLog(Logger logger)
      Set a logger
      Specified by:
      setLog in interface BeanCommon
      Parameters:
      logger - a weka.gui.Logger value
    • connectionAllowed

      public boolean connectionAllowed(EventSetDescriptor esd)
      Returns true if, at this time, the object will accept a connection via the named event
      Specified by:
      connectionAllowed in interface BeanCommon
      Parameters:
      esd - the EventSetDescriptor for the event in question
      Returns:
      true if the object will accept a connection
    • connectionAllowed

      public boolean connectionAllowed(String eventName)
      Returns true if, at this time, the object will accept a connection via the named event
      Specified by:
      connectionAllowed in interface BeanCommon
      Parameters:
      eventName - the name of the event
      Returns:
      true if the object will accept a connection
    • connectionNotification

      public void connectionNotification(String eventName, Object source)
      Notify this object that it has been registered as a listener with a source for receiving events described by the named event This object is responsible for recording this fact.
      Specified by:
      connectionNotification in interface BeanCommon
      Parameters:
      eventName - the event
      source - the source with which this object has been registered as a listener
    • disconnectionNotification

      public void disconnectionNotification(String eventName, Object source)
      Notify this object that it has been deregistered as a listener with a source for named event. This object is responsible for recording this fact.
      Specified by:
      disconnectionNotification in interface BeanCommon
      Parameters:
      eventName - the event
      source - the source with which this object has been registered as a listener
    • getStructure

      public Instances getStructure(String eventName)
      Get the structure of the output encapsulated in the named event. If the structure can't be determined in advance of seeing input, or this StructureProducer does not generate the named event, null should be returned.
      Specified by:
      getStructure in interface StructureProducer
      Parameters:
      eventName - the name of the output event that encapsulates the requested output.
      Returns:
      the structure of the output encapsulated in the named event or null if it can't be determined in advance of seeing input or the named event is not generated by this StructureProducer.
    • getConnectedFormat

      public Instances getConnectedFormat()
      Returns the structure of the incoming instances (if any)
      Returns:
      an Instances value
    • setEnvironment

      public void setEnvironment(Environment env)
      Set environment variables to use
      Specified by:
      setEnvironment in interface EnvironmentHandler
      Parameters:
      env - the environment variables to use