ptolemy.domains.ct.kernel
Class CTCase

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.kernel.CompositeEntity
                      extended by ptolemy.actor.CompositeActor
                          extended by ptolemy.actor.TypedCompositeActor
                              extended by ptolemy.actor.lib.hoc.MultiCompositeActor
                                  extended by ptolemy.actor.lib.hoc.Case
                                      extended by ptolemy.domains.ct.kernel.CTCase
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, CTDynamicActor, CTEventGenerator, CTStatefulActor, CTStepSizeControlActor, CTWaveformGenerator, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class CTCase
extends Case
implements CTDynamicActor, CTEventGenerator, CTStatefulActor, CTStepSizeControlActor, CTWaveformGenerator

A version of the Case actor designed for the CT domain.

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

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity
CompositeEntity.ContainedObjectsIterator
 
Field Summary
 
Fields inherited from class ptolemy.actor.lib.hoc.Case
_current, _default, _director, control
 
Fields inherited from class ptolemy.actor.CompositeActor
_actorFiringListeners, _causalityInterface, _initializables, _notifyingActorFiring, _publishedPorts, _publisherRelations, _stopRequested
 
Fields inherited from class ptolemy.kernel.CompositeEntity
_levelCrossingLinks
 
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
 
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
 
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
 
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
 
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
 
Constructor Summary
CTCase(CompositeEntity container, java.lang.String name)
          Create an CTCase with a name and a container.
 
Method Summary
protected  CaseDirector _createDirector()
          Create a director.
 void emitCurrentStates()
          Call the emitCurrentStates() method of the current refinement director if it is an instance of CTTransparentDirector.
 void goToMarkedState()
          Call the goToMarkedState() method of the current refinement director if it is an instance of CTTransparentDirector.
 boolean hasCurrentEvent()
          Call the hasCurrentEvent() method of the current refinement director if it is an instance of CTTransparentDirector.
 boolean isOutputAccurate()
          Call the isOutputAccurate() method of the current refinement director if it is an instance of CTTransparentDirector.
 boolean isStateAccurate()
          Call the isStateAccurate() method of the current refinement director if it is an instance of CTTransparentDirector.
 void markState()
          Call the markState() method of the current refinement director if it is an instance of CTTransparentDirector.
 Refinement newRefinement(java.lang.String name)
          Create a new refinement with the specified name.
 double predictedStepSize()
          Call the predictedStepSize() method of the current refinement director if it is an instance of CTTransparentDirector.
 boolean prefireDynamicActors()
          Call the prefireDynamicActors() method of the current refinement director if it is an instance of CTTransparentDirector.
 double refinedStepSize()
          Call the refinedStepSize() method of the current refinement director if it is an instance of CTTransparentDirector.
 java.lang.String refinementClassName()
          Return the class name for refinements that this Case actor expects to contain.
 
Methods inherited from class ptolemy.actor.lib.hoc.Case
_addEntity, clone, fire, getCurrentRefinement
 
Methods inherited from class ptolemy.actor.lib.hoc.MultiCompositeActor
newPort
 
Methods inherited from class ptolemy.actor.TypedCompositeActor
_addPort, _addRelation, _checkTypesFromTo, _typeConstraintsFromTo, newRelation, resolveTypes, typeConstraintList, typeConstraints
 
Methods inherited from class ptolemy.actor.CompositeActor
_actorFiring, _actorFiring, _finishedAddEntity, _getPublishedPort, _setDirector, addActorFiringListener, addInitializable, addPiggyback, connectionsChanged, createReceivers, createSchedule, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inferringWidths, inferWidths, initialize, inputPortList, isFireFunctional, isOpaque, isStrict, iterate, linkToPublishedPort, linkToPublishedPort, needsWidthInference, newInsideReceiver, newReceiver, notifyConnectivityChange, outputPortList, postfire, prefire, preinitialize, recordFiring, registerPublisherPort, removeActorFiringListener, removeInitializable, removePiggyback, requestChange, setContainer, setDirector, setManager, stop, stopFire, terminate, unlinkToPublishedPort, unlinkToPublishedPort, unregisterPublisherPort, wrapup
 
Methods inherited from class ptolemy.kernel.CompositeEntity
_adjustDeferrals, _deepOpaqueEntityList, _description, _exportMoMLContents, _recordDecoratedAttributes, _removeEntity, _removeRelation, _validateSettables, allAtomicEntityList, allCompositeEntityList, allowLevelCrossingConnect, classDefinitionList, connect, connect, containedObjectsIterator, deepEntityList, deepGetEntities, deepOpaqueEntityList, deepRelationSet, entityList, entityList, exportLinks, exportMoML, getAttribute, getEntities, getEntity, getPort, getRelation, getRelations, isAtomic, lazyAllAtomicEntityList, lazyAllCompositeEntityList, lazyClassDefinitionList, lazyDeepEntityList, lazyEntityList, lazyRelationList, numberOfEntities, numberOfRelations, numEntities, numRelations, relationList, removeAllEntities, removeAllRelations, setClassDefinition, statistics, uniqueName
 
