ptolemy.backtrack.automatic.ptolemy.actor.lib
Class Sequence

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.backtrack.automatic.ptolemy.actor.lib.Sequence
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Rollbackable, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class Sequence
extends TypedAtomicActor
implements Rollbackable

This actor produces a sequence of values, optionally periodically repeating them. The values parameter contains an ArrayToken that specifies the sequence of values to produce at the output. If the enable input port is connected, then it provides a boolean sequence that specifies whether to produce an output. If the enable is present and true, then the actor will produce the next output. Otherwise, it produces no output and will produce the next in the sequence on the next firing (if enable is true). If the holdLastOutput parameter is true, then the sequence is infinite, with the last value being repeated forever.

Compared with the Pulse actor, this actor can be enabled or disabled on each firing by providing a true or false input on the enable port.

Since:
Ptolemy II 4.1
Version:
$Id: Sequence.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Edward A. Lee
See Also:
Pulse, Serialized Form
Accepted Rating:
Red (cxh)
Proposed Rating:
Yellow (eal)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
private  int _currentIndex
           
private  boolean _outputProduced
           
protected  Checkpoint $CHECKPOINT
           
private  FieldRecord $RECORD$_currentIndex
           
private  FieldRecord $RECORD$_outputProduced
           
protected  CheckpointRecord $RECORD$$CHECKPOINT
           
private  FieldRecord[] $RECORDS
           
 TypedIOPort enable
          The enable input port.
 Parameter holdLastOutput
          A flag indicating whether to interpret the values as an infinite sequence where the last value is repeated forever.
 TypedIOPort output
          The output port.
 Parameter repeat
          The flag that indicates whether the sequence needs to be repeated.
 Parameter values
          The values that will be produced on the output.
 
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
Sequence(CompositeEntity container, java.lang.String name)
          Construct an actor in the specified container with the specified name.
 
Method Summary
private  int $ASSIGN$_currentIndex(int newValue)
           
private  boolean $ASSIGN$_outputProduced(boolean newValue)
           
private  int $ASSIGN$SPECIAL$_currentIndex(int operator, long newValue)
           
 void $COMMIT(long timestamp)
          Commit changes up to the given timestamp, but not including changes made at timestamp and afterward.
 Checkpoint $GET$CHECKPOINT()
          Get the checkpoint object that monitors this rollbackable object.
 void $RESTORE(long timestamp, boolean trim)
          Restore a previous state to all the private fields of this rollbackable object.
 java.lang.Object $SET$CHECKPOINT(Checkpoint checkpoint)
          Set the checkpoint object of this rollbackable object.
 java.lang.Object clone(Workspace workspace)
          Clone the actor into the specified workspace.
 void fire()
          If the enable input is connected, then if it has a true token, produce the next output.
 void initialize()
          Initialize the actor by resetting to the first output value.
 boolean postfire()
          Update the state of the actor by moving to the next value in the values array.
 
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, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, 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, attributeChanged, 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, prefire, stop, stopFire, terminate
 
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, 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

$CHECKPOINT

protected transient Checkpoint $CHECKPOINT

enable

public TypedIOPort enable
The enable input port. If this port is connected, then its input will determine whether an output is produced in any given firing. The type is boolean.


holdLastOutput

public Parameter holdLastOutput
A flag indicating whether to interpret the values as an infinite sequence where the last value is repeated forever. This is a boolean that defaults to false.


output

public TypedIOPort output
The output port. The type is greater than or equal to the types of the two input ports.


repeat

public Parameter repeat
The flag that indicates whether the sequence needs to be repeated. If this is false, then either the last value of the sequence is repeatedly produced after the entire sequence has been produced, or the actor stops producing output, depending on the value of holdLastOutput. This is a boolean, and defaults to false.


values

public Parameter values
The values that will be produced on the output. This parameter is an array, with default value {1}.


_currentIndex

private int _currentIndex

