Package weka.filters

# Class MultiFilter

java.lang.Object
weka.filters.Filter
weka.filters.SimpleFilter
weka.filters.SimpleStreamFilter
weka.filters.MultiFilter

All Implemented Interfaces:
  `Serializable`, `CapabilitiesHandler`, `CapabilitiesIgnorer`, `CommandlineRunnable`, `OptionHandler`, `Randomizable`, `RevisionHandler`, `WeightedAttributesHandler`, `WeightedInstancesHandler`, `StreamableFilter`

public class MultiFilter extends SimpleStreamFilter implements WeightedAttributesHandler, WeightedInstancesHandler, Randomizable
Applies several filters successively. In case all supplied filters are StreamableFilters, it will act as a streamable one, too.

Valid options are:

     -D
      Turns on output of debugging information.

     -F <classname [options]>
      A filter to apply (can be specified multiple times).

     -S num

      The random number seed that will be passed through all filters that are randomizable (default 1).

Version:
  $Revision: 15792 $
Author:
  FracPete (fracpete at waikato dot ac dot nz)
See Also:
  - `StreamableFilter`
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MultiFilter()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `batchFinished()`
  Signify that this batch of input to the filter is finished.
  `String`
  `filtersTipText()`
  Returns the tip text for this property
  `Capabilities`
  `getCapabilities()`
  Returns the Capabilities of this filter.
  `Filter`
  `getFilter(int index)`
  Gets a single filter from the set of available filters.
  `Filter[]`
  `getFilters()`
  Gets the list of possible filters to choose from.
  `String[]`
  `getOptions()`
  Gets the current settings of the filter.
  `String`
  `getRevision()`
  Returns the revision string.
  `int`
  `getSeed()`
  Gets the seed for the random number generations
  `String`
  `globalInfo()`
  Returns a string describing this filter
  `boolean`
  `isStreamableFilter()`
  tests whether all the enclosed filters are streamable
  `Enumeration<Option>`
  `listOptions()`
  Returns an enumeration describing the available options.
  `static void`
  `main(String[] args)`
  Main method for executing this class.
  `boolean`
  `mayRemoveInstanceAfterFirstBatchDone()`
  RemoveWithValues may return false from input() (thus not making an instance available immediately) even after the first batch has been completed due to matching a value that the user wants to remove.
  `String`
  `seedTipText()`
  Returns the tip text for this property
  `void`
  `setFilters(Filter[] filters)`
  Sets the list of possible filters to choose from.
  `void`
  `setOptions(String[] options)`
  Parses a list of options for this object.
  `void`
  `setSeed(int seed)`
  Set the seed for random number generation.

  ### Methods inherited from class weka.filters.SimpleStreamFilter

  `input`

  ### Methods inherited from class weka.filters.SimpleFilter

  `setInputFormat`

  ### Methods inherited from class weka.filters.Filter

  `batchFilterFile, debugTipText, doNotCheckCapabilitiesTipText, filterFile, getCapabilities, getCopyOfInputFormat, getDebug, getDoNotCheckCapabilities, getOutputFormat, isFirstBatchDone, isNewBatch, isOutputFormatDefined, makeCopies, makeCopy, numPendingOutput, output, outputPeek, postExecution, preExecution, run, runFilter, setDebug, setDoNotCheckCapabilities, toString, useFilter, wekaStaticWrapper`

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

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

- ## Constructor Details

  - ### MultiFilter

    public MultiFilter()

