ptolemy.actor.lib.string
Class StringCompare

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.InstantiableNamedObj
          extended by ptolemy.kernel.Entity
              extended by ptolemy.kernel.ComponentEntity
                  extended by ptolemy.actor.AtomicActor
                      extended by ptolemy.actor.TypedAtomicActor
                          extended by ptolemy.actor.lib.string.StringCompare
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 StringCompare
extends TypedAtomicActor

Compare two strings specified either as inputs or parameters. The output is either true or false, depending on whether the comparison function is satisfied. The comparison functions are:

The strings to be compared will be taken from the inputs if they are available, and otherwise will be taken from the corresponding parameters.

Since:
Ptolemy II 4.0
Version:
$Id: StringCompare.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Vinay Krishnan, Daniel Lázaro Cuadrado (contributor: Edward A. Lee)
See Also:
Serialized Form
Accepted Rating:
Green (net)
Proposed Rating:
Green (kapokasa)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
private static int _CONTAINS
           
private static int _ENDSWITH
           
private static int _EQUALS
           
private  int _function
           
private static int _STARTSWITH
           
 PortParameter firstString
          The input PortParameter for the first string of type string.
 Parameter function
          The comparison function to be performed.
 Parameter ignoreCase
          The parameter to state whether to ignore case.
 TypedIOPort output
          The output port for the result of type BooleanToken.
 PortParameter secondString
          The input PortParameter for the second string of type string.
 
Fields inherited from class ptolemy.actor.AtomicActor
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
 
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
 
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
 
Constructor Summary
StringCompare(CompositeEntity container, java.lang.String name)
          Construct an actor with the given container and name.
 
Method Summary
private  boolean _doFunction(java.lang.String input1, java.lang.String input2)
          Calculate the function selected on the given inputs.
 void attributeChanged(Attribute attribute)
          Override the base class to determine which function is being specified.
 void fire()
          Consume exactly one input token from each input port, and compute the specified string function of the input taking into account the ignoreCase parameter.
 
Methods inherited from class ptolemy.actor.TypedAtomicActor
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints
 
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.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
 
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
 
Methods inherited from interface ptolemy.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
 
Methods inherited from interface ptolemy.actor.Executable
isFireFunctional, isStrict, iterate, postfire, prefire, stop, stopFire, terminate
 
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, initialize, preinitialize, removeInitializable, wrapup
 
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
 
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
 

Field Detail

function

public Parameter function
The comparison function to be performed. The choices are:


firstString

public PortParameter firstString
The input PortParameter for the first string of type string.


ignoreCase

public Parameter ignoreCase
The parameter to state whether to ignore case. This is a boolean that defaults to false.


output

public TypedIOPort output
The output port for the result of type BooleanToken.


secondString

public PortParameter secondString
The input PortParameter for the second string of type string.


_function

private int _function

_EQUALS

private static final int _EQUALS
See Also:
Constant Field Values

_STARTSWITH

private static final int _STARTSWITH
See Also:
Constant Field Values

_ENDSWITH

private static final int _ENDSWITH
See Also:
Constant Field Values

_CONTAINS

private static final int _CONTAINS
See Also:
Constant Field Values
Constructor Detail

StringCompare

public StringCompare(CompositeEntity container,
                     java.lang.String name)
              throws NameDuplicationException,
                     IllegalActionException
Construct an actor with the given container and name. Construct the two operand input PortParameters (initialized to "") and the output port which outputs the result of the various comparison functions executed by the actor. The function to be executed is decided by the parameter function, which is also initialized here to the comparison function equals. The ignoreCase parameter allows to ignore case when comparing.

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.
Method Detail

attributeChanged

public void attributeChanged(Attribute attribute)
                      throws IllegalActionException
Override the base class to determine which function is being specified.

Overrides:
attributeChanged in class NamedObj
Parameters:
attribute - The attribute that changed.
Throws:
IllegalActionException - If the function is not recognized.

fire

public void fire()
          throws IllegalActionException
Consume exactly one input token from each input port, and compute the specified string function of the input taking into account the ignoreCase parameter.

Specified by:
fire in interface Executable
Overrides:
fire in class AtomicActor
Throws:
IllegalActionException - If there is no director.

_doFunction

private boolean _doFunction(java.lang.String input1,
                            java.lang.String input2)
Calculate the function selected on the given inputs.

Parameters:
input1 - The first input String.
input2 - The second input String.
Returns:
The result of applying the function.