_outputProduced

private boolean _outputProduced

$RECORD$$CHECKPOINT

protected transient CheckpointRecord $RECORD$$CHECKPOINT

$RECORD$_currentIndex

private transient FieldRecord $RECORD$_currentIndex

$RECORD$_outputProduced

private transient FieldRecord $RECORD$_outputProduced

$RECORDS

private transient FieldRecord[] $RECORDS
Constructor Detail

Sequence

public Sequence(CompositeEntity container,
                java.lang.String name)
         throws IllegalActionException,
                NameDuplicationException
Construct an actor in the specified container with the specified name.

Parameters:
container - The container.
name - The name of this actor within the container.
Throws:
IllegalActionException - If the actor cannot be contained by the proposed container.
NameDuplicationException - If the name coincides with an actor already in the container.
Method Detail

clone

public java.lang.Object clone(Workspace workspace)
                       throws java.lang.CloneNotSupportedException
Clone the actor into the specified workspace. This overrides the base class to handle type constraints.

Overrides:
clone in class AtomicActor
Parameters:
workspace - The workspace for the new object.
Returns:
A new actor.
Throws:
java.lang.CloneNotSupportedException - If a derived class contains an attribute that cannot be cloned.
See Also:
NamedObj.exportMoML(Writer, int, String), NamedObj.setDeferringChangeRequests(boolean)

fire

public void fire()
          throws IllegalActionException
If the enable input is connected, then if it has a true token, produce the next output. If it is not connected, produce the next output unconditionally. Whether it is connected is determined by checking the width of the port.

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

initialize

public void initialize()
                throws IllegalActionException
Initialize the actor by resetting to the first output value.

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

postfire

public boolean postfire()
                 throws IllegalActionException
Update the state of the actor by moving to the next value in the values array.

Specified by:
postfire in interface Executable
Overrides:
postfire in class AtomicActor
Returns:
True if execution can continue into the next iteration.
Throws:
IllegalActionException - If there is no director.

$ASSIGN$_currentIndex

private final int $ASSIGN$_currentIndex(int newValue)

$ASSIGN$SPECIAL$_currentIndex

private final int $ASSIGN$SPECIAL$_currentIndex(int operator,
                                                long newValue)

$ASSIGN$_outputProduced

private final boolean $ASSIGN$_outputProduced(boolean newValue)

$COMMIT

public void $COMMIT(long timestamp)
Description copied from interface: Rollbackable
Commit changes up to the given timestamp, but not including changes made at timestamp and afterward.

Specified by:
$COMMIT in interface Rollbackable
Parameters:
timestamp - The timestamp.

$RESTORE

public void $RESTORE(long timestamp,
                     boolean trim)
Description copied from interface: Rollbackable
Restore a previous state to all the private fields of this rollbackable object.

Specified by:
$RESTORE in interface Rollbackable
Parameters:
timestamp - The timestamp taken at the time when the previous state was recorded.
trim - Whether to delete the records used for the rollback.
See Also:
Checkpoint.rollback(long, boolean)

$GET$CHECKPOINT

public final Checkpoint $GET$CHECKPOINT()
Description copied from interface: Rollbackable
Get the checkpoint object that monitors this rollbackable object.

Specified by:
$GET$CHECKPOINT in interface Rollbackable
Returns:
The checkpoint object.

$SET$CHECKPOINT

public final java.lang.Object $SET$CHECKPOINT(Checkpoint checkpoint)
Description copied from interface: Rollbackable
Set the checkpoint object of this rollbackable object. A merge operation is performed on the current checkpoint object and the new checkpoint object, so that the two checkpoint objects monitor the same set of objects when this function returns.

Specified by:
$SET$CHECKPOINT in interface Rollbackable
Parameters:
checkpoint - The new checkpoint object.
Returns:
This rollbackable object itself.
See Also:
Checkpoint.setCheckpoint(Checkpoint)