- ## Method Details

  - ### globalInfo

    public String globalInfo()
    Returns a string describing this filter
    Specified by:
      `globalInfo` in class `SimpleFilter`
    Returns:
      a description of the filter suitable for displaying in the explorer/experimenter gui

  - ### listOptions

    public Enumeration<Option> listOptions()
    Returns an enumeration describing the available options.
    Specified by:
      `listOptions` in interface `OptionHandler`
    Overrides:
      `listOptions` in class `Filter`
    Returns:
      an enumeration of all the available options.

  - ### setOptions

    public void setOptions(String[] options) throws Exception
    Parses a list of options for this object.

    Valid options are:

         -D
          Turns on output of debugging information.

         -S num

          The random number seed that will be passed through all filters that are randomizable (default 1).

         -F <classname [options]>
          A filter to apply (can be specified multiple times).

    Specified by:
      `setOptions` in interface `OptionHandler`
    Overrides:
      `setOptions` in class `Filter`
    Parameters:
      `options` - the list of options as an array of strings
    Throws:
      `Exception` - if an option is not supported

  - ### getOptions

    public String[] getOptions()
    Gets the current settings of the filter.
    Specified by:
      `getOptions` in interface `OptionHandler`
    Overrides:
      `getOptions` in class `Filter`
    Returns:
      an array of strings suitable for passing to setOptions

  - ### getCapabilities

    public Capabilities getCapabilities()
    Returns the Capabilities of this filter.
    Specified by:
      `getCapabilities` in interface `CapabilitiesHandler`
    Overrides:
      `getCapabilities` in class `Filter`
    Returns:
      the capabilities of this object
    See Also:
      - `Capabilities`

  - ### setFilters

    public void setFilters(Filter[] filters)
    Sets the list of possible filters to choose from. Also resets the state of the filter (this reset doesn't affect the options).
    Parameters:
      `filters` - an array of filters with all options set.
    See Also:
      - `reset()`

  - ### getFilters

    public Filter[] getFilters()
    Gets the list of possible filters to choose from.
    Returns:
      the array of Filters

  - ### filtersTipText

    public String filtersTipText()
    Returns the tip text for this property
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### getFilter

    public Filter getFilter(int index)
    Gets a single filter from the set of available filters.
    Parameters:
      `index` - the index of the filter wanted
    Returns:
      the Filter

  - ### seedTipText

    public String seedTipText()
    Returns the tip text for this property
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### setSeed

    public void setSeed(int seed)
    Set the seed for random number generation.
    Specified by:
      `setSeed` in interface `Randomizable`
    Parameters:
      `seed` - the seed

  - ### getSeed

    public int getSeed()
    Gets the seed for the random number generations
    Specified by:
      `getSeed` in interface `Randomizable`
    Returns:
      the seed for the random number generation

  - ### isStreamableFilter

    public boolean isStreamableFilter()
    tests whether all the enclosed filters are streamable
    Returns:
      true if all the enclosed filters are streamable

  - ### batchFinished

    public boolean batchFinished() throws Exception
    Signify that this batch of input to the filter is finished. If the filter requires all instances prior to filtering, output() may now be called to retrieve the filtered instances. Any subsequent instances filtered should be filtered based on setting obtained from the first batch (unless the setInputFormat has been re-assigned or new options have been set).
    Overrides:
      `batchFinished` in class `SimpleStreamFilter`
    Returns:
      true if there are instances pending output
    Throws:
      `IllegalStateException` - if no input format has been set.
      `NullPointerException` - if no input structure has been defined,
      `Exception` - if there was a problem finishing the batch.

  - ### mayRemoveInstanceAfterFirstBatchDone

    public boolean mayRemoveInstanceAfterFirstBatchDone()
    RemoveWithValues may return false from input() (thus not making an instance available immediately) even after the first batch has been completed due to matching a value that the user wants to remove. Therefore this method returns true.
    Overrides:
      `mayRemoveInstanceAfterFirstBatchDone` in class `Filter`
    Returns:
      true if one of the base filters returns true for this method.

  - ### getRevision

    public String getRevision()
    Returns the revision string.
    Specified by:
      `getRevision` in interface `RevisionHandler`
    Overrides:
      `getRevision` in class `Filter`
    Returns:
      the revision

  - ### main

    public static void main(String[] args)
    Main method for executing this class.
    Parameters:
      `args` - should contain arguments for the filter: use -h for help