Package adams.flow.transformer
Class WekaChooseAttributes
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.core.logging.CustomLoggingLevelObject
-
- adams.core.option.AbstractOptionHandler
-
- adams.flow.core.AbstractActor
-
- adams.flow.transformer.AbstractTransformer
-
- adams.flow.transformer.AbstractInteractiveTransformer
-
- adams.flow.transformer.WekaChooseAttributes
-
- All Implemented Interfaces:
adams.core.AdditionalInformationHandler
,adams.core.CleanUpHandler
,adams.core.Destroyable
,adams.core.GlobalInfoSupporter
,adams.core.logging.LoggingLevelHandler
,adams.core.logging.LoggingSupporter
,adams.core.option.OptionHandler
,adams.core.QuickInfoSupporter
,adams.core.ShallowCopySupporter<adams.flow.core.Actor>
,adams.core.SizeOfHandler
,adams.core.Stoppable
,adams.core.StoppableWithFeedback
,adams.core.VariablesInspectionHandler
,adams.event.VariableChangeListener
,adams.flow.core.Actor
,adams.flow.core.AutomatableInteraction
,adams.flow.core.AutomatableInteractiveActor
,adams.flow.core.ErrorHandler
,adams.flow.core.InputConsumer
,adams.flow.core.InteractiveActor
,adams.flow.core.InteractiveActorWithCustomParentComponent
,adams.flow.core.OutputProducer
,adams.flow.core.StopModeSupporter
,Serializable
,Comparable
public class WekaChooseAttributes extends adams.flow.transformer.AbstractInteractiveTransformer implements adams.flow.core.AutomatableInteractiveActor
Lets the user select attributes interactively to use down the track.
Internally, a weka.filters.unsupervised.attribute.Remove WEKA filter is constructed from the selection, to remove the attributes that the user didn't select.
Input/output:
- accepts:
weka.core.Instances
- generates:
weka.core.Instances
-logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel) The logging level for outputting errors and debugging output. default: WARNING
-name <java.lang.String> (property: name) The name of the actor. default: WekaChooseAttributes
-annotation <adams.core.base.BaseAnnotation> (property: annotations) The annotations to attach to this actor. default:
-skip <boolean> (property: skip) If set to true, transformation is skipped and the input token is just forwarded as it is. default: false
-stop-flow-on-error <boolean> (property: stopFlowOnError) If set to true, the flow gets stopped in case this actor encounters an error; useful for critical actors. default: false
-silent <boolean> (property: silent) If enabled, then no errors are output in the console. default: false
-stop-if-canceled <boolean> (property: stopFlowIfCanceled) If enabled, the flow gets stopped in case the user cancels the dialog. default: false
-custom-stop-message <java.lang.String> (property: customStopMessage) The custom stop message to use in case a user cancelation stops the flow (default is the full name of the actor) default:
-message <java.lang.String> (property: message) The message to display to the user (variables get expanded). default: Choose attributes to use
-pre-selection <adams.core.base.BaseRegExp> (property: preSelection) The regular expression to use for pre-selecting attributes. default: .*
-non-interactive <boolean> (property: nonInteractive) If enabled, attributes that match the 'pre-selection' pattern get selected automatically. default: false
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected String
m_Message
the message to display to the user.protected boolean
m_NonInteractive
whether to automate the actor.protected adams.core.base.BaseRegExp
m_PreSelection
the regular expression for pre-selecting attributes by name.protected weka.filters.unsupervised.attribute.Remove
m_Remove
the Remove filter in use.-
Fields inherited from class adams.flow.transformer.AbstractInteractiveTransformer
m_CallableActor, m_CustomStopMessage, m_Helper, m_ParentComponentActor, m_ParentComponentActorConfigured, m_StopFlowIfCanceled, m_StopMode, m_UseOuterWindow
-
Fields inherited from class adams.flow.transformer.AbstractTransformer
BACKUP_INPUT, BACKUP_OUTPUT, m_InputToken, m_OutputToken
-
Fields inherited from class adams.flow.core.AbstractActor
m_Annotations, m_BackupState, m_DetectedObjectVariables, m_DetectedVariables, m_ErrorHandler, m_Executed, m_Executing, m_ExecutionListeningSupporter, m_FullName, m_LoggingPrefix, m_Name, m_Parent, m_ScopeHandler, m_Self, m_Silent, m_Skip, m_StopFlowOnError, m_StopMessage, m_Stopped, m_StorageHandler, m_VariablesUpdated
-
-
Constructor Summary
Constructors Constructor Description WekaChooseAttributes()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class[]
accepts()
Returns the class that the consumer accepts.void
defineOptions()
Adds options to the internal list of options.protected String
doExecute()
Executes the flow item.String
doInteract()
Performs the interaction with the user.protected weka.core.Instances
filter(weka.core.Instances inst, List<Integer> selected)
Filters the data.protected boolean
generateOutput(weka.core.Instances inst, List<Integer> selected)
Creates the output token with the subset of data.Class[]
generates()
Returns the class of objects that it generates.String
getMessage()
Returns the message to display to the user (variables get expanded).protected List<Integer>
getPreSelectedIndices(weka.core.Instances inst)
Returns the pre-selected indices.String
getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.String
globalInfo()
Returns a string describing the object.protected void
initialize()
Initializes the members.boolean
isNonInteractive()
Returns whether interactiveness is enabled/disabled.adams.core.base.BaseRegExp
isPreSelection()
Returns the regular expression to pre-select attributes for the dialog.String
messageTipText()
Returns the tip text for this property.String
nonInteractiveTipText()
Returns the tip text for this property.String
preSelectionTipText()
Returns the tip text for this property.protected List<Integer>
selectAttributes(weka.core.Instances inst, List<Integer> preSelected)
Prompts the user to select attributes.void
setMessage(String value)
Sets the message to display to the user (variables get expanded).void
setNonInteractive(boolean value)
Sets whether to enable/disable interactiveness.void
setPreSelection(adams.core.base.BaseRegExp value)
Sets the regular expression to pre-select attributes for the dialog.-
Methods inherited from class adams.flow.transformer.AbstractInteractiveTransformer
customStopMessageTipText, deregisterWindow, doInteractHeadless, findCallableActor, getActualParentComponent, getCustomStopMessage, getParentComponentActor, getStopFlowIfCanceled, getStopMode, getUseOuterWindow, parentComponentActorTipText, registerWindow, reset, setCustomStopMessage, setParentComponentActor, setStopFlowIfCanceled, setStopMode, setUseOuterWindow, stopFlowIfCanceledTipText, stopModeTipText, supportsHeadlessInteraction, useOuterWindowTipText
-
Methods inherited from class adams.flow.transformer.AbstractTransformer
backupState, currentInput, execute, hasInput, hasPendingOutput, input, output, postExecute, restoreState, wrapUp
-
Methods inherited from class adams.flow.core.AbstractActor
annotationsTipText, canInspectOptions, canPerformSetUpCheck, cleanUp, compareTo, configureLogger, destroy, equals, finalUpdateVariables, findVariables, findVariables, forceVariables, forCommandLine, forName, forName, getAdditionalInformation, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowActors, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, handleException, hasErrorHandler, hasStopMessage, index, isBackedUp, isExecuted, isExecuting, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, performVariableChecks, preExecute, pruneBackup, pruneBackup, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, silentTipText, sizeOf, skipTipText, stopExecution, stopExecution, stopFlowOnErrorTipText, updateDetectedVariables, updatePrefix, updateVariables, variableChanged
-
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
getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface adams.flow.core.Actor
cleanUp, compareTo, destroy, equals, execute, findVariables, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, hasErrorHandler, hasStopMessage, index, isExecuted, isFinished, isHeadless, isStopped, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, sizeOf, stopExecution, stopExecution, toCommandLine, variableChanged, wrapUp
-
Methods inherited from interface adams.flow.core.InteractiveActor
customStopMessageTipText, doInteractHeadless, getCustomStopMessage, getStopFlowIfCanceled, setCustomStopMessage, setStopFlowIfCanceled, stopFlowIfCanceledTipText, supportsHeadlessInteraction
-
Methods inherited from interface adams.core.logging.LoggingLevelHandler
getLoggingLevel, setLoggingLevel
-
-
-
-
Field Detail
-
m_Message
protected String m_Message
the message to display to the user.
-
m_PreSelection
protected adams.core.base.BaseRegExp m_PreSelection
the regular expression for pre-selecting attributes by name.
-
m_NonInteractive
protected boolean m_NonInteractive
whether to automate the actor.
-
m_Remove
protected weka.filters.unsupervised.attribute.Remove m_Remove
the Remove filter in use.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfo
in interfaceadams.core.GlobalInfoSupporter
- Specified by:
globalInfo
in classadams.core.option.AbstractOptionHandler
- 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.flow.transformer.AbstractInteractiveTransformer
-
initialize
protected void initialize()
Initializes the members.- Overrides:
initialize
in classadams.flow.transformer.AbstractInteractiveTransformer
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfo
in interfaceadams.flow.core.Actor
- Specified by:
getQuickInfo
in interfaceadams.core.QuickInfoSupporter
- Overrides:
getQuickInfo
in classadams.flow.core.AbstractActor
- Returns:
- null if no info available, otherwise short string
-
setMessage
public void setMessage(String value)
Sets the message to display to the user (variables get expanded).- Parameters:
value
- the message
-
getMessage
public String getMessage()
Returns the message to display to the user (variables get expanded).- Returns:
- the message
-
messageTipText
public String messageTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setPreSelection
public void setPreSelection(adams.core.base.BaseRegExp value)
Sets the regular expression to pre-select attributes for the dialog.- Parameters:
value
- the expression
-
isPreSelection
public adams.core.base.BaseRegExp isPreSelection()
Returns the regular expression to pre-select attributes for the dialog.- Returns:
- the expression
-
preSelectionTipText
public String preSelectionTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setNonInteractive
public void setNonInteractive(boolean value)
Sets whether to enable/disable interactiveness.- Specified by:
setNonInteractive
in interfaceadams.flow.core.AutomatableInteraction
- Specified by:
setNonInteractive
in interfaceadams.flow.core.AutomatableInteractiveActor
- Parameters:
value
- if true actor is not interactive, but automated
-
isNonInteractive
public boolean isNonInteractive()
Returns whether interactiveness is enabled/disabled.- Specified by:
isNonInteractive
in interfaceadams.flow.core.AutomatableInteraction
- Specified by:
isNonInteractive
in interfaceadams.flow.core.AutomatableInteractiveActor
- Returns:
- true if actor is not interactive i.e., automated
-
nonInteractiveTipText
public String nonInteractiveTipText()
Returns the tip text for this property.- Specified by:
nonInteractiveTipText
in interfaceadams.flow.core.AutomatableInteraction
- Specified by:
nonInteractiveTipText
in interfaceadams.flow.core.AutomatableInteractiveActor
- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
accepts
public Class[] accepts()
Returns the class that the consumer accepts.- Specified by:
accepts
in interfaceadams.flow.core.InputConsumer
- Returns:
- the Class of objects that can be processed
-
generates
public Class[] generates()
Returns the class of objects that it generates.- Specified by:
generates
in interfaceadams.flow.core.OutputProducer
- Returns:
- the Class of the generated tokens
-
selectAttributes
protected List<Integer> selectAttributes(weka.core.Instances inst, List<Integer> preSelected)
Prompts the user to select attributes.- Parameters:
inst
- the data to presentpreSelected
- the indices of the attributes to use by default- Returns:
- the list of selected attributes to keep, null if cancelled
-
getPreSelectedIndices
protected List<Integer> getPreSelectedIndices(weka.core.Instances inst)
Returns the pre-selected indices.- Parameters:
inst
- the dataset to work on- Returns:
- the indices
-
filter
protected weka.core.Instances filter(weka.core.Instances inst, List<Integer> selected) throws Exception
Filters the data.- Parameters:
inst
- the data to filterselected
- the selected attributes- Returns:
- the new dataset
- Throws:
Exception
- in case filtering fails
-
generateOutput
protected boolean generateOutput(weka.core.Instances inst, List<Integer> selected)
Creates the output token with the subset of data.- Parameters:
inst
- the instances to processselected
- the indices to select- Returns:
- true if successfully generated
-
doInteract
public String doInteract()
Performs the interaction with the user.- Specified by:
doInteract
in interfaceadams.flow.core.InteractiveActor
- Specified by:
doInteract
in classadams.flow.transformer.AbstractInteractiveTransformer
- Returns:
- null if successfully interacted, otherwise error message
-
doExecute
protected String doExecute()
Executes the flow item.- Overrides:
doExecute
in classadams.flow.transformer.AbstractInteractiveTransformer
- Returns:
- null if everything is fine, otherwise error message
-
-