ptolemy.actor.lib.string
Class StringReplace
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.string.StringSimpleReplace
ptolemy.actor.lib.string.StringReplace
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class StringReplace
- extends StringSimpleReplace
On each firing, look for instances of the pattern specified by pattern
in stringToEdit and replace them with the string given by
replacement. If replaceAll is true, then replace
all instances that match pattern. Otherwise, replace only
the first instance that matches. If there is no match, then the
output is the string provided by stringToEdit, unchanged.
The pattern is given by a regular expression.
For a reference on regular expression syntax see:
http://java.sun.com/docs/books/tutorial/extra/regex/index.html
The replacement string, as usual with string-valued parameters
in Ptolemy II, can include references to parameter values in scope.
E.g., if the enclosing composite actor has a parameter named "x"
with value 1, say, then the replacement string a${x}b will become
"a1b".
In addition, the replacement string can reference the pattern
that is matched using the syntax "$$0". For example, the regular
expression "t[a-z]+" in pattern will match the character t followed by a
sequence of one or more lower-case letters.
If replacement is "p$$0" then "this is a test" becomes
"pthis is a ptest".
If the pattern containes parenthesized subpatterns, such
as "(t[a-z]+)|(T([a-z]+))", then the value of replacement
can reference the match of each parenthesized subpattern with
the syntax "$$n", where "n" is an integer between 1 and 9.
For example, if pattern="(t[a-z]+)|(T([a-z]+))"
and replacement="p$$1$$3", then "this is a Test" becomes
"pthis is a pest". The index "n" corresponds to the order
of opening parentheses in the pattern.
To get a "$" into the replacement string, use
"\$$". To get a "\" into the replacement string, use "\\".
- Since:
- Ptolemy II 4.0
- Version:
- $Id: StringReplace.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Antonio Yordan-Nones, Neil E. Turner, Edward A. Lee
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Field Summary |
private java.util.regex.Pattern |
_pattern
|
Parameter |
replaceAll
When the boolean value is true, replace all instances that match the
pattern, and when false, replace the first instance. |
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Method Summary |
void |
attributeChanged(Attribute attribute)
Override the base class to compile a regular expression when
it is changed. |
void |
fire()
Perform pattern matching and substring replacement, and output
the modified string. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, clone, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, initialize, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup |
Methods inherited from class ptolemy.kernel.ComponentEntity |
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
_description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName |
Methods inherited from class ptolemy.kernel.util.NamedObj |
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
replaceAll
public Parameter replaceAll
- When the boolean value is true, replace all instances that match the
pattern, and when false, replace the first instance.
_pattern
private java.util.regex.Pattern _pattern
StringReplace
public StringReplace(CompositeEntity container,
java.lang.String name)
throws NameDuplicationException,
IllegalActionException
- Construct an actor with the given container and name.
- Parameters:
container
- The container.name
- The name of this actor.
- Throws:
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.
attributeChanged
public void attributeChanged(Attribute attribute)
throws IllegalActionException
- Override the base class to compile a regular expression when
it is changed.
- Overrides:
attributeChanged
in class StringSimpleReplace
- Parameters:
attribute
- The attribute that changed.
- Throws:
IllegalActionException
- If the specified attribute
is pattern and the regular expression fails to
compile.
fire
public void fire()
throws IllegalActionException
- Perform pattern matching and substring replacement, and output
the modified string. If no match is found, output the
unmodified stringToEdit string.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class StringSimpleReplace
- Throws:
IllegalActionException
- If there is no director.