ptolemy.actor.lib
Class RecordAssembler
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.RecordAssembler
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
- Direct Known Subclasses:
- OrderedRecordAssembler
public class RecordAssembler
- extends TypedAtomicActor
On each firing, read one token from each input port and assemble them
into a RecordToken. The labels for the RecordToken are the names of the
input ports. To use this class, instantiate it, and then add input ports
(instances of TypedIOPort). This actor is polymorphic. The type constraint
is that the type of each record field is no less than the type of the
corresponding input port.
- Since:
- Ptolemy II 1.0
- Version:
- $Id: RecordAssembler.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Yuhong Xiong
- See Also:
RecordDisassembler
,
Serialized Form
- Accepted Rating:
- Proposed Rating:
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 |
fire()
Read one token from each input port, assemble them into a RecordToken,
and send the RecordToken to the output. |
boolean |
prefire()
Return true if all input ports have tokens, false if some input
ports do not have a token. |
void |
preinitialize()
Override the base class to compute the type constraints. |
java.util.Set<Inequality> |
typeConstraints()
Return the type constraints of this actor. |
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, 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, 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 |
output
public TypedIOPort output
- The output port. Its type is constrained to be a RecordType.
_typeConstraints
private java.util.Set<Inequality> _typeConstraints
- Cached list of type constraints.
_typeConstraintsVersion
private long _typeConstraintsVersion
- Version number when the cache was last updated.
RecordAssembler
public RecordAssembler(CompositeEntity container,
java.lang.String name)
throws NameDuplicationException,
IllegalActionException
- Construct a RecordAssembler with the given container and name.
- Parameters:
container
- The container.name
- The name of this actor.
- Throws:
IllegalActionException
- If this actor cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.
fire
public void fire()
throws IllegalActionException
- Read one token from each input port, assemble them into a RecordToken,
and send the RecordToken to the output.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class AtomicActor
- Throws:
IllegalActionException
- If there is no director.
prefire
public boolean prefire()
throws IllegalActionException
- Return true if all input ports have tokens, false if some input
ports do not have a token.
- Specified by:
prefire
in interface Executable
- Overrides:
prefire
in class AtomicActor
- Returns:
- True if all input ports have tokens.
- Throws:
IllegalActionException
- If the hasToken() call to the
input port throws it.- See Also:
IOPort.hasToken(int)
preinitialize
public void preinitialize()
throws IllegalActionException
- Override the base class to compute the type constraints.
It is an optimization to force this to happen before scheduling
because this has the side effect of incrementing the workspace
version number, which will force recalculation of the schedule
on the next run.
- Specified by:
preinitialize
in interface Initializable
- Overrides:
preinitialize
in class AtomicActor
- Throws:
IllegalActionException
- If the base class throws it.
typeConstraints
public java.util.Set<Inequality> typeConstraints()
- Return the type constraints of this actor. The type constraint is
that the type of the fields of the output RecordToken is no less
than the type of the corresponding input ports.
- Specified by:
typeConstraints
in interface TypedActor
- Overrides:
typeConstraints
in class TypedAtomicActor
- Returns:
- a list of Inequality.
- See Also:
Inequality