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 boolean
m_ParallelAndMerge
whether 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 void
defineOptions()
Adds options to the internal list of options.boolean
getParallelAndMerge()
Returns whether the filters are executed in parallel or series.String
globalInfo()
Returns a string describing the object.String
parallelAndMergeTipText()
Returns the tip text for this property.protected ThreeWayData
processData(ThreeWayData data)
Performs the actual filtering.protected ThreeWayData
processDataParallel(ThreeWayData data)
Performs the actual filtering - parallel application of filters and merging of results.void
setParallelAndMerge(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:
globalInfo
in interfaceadams.core.GlobalInfoSupporter
- Overrides:
globalInfo
in 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:
defineOptions
in interfaceadams.core.option.OptionHandler
- Overrides:
defineOptions
in 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:
processData
in classadams.data.filter.MultiFilter<ThreeWayData>
- Parameters:
data
- the data to filter- Returns:
- the filtered data
-
-