Methods inherited from class ptolemy.kernel.ComponentEntity
_checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
 
Methods inherited from class ptolemy.kernel.Entity
_removePort, connectedPortList, connectedPorts, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts
 
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, 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, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeChanged, attributeList, attributeList, attributeTypeChanged, clone, 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, 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
fire, 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.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
 
Methods inherited from interface ptolemy.actor.Executable
fire, 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.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
 
Methods inherited from interface ptolemy.actor.Executable
fire, 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.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
 
Methods inherited from interface ptolemy.actor.Executable
fire, 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.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
 
Methods inherited from interface ptolemy.actor.Executable
fire, 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
 

Constructor Detail

CTCase

public CTCase(CompositeEntity container,
              java.lang.String name)
       throws IllegalActionException,
              NameDuplicationException
Create an CTCase with a name and a container. The container argument must not be null, or a NullPointerException will be thrown. This actor will use the workspace of the container for synchronization and version counts. If the name argument is null, then the name is set to the empty string. Increment the version of the workspace.

Parameters:
container - The container actor.
name - The name of this actor.
Throws:
IllegalActionException - If the container is incompatible with this actor.
NameDuplicationException - If the name coincides with an actor already in the container.
Method Detail

emitCurrentStates

public void emitCurrentStates()
                       throws IllegalActionException
Call the emitCurrentStates() method of the current refinement director if it is an instance of CTTransparentDirector. Otherwise, do nothing.

Specified by:
emitCurrentStates in interface CTDynamicActor
Throws:
IllegalActionException - If tentative states cannot be emitted.

goToMarkedState

public void goToMarkedState()
                     throws IllegalActionException
Call the goToMarkedState() method of the current refinement director if it is an instance of CTTransparentDirector. Otherwise, do nothing.

Specified by:
goToMarkedState in interface CTStatefulActor
Throws:
IllegalActionException - If there is no marked state.

hasCurrentEvent

public boolean hasCurrentEvent()
Call the hasCurrentEvent() method of the current refinement director if it is an instance of CTTransparentDirector. Otherwise, return false, indicating that this composite actor does not have an event at the current time.

Specified by:
hasCurrentEvent in interface CTEventGenerator
Returns:
True if there is an event at the current time.

isOutputAccurate

public boolean isOutputAccurate()
Call the isOutputAccurate() method of the current refinement director if it is an instance of CTTransparentDirector. Otherwise, return true, which indicates the current step size is accurate w.r.t. outputs.

Specified by:
isOutputAccurate in interface CTStepSizeControlActor
Returns:
True if the current step size is accurate w.r.t. outputs.

isStateAccurate

public boolean isStateAccurate()
Call the isStateAccurate() method of the current refinement director if it is an instance of CTTransparentDirector. Otherwise, return true, which indicates the current step size is accurate w.r.t. the current states.

Specified by:
isStateAccurate in interface CTStepSizeControlActor
Returns:
True if the current step size is accurate w.r.t. the current states.

markState

public void markState()
Call the markState() method of the current refinement director if it is an instance of CTTransparentDirector. Otherwise, do nothing.

Specified by:
markState in interface CTStatefulActor

newRefinement

public Refinement newRefinement(java.lang.String name)
                         throws IllegalActionException,
                                NameDuplicationException
Create a new refinement with the specified name.

Overrides:
newRefinement in class Case
Parameters:
name - The name of the new refinement.
Returns:
The new refinement.
Throws:
IllegalActionException - If the refinement cannot be created.
NameDuplicationException - If a refinement already exists with this name.

predictedStepSize

public double predictedStepSize()
Call the predictedStepSize() method of the current refinement director if it is an instance of CTTransparentDirector. Otherwise, return java.lang.Double.MAX_VALUE.

Specified by:
predictedStepSize in interface CTStepSizeControlActor
Returns:
The predicted step size.

prefireDynamicActors

public boolean prefireDynamicActors()
                             throws IllegalActionException
Call the prefireDynamicActors() method of the current refinement director if it is an instance of CTTransparentDirector. Return true if all dynamic actors are prefired, otherwise, return false. If the local director is not an instance of CTTransparentDirector, return true always.

Returns:
True if all dynamic actors are prefired.
Throws:
IllegalActionException - If the local director throws it.

refinedStepSize

public double refinedStepSize()
Call the refinedStepSize() method of the current refinement director if it is an instance of CTTransparentDirector. Otherwise, return the current step size of the executive director.

Specified by:
refinedStepSize in interface CTStepSizeControlActor
Returns:
The refined step size.

refinementClassName

public java.lang.String refinementClassName()
Return the class name for refinements that this Case actor expects to contain.

Overrides:
refinementClassName in class Case
Returns:
The string "ptolemy.actor.lib.hoc.Refinement".

_createDirector

protected CaseDirector _createDirector()
                                throws IllegalActionException,
                                       NameDuplicationException
Create a director. This class creates an instance of CTCaseDirector.

Overrides:
_createDirector in class Case
Returns:
The created director.
Throws:
IllegalActionException - If the director cannot be created.
NameDuplicationException - If there is already an attribute with the name "_director".