public class TransitionRefinementPort extends RefinementPort
For output ports, this class creates a sibling "input" port. The sibling port is normally treated like any other port but mirrors changes via it's output sibling. This is so that TransitionRefinement instances can get the outputs from the State refinements without having the port be an input/output. This sibling port is labeled as "port_in" where port is the name of the corresponding output port.
ModalPort
,
TransitionRefinement
Red (liuxj) |
Red (eal) |
TypedIOPort.RunTimeTypeCheckException
NamedObj.ContainedObjectsIterator
Modifier and Type | Field and Description |
---|---|
protected boolean |
_hasSibling
Flag indicating if this port has a sibling.
|
_automaticallyInput, _mirrorDisable
_resolvedType, TYPE
_constantLimit, _constantToken, _constantTokensSent, _hasPortEventListeners, _portEventListeners, CONFIGURATION, defaultValue, RECEIVERS, REMOTERECEIVERS
_insideLinks, _relationsList
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
Constructor and Description |
---|
TransitionRefinementPort(ComponentEntity container,
java.lang.String name)
Construct a port with a containing actor and a name
that is neither an input nor an output.
|
TransitionRefinementPort(Workspace workspace)
Construct a port in the given workspace.
|
Modifier and Type | Method and Description |
---|---|
void |
link(Relation relation)
Override the base class to avoid linking a sibling input port to
the same relation as the sibling output port multiple times.
|
void |
setContainer(Entity container)
Override the base class so that if the port is being removed
from the current container, then it is also removed from the
controller and from each of the refinements.
|
void |
setInput(boolean isInput)
If the argument is true, make the port an input port.
|
void |
setMultiport(boolean isMultiport)
If the argument is true, make the port a multiport.
|
void |
setName(java.lang.String name)
Set the name of the port, and mirror the change in all the
mirror ports.
|
void |
setOutput(boolean isOutput)
If the argument is true, make the port an output port.
|
_checkContainer, attributeChanged, isTypeAcceptable, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, setMirrorDisable, typeConstraints
_moveDown, _moveToFirst, _moveToIndex, _moveToLast, _moveUp, _removePort, _setInput, _setMultiport, _setName, _setOutput
_checkLiberalLink, _checkLink, _checkType, _checkTypedIOPortContainer, _description, addTypeListener, broadcast, broadcast, clone, convert, getAutomaticTypeConversion, getType, getTypeTerm, removeTypeListener, send, send, sendInside, setAutomaticTypeConversion, setTypeAtLeast, setTypeAtLeast, setTypeAtMost, setTypeEquals, setTypeSameAs, typeConstraintList
_checkLiberalLink, _exportMoMLContents, _getInsideWidth, _getOutsideWidth, _getReceiversLinkedToGroup, _newInsideReceiver, _newInsideReceiver, _newReceiver, _newReceiver, _notifyPortEventListeners, _removeReceivers, _setConstant, _wrapReceiver, addIOPortEventListener, broadcastClear, checkWidthConstraints, createReceivers, deepConnectedInPortList, deepConnectedInPorts, deepConnectedOutPortList, deepConnectedOutPorts, deepGetReceivers, get, get, getChannelForReceiver, getCommunicationAspects, getCurrentTime, getDefaultWidth, getInside, getInsideReceivers, getModelTime, getReceivers, getReceivers, getReceivers, getRelationIndex, getRemoteReceivers, getRemoteReceivers, getWidth, getWidthFromConstraints, getWidthInside, hasNewToken, hasNewTokenInside, hasRoom, hasRoomInside, hasToken, hasToken, hasTokenInside, hasWidthConstraints, insertLink, insideSinkPortList, insideSourcePortList, invalidateCommunicationAspects, isInput, isInsideConnected, isKnown, isKnown, isKnownInside, isMultiport, isOutput, isOutsideConnected, liberalLink, numberOfSinks, numberOfSources, removeIOPortEventListener, reset, sendClear, sendClearInside, setDefaultWidth, setWidthEquals, setWidthEquals, sinkPortList, sourcePortList, transferInputs, transferOutputs, unlink, unlink, unlinkAll, unlinkAllInside, unlinkInside, unlinkInside
_deepConnectedPortList, _deepConnectedPorts, _deepInsidePortList, _deepInsidePorts, _isInsideLinkable, deepConnectedPortList, deepConnectedPorts, deepInsidePortList, deepInsidePorts, insertInsideLink, insidePortList, insidePorts, insideRelationList, insideRelations, isDeeplyConnected, isInsideGroupLinked, isInsideLinked, isOpaque, numInsideLinks
_getContainedObject, _propagateExistence, connectedPortList, connectedPorts, getContainer, isGroupLinked, isLinked, linkedRelationList, linkedRelations, numLinks
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, addHierarchyListener, attributeDeleted, attributeList, attributeList, attributeTypeChanged, clone, containedObjectsIterator, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, 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, notifyOfNameChange, propagateExistence, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, uniqueName, validateSettables, workspace
protected boolean _hasSibling
public TransitionRefinementPort(Workspace workspace) throws IllegalActionException, NameDuplicationException
workspace
- The workspace.IllegalActionException
- If the port is not of an acceptable
class for the container, or if the container does not implement the
TypedActor interface.NameDuplicationException
- If the name coincides with
a port already in the container.public TransitionRefinementPort(ComponentEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
container
- The container actor.name
- The name of the port.IllegalActionException
- If the port is not of an acceptable
class for the container, or if the container does not implement the
TypedActor interface.NameDuplicationException
- If the name coincides with
a port already in the container.public void link(Relation relation) throws IllegalActionException
link
in class RefinementPort
relation
- The relation to link to.IllegalActionException
- If the link crosses levels of
the hierarchy, or the port has no container, or the relation
is not an instance of IORelation.public void setContainer(Entity container) throws IllegalActionException, NameDuplicationException
setContainer
in class RefinementPort
container
- The proposed container.IllegalActionException
- If the proposed container is not a
ComponentEntity, doesn't implement Actor, or has no name,
or the port and container are not in the same workspace. Or
it's not nullNameDuplicationException
- If the container already has
a port with the name of this port.Port.getContainer()
,
Port._checkContainer(Entity)
public void setInput(boolean isInput) throws IllegalActionException
setInput
in class RefinementPort
isInput
- True to make the port an input.IllegalActionException
- If changing the port status is
not permitted.public void setMultiport(boolean isMultiport) throws IllegalActionException
setMultiport
in class RefinementPort
isMultiport
- True to make the port a multiport.IllegalActionException
- If changing the port status is
not permitted.public void setName(java.lang.String name) throws IllegalActionException, NameDuplicationException
setName
in interface Nameable
setName
in class RefinementPort
name
- The new name.IllegalActionException
- If the name has a period.NameDuplicationException
- If there is already a port
with the same name in the container.NamedObj.getName()
,
NamedObj.getName(NamedObj)
public void setOutput(boolean isOutput) throws IllegalActionException
setOutput
in class RefinementPort
isOutput
- True to make the port an output.IllegalActionException
- If changing the port status is
not permitted.