ptolemy.domains.fsm.modal
Class Refinement
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.kernel.CompositeEntity
ptolemy.actor.CompositeActor
ptolemy.actor.TypedCompositeActor
ptolemy.domains.ct.kernel.CTCompositeActor
ptolemy.domains.fsm.modal.Refinement
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, CTDynamicActor, CTEventGenerator, CTStatefulActor, CTStepSizeControlActor, CTWaveformGenerator, RefinementActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
- Direct Known Subclasses:
- TDLRefinement, TransitionRefinement
public class Refinement
- extends CTCompositeActor
- implements RefinementActor
This typed composite actor supports mirroring of its ports in its container
(which is required to be a ModalModel), which in turn assures
mirroring of ports in each of the refinements and the controller.
Refinements fulfills the CTStepSizeControlActor interface so that
it can be used to construct hybrid systems using the CT domain.
Refinements also fulfills the CTEventGenerator interfact so that
it can report events generated inside.
- Since:
- Ptolemy II 2.0
- Version:
- $Id: Refinement.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Edward A. Lee
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Field Summary |
protected boolean |
_mirrorDisable
Indicator that we are processing a newPort request. |
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Constructor Summary |
Refinement(CompositeEntity container,
java.lang.String name)
Construct a modal controller with a name and a container. |
Method Summary |
protected void |
_checkContainer(Entity container)
Override the base class to ensure that the proposed container
is a ModalModel or null. |
void |
addRefinement(State state,
java.lang.String name,
Entity template,
java.lang.String className,
Configuration configuration)
Perform no action but throw an IllegalActionException because a
refinement cannot be created in an arbitrary actor-oriented refinement. |
State |
getRefinedState()
Get the state in any ModalController within this ModalModel that has
this refinement as its refinement, if any. |
Port |
newPort(java.lang.String name)
Create a new port with the specified name in the container of
this refinement, which in turn creates a port in this refinement
all other refinements, and the controller. |
void |
setMirrorDisable(boolean disable)
Control whether adding a port should be mirrored in the modal
model and the mode controller. |
Methods inherited from class ptolemy.domains.ct.kernel.CTCompositeActor |
containsDynamicActors, containsWaveformGenerators, emitCurrentStates, goToMarkedState, hasCurrentEvent, isOutputAccurate, isStateAccurate, markState, predictedStepSize, prefireDynamicActors, refinedStepSize |
Methods inherited from class ptolemy.actor.CompositeActor |
_actorFiring, _actorFiring, _finishedAddEntity, _getPublishedPort, _setDirector, addActorFiringListener, addInitializable, addPiggyback, clone, connectionsChanged, createReceivers, createSchedule, fire, 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.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 |
_mirrorDisable
protected boolean _mirrorDisable
- Indicator that we are processing a newPort request.
Refinement
public Refinement(CompositeEntity container,
java.lang.String name)
throws IllegalActionException,
NameDuplicationException
- Construct a modal controller with a name and a container.
The container argument must not be null, or a
NullPointerException will be thrown.
- Parameters:
container
- The container.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.
addRefinement
public void addRefinement(State state,
java.lang.String name,
Entity template,
java.lang.String className,
Configuration configuration)
throws IllegalActionException
- Perform no action but throw an IllegalActionException because a
refinement cannot be created in an arbitrary actor-oriented refinement.
- Specified by:
addRefinement
in interface RefinementActor
- Parameters:
state
- The state that will contain the new refinement.name
- The name of the composite entity that stores the refinement.template
- The template used to create the refinement, or null if
template is not used.className
- The class name for the refinement, which is used when
template is null.configuration
- The configuration that is used to open the
refinement (as a look-inside action) after it is created, or null if it
is not needed to open the refinement.
- Throws:
IllegalActionException
- If error occurs while creating the
refinement.
getRefinedState
public State getRefinedState()
throws IllegalActionException
- Get the state in any ModalController within this ModalModel that has
this refinement as its refinement, if any. Return null if no such state
is found.
- Specified by:
getRefinedState
in interface RefinementActor
- Returns:
- The state with this refinement as its refinement, or null.
- Throws:
IllegalActionException
- If the specified refinement cannot be
found in a state, or if a comma-separated list is malformed.
newPort
public Port newPort(java.lang.String name)
throws NameDuplicationException
- Create a new port with the specified name in the container of
this refinement, which in turn creates a port in this refinement
all other refinements, and the controller.
This method is write-synchronized on the workspace.
- Overrides:
newPort
in class TypedCompositeActor
- Parameters:
name
- The name to assign to the newly created port.
- Returns:
- The new port.
- Throws:
NameDuplicationException
- If the entity already has a port
with the specified name.
setMirrorDisable
public void setMirrorDisable(boolean disable)
- Control whether adding a port should be mirrored in the modal
model and the mode controller.
This is added to allow control by the UI.
- Parameters:
disable
- True if mirroring should not occur.
_checkContainer
protected void _checkContainer(Entity container)
throws IllegalActionException
- Override the base class to ensure that the proposed container
is a ModalModel or null.
- Parameters:
container
- The proposed container.
- Throws:
IllegalActionException
- If the proposed container is not a
TypedActor, or if the base class throws it.