Package adams.flow.transformer
Class StringReplace
-
- All Implemented Interfaces:
AdditionalInformationHandler
,CleanUpHandler
,Destroyable
,GlobalInfoSupporter
,LoggingLevelHandler
,LoggingSupporter
,OptionHandler
,QuickInfoSupporter
,ShallowCopySupporter<Actor>
,SizeOfHandler
,Stoppable
,StoppableWithFeedback
,VariablesInspectionHandler
,VariableChangeListener
,Actor
,ErrorHandler
,InputConsumer
,OutputProducer
,Serializable
,Comparable
public class StringReplace extends AbstractStringOperation
Performs a string replacement, using either String.replaceFirst(...) or String.replaceAll(...). Special characters like \n \r \t and \ need to be escaped properly. The input is expected to be escaped, i.e., the string "\t" will get turned into the character '\t'.
If the 'replace' string contains both, variables and placeholders, then first all variables are expanded and then the placeholders. This ensures that variables containing placeholders expand their placeholders as well. Not expanding placeholders will cause 'Illegal group reference' error messages.
If no regular expression matching is required, you can also use the simple replacing, which uses String.replace(...).
Input/output:
- accepts:
java.lang.String
java.lang.String[]
- generates:
java.lang.String
java.lang.String[]
Valid options are:
-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: StringReplace
-annotation <adams.core.base.BaseText> (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
-find <adams.core.base.BaseRegExp> (property: find) The string to find (a regular expression). default: find
-replace <java.lang.String> (property: replace) The string to replace the occurrences with. default:
-type <FIRST|ALL|SIMPLE> (property: replaceType) Defines whether to use regular expression replacement (first/all) or simple string sequence replacement. default: FIRST
-placeholder <boolean> (property: replaceContainsPlaceholder) Set this to true to enable automatic placeholder expansion for the replacement string. default: false
-variable <boolean> (property: replaceContainsVariable) Set this to true to enable automatic variable expansion for the replacement string. default: false
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
StringReplace.ReplaceType
The type of replace to use.
-
Field Summary
Fields Modifier and Type Field Description protected BaseRegExp
m_Find
the string to find.protected String
m_Replace
the replacement string.protected boolean
m_ReplaceContainsPlaceholder
whether the replace string contains a placeholder, which needs to be expanded first.protected boolean
m_ReplaceContainsVariable
whether the replace string contains a variable, which needs to be expanded first.protected StringReplace.ReplaceType
m_ReplaceType
how to replace the occurrences.-
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
-
Fields inherited from class adams.core.option.AbstractOptionHandler
m_OptionManager
-
Fields inherited from class adams.core.logging.LoggingObject
m_Logger, m_LoggingIsEnabled, m_LoggingLevel
-
Fields inherited from interface adams.flow.core.Actor
FILE_EXTENSION, FILE_EXTENSION_GZ
-
-
Constructor Summary
Constructors Constructor Description StringReplace()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
defineOptions()
Adds options to the internal list of options.String
findTipText()
Returns the tip text for this property.BaseRegExp
getFind()
Returns the string to find (regular expression).String
getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.String
getReplace()
Returns the string to replace the occurences with.boolean
getReplaceContainsPlaceholder()
Returns whether the replace string contains a placeholder which needs to be expanded first.boolean
getReplaceContainsVariable()
Returns whether the replace string contains a variable which needs to be expanded first.StringReplace.ReplaceType
getReplaceType()
Returns the type of replacement.String
globalInfo()
Returns a string describing the object.protected String
process(String s, int index)
Processes the string.String
replaceContainsPlaceholderTipText()
Returns the tip text for this property.String
replaceContainsVariableTipText()
Returns the tip text for this property.String
replaceTipText()
Returns the tip text for this property.String
replaceTypeTipText()
Returns the tip text for this property.void
setFind(BaseRegExp value)
Sets the string to find (regular expression).void
setReplace(String value)
Sets the string to replace the occurrences with.void
setReplaceContainsPlaceholder(boolean value)
Sets whether the replace string contains a placeholder which needs to be expanded first.void
setReplaceContainsVariable(boolean value)
Sets whether the replace string contains a variable which needs to be expanded first.void
setReplaceType(StringReplace.ReplaceType value)
Sets how to replace the strings.-
Methods inherited from class adams.flow.transformer.AbstractStringOperation
accepts, doExecute, generates
-
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, initialize, isBackedUp, isExecuted, isExecuting, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, performVariableChecks, preExecute, pruneBackup, pruneBackup, reset, 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, 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
-
Methods inherited from interface adams.core.AdditionalInformationHandler
getAdditionalInformation
-
Methods inherited from interface adams.core.logging.LoggingLevelHandler
getLoggingLevel, setLoggingLevel
-
Methods inherited from interface adams.core.logging.LoggingSupporter
getLogger, isLoggingEnabled
-
Methods inherited from interface adams.core.option.OptionHandler
cleanUpOptions, getOptionManager
-
Methods inherited from interface adams.core.VariablesInspectionHandler
canInspectOptions
-
-
-
-
Field Detail
-
m_Find
protected BaseRegExp m_Find
the string to find.
-
m_Replace
protected String m_Replace
the replacement string.
-
m_ReplaceType
protected StringReplace.ReplaceType m_ReplaceType
how to replace the occurrences.
-
m_ReplaceContainsPlaceholder
protected boolean m_ReplaceContainsPlaceholder
whether the replace string contains a placeholder, which needs to be expanded first.
-
m_ReplaceContainsVariable
protected boolean m_ReplaceContainsVariable
whether the replace string contains a variable, which needs to be expanded first.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfo
in interfaceGlobalInfoSupporter
- Specified by:
globalInfo
in classAbstractOptionHandler
- 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 interfaceOptionHandler
- Overrides:
defineOptions
in classAbstractActor
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfo
in interfaceActor
- Specified by:
getQuickInfo
in interfaceQuickInfoSupporter
- Overrides:
getQuickInfo
in classAbstractActor
- Returns:
- null if no info available, otherwise short string
-
setFind
public void setFind(BaseRegExp value)
Sets the string to find (regular expression).- Parameters:
value
- the string
-
getFind
public BaseRegExp getFind()
Returns the string to find (regular expression).- Returns:
- the string
-
findTipText
public String findTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setReplace
public void setReplace(String value)
Sets the string to replace the occurrences with.- Parameters:
value
- the string
-
getReplace
public String getReplace()
Returns the string to replace the occurences with.- Returns:
- the string
-
replaceTipText
public String replaceTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setReplaceType
public void setReplaceType(StringReplace.ReplaceType value)
Sets how to replace the strings.- Parameters:
value
- the type
-
getReplaceType
public StringReplace.ReplaceType getReplaceType()
Returns the type of replacement.- Returns:
- the type
-
replaceTypeTipText
public String replaceTypeTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setReplaceContainsPlaceholder
public void setReplaceContainsPlaceholder(boolean value)
Sets whether the replace string contains a placeholder which needs to be expanded first.- Parameters:
value
- true if replace string contains a placeholder
-
getReplaceContainsPlaceholder
public boolean getReplaceContainsPlaceholder()
Returns whether the replace string contains a placeholder which needs to be expanded first.- Returns:
- true if replace string contains a placeholder
-
replaceContainsPlaceholderTipText
public String replaceContainsPlaceholderTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setReplaceContainsVariable
public void setReplaceContainsVariable(boolean value)
Sets whether the replace string contains a variable which needs to be expanded first.- Parameters:
value
- true if replace string contains a variable
-
getReplaceContainsVariable
public boolean getReplaceContainsVariable()
Returns whether the replace string contains a variable which needs to be expanded first.- Returns:
- true if replace string contains a variable
-
replaceContainsVariableTipText
public String replaceContainsVariableTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
process
protected String process(String s, int index)
Processes the string.- Specified by:
process
in classAbstractStringOperation
- Parameters:
s
- the string to processindex
- the 0-based index of the string currently being processed- Returns:
- the processed string or null if nothing produced
-
-