Package adams.data.threewayfilter
Class MultiFilter
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.core.logging.CustomLoggingLevelObject
-
- adams.core.option.AbstractOptionHandler
-
- adams.data.filter.AbstractFilter<T>
-
- adams.data.filter.AbstractDatabaseConnectionFilter<T>
-
- adams.data.filter.MultiFilter<ThreeWayData>
-
- adams.data.threewayfilter.MultiFilter
-
- All Implemented Interfaces:
adams.core.CleanUpHandler,adams.core.Destroyable,adams.core.GlobalInfoSupporter,adams.core.logging.LoggingLevelHandler,adams.core.logging.LoggingSupporter,adams.core.option.OptionHandler,adams.core.ShallowCopySupporter<adams.data.filter.Filter>,adams.core.SizeOfHandler,adams.data.filter.Filter<ThreeWayData>,adams.db.DatabaseConnectionHandler,adams.db.DatabaseConnectionProvider,adams.db.DatabaseConnectionUser,Serializable,Comparable
public class MultiFilter extends adams.data.filter.MultiFilter<ThreeWayData>
A meta-filter that runs multiple filters over the data.
The filter can be executed in two ways:
1. in series (the default):
Each filter runs on the data the previous filter generated.
2. in parallel:
Each filter is run on the original input data and the generated
outputs are merged into a single 3-way data structure again. Already existing
data points don't get overwritten.
-logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel) The logging level for outputting errors and debugging output. default: WARNING
-no-id-update <boolean> (property: dontUpdateID) If enabled, suppresses updating the ID of adams.data.id.IDHandler data containers. default: false
-filter <adams.data.filter.Filter> [-filter ...] (property: subFilters) The array of filters to use. default: adams.data.filter.PassThrough
-parallel <boolean> (property: parallelAndMerge) If set to true, each of the filters will run on the original input data and the results merged into a single spectrum again; otherwise the filters will be applied subsequently, each using the output of the previous one as input. default: false
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanm_ParallelAndMergewhether to execute the filters in parallel and merge the outputs or run them in series.
-
Constructor Summary
Constructors Constructor Description MultiFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddefineOptions()Adds options to the internal list of options.booleangetParallelAndMerge()Returns whether the filters are executed in parallel or series.StringglobalInfo()Returns a string describing the object.StringparallelAndMergeTipText()Returns the tip text for this property.protected ThreeWayDataprocessData(ThreeWayData data)Performs the actual filtering.protected ThreeWayDataprocessDataParallel(ThreeWayData data)Performs the actual filtering - parallel application of filters and merging of results.voidsetParallelAndMerge(boolean value)Sets whether filters are executed in series or parallel.-
Methods inherited from class adams.data.filter.MultiFilter
getDefaultDatabaseConnection, getSubFilters, setSubFilters, subFiltersTipText, updateDatabaseConnection
-
Methods inherited from class adams.data.filter.AbstractDatabaseConnectionFilter
getDatabaseConnection, initialize, setDatabaseConnection
-
Methods inherited from class adams.data.filter.AbstractFilter
checkData, cleanUp, compareTo, destroy, dontUpdateIDTipText, equals, filter, forCommandLine, getDontUpdateID, reset, setDontUpdateID, shallowCopy, shallowCopy
-
Methods inherited from class adams.core.option.AbstractOptionHandler
cleanUpOptions, finishInit, getDefaultLoggingLevel, getOptionManager, loggingLevelTipText, newOptionManager, setLoggingLevel, toCommandLine, toString
-
Methods inherited from class adams.core.logging.LoggingObject
configureLogger, getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled, sizeOf
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceadams.core.GlobalInfoSupporter- Overrides:
globalInfoin classadams.data.filter.MultiFilter<ThreeWayData>- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceadams.core.option.OptionHandler- Overrides:
defineOptionsin classadams.data.filter.MultiFilter<ThreeWayData>
-
setParallelAndMerge
public void setParallelAndMerge(boolean value)
Sets whether filters are executed in series or parallel.- Parameters:
value- true if filters are to be executed in parallel
-
getParallelAndMerge
public boolean getParallelAndMerge()
Returns whether the filters are executed in parallel or series.- Returns:
- true if executed in parallel
-
parallelAndMergeTipText
public String parallelAndMergeTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
processDataParallel
protected ThreeWayData processDataParallel(ThreeWayData data)
Performs the actual filtering - parallel application of filters and merging of results.- Parameters:
data- the data to process- Returns:
- the merged dta
-
processData
protected ThreeWayData processData(ThreeWayData data)
Performs the actual filtering.- Overrides:
processDatain classadams.data.filter.MultiFilter<ThreeWayData>- Parameters:
data- the data to filter- Returns:
- the filtered data
-
-