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.HeadlessExecutionSupporter,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, adams.flow.core.HeadlessExecutionSupporterLets 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 Stringm_Messagethe message to display to the user.protected booleanm_NonInteractivewhether to automate the actor.protected adams.core.base.BaseRegExpm_PreSelectionthe regular expression for pre-selecting attributes by name.protected weka.filters.unsupervised.attribute.Removem_Removethe 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.voiddefineOptions()Adds options to the internal list of options.protected StringdoExecute()Executes the flow item.StringdoInteract()Performs the interaction with the user.protected weka.core.Instancesfilter(weka.core.Instances inst, List<Integer> selected)Filters the data.protected booleangenerateOutput(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.StringgetMessage()Returns the message to display to the user (variables get expanded).protected List<Integer>getPreSelectedIndices(weka.core.Instances inst)Returns the pre-selected indices.StringgetQuickInfo()Returns a quick info about the actor, which will be displayed in the GUI.StringglobalInfo()Returns a string describing the object.protected voidinitialize()Initializes the members.booleanisNonInteractive()Returns whether interactiveness is enabled/disabled.adams.core.base.BaseRegExpisPreSelection()Returns the regular expression to pre-select attributes for the dialog.StringmessageTipText()Returns the tip text for this property.StringnonInteractiveTipText()Returns the tip text for this property.StringpreSelectionTipText()Returns the tip text for this property.protected List<Integer>selectAttributes(weka.core.Instances inst, List<Integer> preSelected)Prompts the user to select attributes.voidsetMessage(String value)Sets the message to display to the user (variables get expanded).voidsetNonInteractive(boolean value)Sets whether to enable/disable interactiveness.voidsetPreSelection(adams.core.base.BaseRegExp value)Sets the regular expression to pre-select attributes for the dialog.booleansupportsHeadlessExecution()Returns whether headless execution is supported.-
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:
globalInfoin interfaceadams.core.GlobalInfoSupporter- Specified by:
globalInfoin 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:
defineOptionsin interfaceadams.core.option.OptionHandler- Overrides:
defineOptionsin classadams.flow.transformer.AbstractInteractiveTransformer
-
initialize
protected void initialize()
Initializes the members.- Overrides:
initializein classadams.flow.transformer.AbstractInteractiveTransformer
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfoin interfaceadams.flow.core.Actor- Specified by:
getQuickInfoin interfaceadams.core.QuickInfoSupporter- Overrides:
getQuickInfoin 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:
setNonInteractivein interfaceadams.flow.core.AutomatableInteraction- Specified by:
setNonInteractivein 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:
isNonInteractivein interfaceadams.flow.core.AutomatableInteraction- Specified by:
isNonInteractivein 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:
nonInteractiveTipTextin interfaceadams.flow.core.AutomatableInteraction- Specified by:
nonInteractiveTipTextin 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:
acceptsin 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:
generatesin 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 ExceptionFilters 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:
doInteractin interfaceadams.flow.core.InteractiveActor- Specified by:
doInteractin classadams.flow.transformer.AbstractInteractiveTransformer- Returns:
- null if successfully interacted, otherwise error message
-
supportsHeadlessExecution
public boolean supportsHeadlessExecution()
Returns whether headless execution is supported.- Specified by:
supportsHeadlessExecutionin interfaceadams.flow.core.HeadlessExecutionSupporter- Returns:
- true if supported
-
doExecute
protected String doExecute()
Executes the flow item.- Overrides:
doExecutein classadams.flow.transformer.AbstractInteractiveTransformer- Returns:
- null if everything is fine, otherwise error message
-
-