ptolemy.domains.modal.modal
Class ModalRefinement
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.modal.modal.ModalModel
ptolemy.domains.modal.modal.ModalRefinement
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, RefinementActor, Changeable, ChangeListener, Debuggable, DebugListener, Derivable, DropTargetHandler, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class ModalRefinement
- extends ModalModel
- implements DropTargetHandler, RefinementActor
This modal model actor supports mirroring of its ports in its container
(which is required to be a refinement of a state in a ModalModel).
This in turn assures
mirroring of ports in each of the refinements.
Note that this actor has no attributes of its own.
Requests for attributes are delegated to the container.
- Since:
- Ptolemy II 8.0
- Version:
- $Id: ModalRefinement.java 57046 2010-01-27 23:35:53Z cxh $
- Author:
- Edward A. Lee
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Field Summary |
protected int |
_mirrorDisable
Indicator that we are processing a newPort request from above
(if 1) or below (if -1) in the hierarchy. |
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 |
protected void |
_checkContainer(Entity container)
Override the base class to ensure that the proposed container
is a ModalModel or null. |
protected java.util.TreeMap<java.lang.Class<? extends Entity>,java.lang.String> |
_getRefinementClasses()
Return a map from the classes of the entities to be dropped into a state
and the class names of the refinements that can be used to contain those
entities. |
void |
addRefinement(State state,
java.lang.String name,
Entity template,
java.lang.String className,
Configuration configuration)
Create a refinement for the given state. |
void |
dropObject(NamedObj target,
java.util.List dropObjects,
java.lang.String moml)
React to a list of objects being dropped onto a target. |
State |
getRefinedState()
Get the state in any ModalRefinement within this ModalModel that has
this ModalRefinement as its refinement, if any. |
Port |
newPort(java.lang.String name)
Create a new port with the specified name in the container of
this controller, which in turn creates a port in this controller
and all the refinements. |
void |
setMirrorDisable(int disable)
Control whether adding a port should be mirrored in the modal
model and refinements. |
Methods inherited from class ptolemy.actor.CompositeActor |
_actorFiring, _actorFiring, _finishedAddEntity, _getPublishedPort, _setDirector, addActorFiringListener, addInitializable, addPiggyback, connectionsChanged, createReceivers, createSchedule, fire, 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, 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 int _mirrorDisable
- Indicator that we are processing a newPort request from above
(if 1) or below (if -1) in the hierarchy.
ModalRefinement
public ModalRefinement(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.
dropObject
public void dropObject(NamedObj target,
java.util.List dropObjects,
java.lang.String moml)
throws IllegalActionException
- React to a list of objects being dropped onto a target.
- Specified by:
dropObject
in interface DropTargetHandler
- Parameters:
target
- The target on which the objects are dropped.dropObjects
- The list of objects dropped onto the target.moml
- The moml string generated for the dropped objects.
- Throws:
IllegalActionException
- If the handling is unsuccessful.
getRefinedState
public State getRefinedState()
throws IllegalActionException
- Get the state in any ModalRefinement within this ModalModel that has
this ModalRefinement as its refinement, if any. Return null if no such
state is found.
- Specified by:
getRefinedState
in interface RefinementActor
- Returns:
- The state with this ModalRefinement 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 controller, which in turn creates a port in this controller
and all the refinements.
This method is write-synchronized on the workspace.
- Overrides:
newPort
in class ModalModel
- 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(int disable)
- Control whether adding a port should be mirrored in the modal
model and refinements.
This is added to allow control by the UI.
- Specified by:
setMirrorDisable
in interface RefinementActor
- Parameters:
disable
- 0 if mirroring should occur, -1
if mirroring should not occur downwards in the hierarchy,
1 if mirroring should not occur upwards in the hierarchy.
_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.
_getRefinementClasses
protected java.util.TreeMap<java.lang.Class<? extends Entity>,java.lang.String> _getRefinementClasses()
- Return a map from the classes of the entities to be dropped into a state
and the class names of the refinements that can be used to contain those
entities.
- Returns:
- The map.
addRefinement
public void addRefinement(State state,
java.lang.String name,
Entity template,
java.lang.String className,
Configuration configuration)
throws IllegalActionException
- Create a refinement for the given state.
- 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.