ptolemy.domains.modal.kernel
Class OutputActionsAttribute

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.util.Attribute
          extended by ptolemy.kernel.util.AbstractSettableAttribute
              extended by ptolemy.kernel.util.StringAttribute
                  extended by ptolemy.domains.modal.kernel.Action
                      extended by ptolemy.domains.modal.kernel.AbstractActionsAttribute
                          extended by ptolemy.domains.modal.kernel.OutputActionsAttribute
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, HasTypeConstraints, ChoiceAction, Changeable, Debuggable, DebugListener, Derivable, ModelErrorHandler, MoMLExportable, Moveable, Nameable, Settable

public class OutputActionsAttribute
extends AbstractActionsAttribute
implements ChoiceAction

An action that sends outputs to one or more ports. This action is contained by a transition, and is evaluated whenever that transition becomes enabled. The evaluation is done in the fire() method of the FSMActor that contains the transition (hereafter called "the FSM actor"). Note that the fire() method may be invoked more than once in an iteration, particularly in domains where there is iteration to a fixed point, such as CT. To specify an action that is executed only when the transition is taken (in the postfire() method), use the class CommitActionsAttribute.

The value of this attribute is a semicolon separated list of commands, where each command gives a destination port to send data to and a value to send. The actions are given by calling setExpression() with a string of the form:

 command; command; ...
 
where each command has the form:
 destination = expression
 
where destination is either
 portName
 
or
 portName(channelNumber)
 
where portName is the name of a port of the FSM actor. If no channelNumber is given, then the value is broadcast to all channels of the port.

The expression is a string giving an expression in the usual Ptolemy II expression language. The expression may include references to variables and parameters contained by the FSM actor.

Since:
Ptolemy II 8.0
Version:
$Id: OutputActionsAttribute.java 57044 2010-01-27 22:41:05Z cxh $
Author:
Xiaojun Liu, Edward A. Lee, Haiyang Zheng
See Also:
CommitActionsAttribute, Transition, FSMActor, Serialized Form
Accepted Rating:
Red (hyzheng)
Proposed Rating:
Red (hyzheng)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.util.NamedObj
NamedObj.ContainedObjectsIterator
 
Nested classes/interfaces inherited from interface ptolemy.kernel.util.Settable
Settable.Visibility
 
Field Summary
 
Fields inherited from class ptolemy.domains.modal.kernel.AbstractActionsAttribute
_destinationNames, _destinations, _destinationsListVersion, _parseTreeEvaluator, _parseTrees
 
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.kernel.util.Settable
EXPERT, FULL, NONE, NOT_EDITABLE
 
Constructor Summary
OutputActionsAttribute(Transition transition, java.lang.String name)
          Construct an action with the given name contained by the specified transition.
OutputActionsAttribute(Workspace workspace)
          Construct an action in the specified workspace with an empty string as a name.
 
Method Summary
protected  NamedObj _getDestination(java.lang.String name)
          Given a destination name, return a NamedObj that matches that destination.
 void execute()
          Send tokens to the designated outputs.
 
Methods inherited from class ptolemy.domains.modal.kernel.AbstractActionsAttribute
_getParserScope, clone, getChannelNumberList, getDestination, getDestinationNameList, getExpression, getParseTree, getParseTreeList, isChannelSpecified, setExpression, typeConstraints
 
Methods inherited from class ptolemy.domains.modal.kernel.Action
setContainer
 
Methods inherited from class ptolemy.kernel.util.StringAttribute
_propagateValue, addValueListener, exportMoML, getExpression, getVisibility, removeValueListener, setVisibility, validate
 
Methods inherited from class ptolemy.kernel.util.AbstractSettableAttribute
getDefaultExpression, getValueAsString
 
Methods inherited from class ptolemy.kernel.util.Attribute
_checkContainer, _getContainedObject, _propagateExistence, getContainer, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, setName, updateContent
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _description, _exportMoMLContents, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, attributeChanged, attributeList, attributeList, attributeTypeChanged, clone, containedObjectsIterator, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getElementName, getFullName, getModelErrorHandler, getName, getName, getPrototypeList, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateExistence, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, uniqueName, validateSettables, workspace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ptolemy.kernel.util.Settable
getDisplayName
 
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getFullName, getName, getName, setName
 

Constructor Detail

OutputActionsAttribute

public OutputActionsAttribute(Workspace workspace)
Construct an action in the specified workspace with an empty string as a name. The object is added to the directory of the workspace. Increment the version number of the workspace.

Parameters:
workspace - The workspace that will list the attribute.

OutputActionsAttribute

public OutputActionsAttribute(Transition transition,
                              java.lang.String name)
                       throws IllegalActionException,
                              NameDuplicationException
Construct an action with the given name contained by the specified transition. The transition argument must not be null, or a NullPointerException will be thrown. This action will use the workspace of the transition for synchronization and version counts. If the name argument is null, then the name is set to the empty string. This increments the version of the workspace.

Parameters:
transition - The transition that contains this action.
name - The name of this action.
Throws:
IllegalActionException - If the action is not of an acceptable class for the container.
NameDuplicationException - If the transition already has an attribute with the name.
Method Detail

execute

public void execute()
             throws IllegalActionException
Send tokens to the designated outputs. Each token is determined by evaluating the expression portion of the action.

Overrides:
execute in class AbstractActionsAttribute
Throws:
IllegalActionException - If expression evaluation fails, or the specified port is not found, or sending to one of the channels of the port throws a NoRoomException.

_getDestination

protected NamedObj _getDestination(java.lang.String name)
                            throws IllegalActionException
Given a destination name, return a NamedObj that matches that destination.

Specified by:
_getDestination in class AbstractActionsAttribute
Parameters:
name - The name of the destination, or null if none is found.
Returns:
An object (like a port or a variable) with the specified name.
Throws:
IllegalActionException - If the associated FSMActor does not have a destination with the specified name.