public class ComponentRelation extends Relation
Derived classes may wish to further constrain linked ports to a subclass of ComponentPort, or to disallow links under other circumstances, for example if the relation cannot support any more links. Such derived classes should override the protected method _checkPort() to throw an exception.
To link a ComponentPort to a ComponentRelation, use the link() or liberalLink() method in the ComponentPort class. To remove a link, use the unlink() method.
The container for instances of this class can only be instances of ComponentEntity. Derived classes may wish to further constrain the container to subclasses of ComponentEntity. To do this, they should override the protected _checkContainer() method.
| Green (johnr) |
| Green (eal) |
NamedObj.ContainedObjectsIterator_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS| Constructor and Description |
|---|
ComponentRelation()
Construct a relation in the default workspace with an empty string
as its name.
|
ComponentRelation(CompositeEntity container,
java.lang.String name)
Construct a relation with the given name contained by the specified
entity.
|
ComponentRelation(Workspace workspace)
Construct a relation in the specified workspace with an empty
string as a name.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
_checkContainer(CompositeEntity container)
Check that the specified container is of a suitable class for
this relation.
|
protected void |
_checkPort(Port port)
Throw an exception if the specified port cannot be linked to this
relation (is not of class ComponentPort).
|
protected void |
_checkRelation(Relation relation,
boolean symmetric)
Throw an exception if the specified relation is not an instance
of ComponentRelation.
|
protected NamedObj |
_propagateExistence(NamedObj container)
Propagate existence of this object to the
specified object.
|
java.lang.Object |
clone(Workspace workspace)
Clone the object into the specified workspace.
|
java.util.List |
deepLinkedPortList()
Deeply list the ports linked to this relation.
|
java.util.Enumeration |
deepLinkedPorts()
Deprecated.
Use deepLinkedPortList() instead.
|
NamedObj |
getContainer()
Get the container entity.
|
int |
moveDown()
Move this object down by one in the list of relations of
its container.
|
int |
moveToFirst()
Move this object to the first position in the list
of relations of the container.
|
int |
moveToIndex(int index)
Move this object to the specified position in the list
of relations of the container.
|
int |
moveToLast()
Move this object to the last position in the list
of relations of the container.
|
int |
moveUp()
Move this object up by one in the list of
relations of the container.
|
void |
setContainer(CompositeEntity container)
Specify the container entity, adding the relation to the list
of relations in the container.
|
void |
setName(java.lang.String name)
Set the name of the ComponentRelation.
|
void |
unlinkAll()
Override the base class to break inside links on ports as well
as outside lists.
|
_description, _getContainedObject, link, linkedObjectsList, linkedPortList, linkedPortList, linkedPorts, linkedPorts, numLinks, relationGroupList, unlink_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _exportMoMLContents, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, addHierarchyListener, attributeChanged, 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, workspacepublic ComponentRelation()
public ComponentRelation(Workspace workspace)
workspace - The workspace that will list the relation.public ComponentRelation(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
container - The container.name - The name of the relation.IllegalActionException - If the container is incompatible
with this relation.NameDuplicationException - If the name coincides with
a relation already in the container.public java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException
clone in class Relationworkspace - The workspace for the cloned object.java.lang.CloneNotSupportedException - If one or more of the attributes
cannot be cloned.NamedObj.exportMoML(Writer, int, String),
NamedObj.setDeferringChangeRequests(boolean)public java.util.List deepLinkedPortList()
@Deprecated public java.util.Enumeration deepLinkedPorts()
public NamedObj getContainer()
getContainer in interface NameablegetContainer in class NamedObjsetContainer(CompositeEntity)public int moveDown()
throws IllegalActionException
moveDown in interface MoveablemoveDown in class NamedObjIllegalActionException - If this object has
no container.public int moveToFirst()
throws IllegalActionException
moveToFirst in interface MoveablemoveToFirst in class NamedObjIllegalActionException - If this object has
no container.public int moveToIndex(int index)
throws IllegalActionException
moveToIndex in interface MoveablemoveToIndex in class NamedObjindex - The position to move this object to.IllegalActionException - If this object has
no container or if the index is out of bounds.public int moveToLast()
throws IllegalActionException
moveToLast in interface MoveablemoveToLast in class NamedObjIllegalActionException - If this object has
no container.public int moveUp()
throws IllegalActionException
moveUp in interface MoveablemoveUp in class NamedObjIllegalActionException - If this object has
no container.public void setContainer(CompositeEntity container) throws IllegalActionException, NameDuplicationException
container - The proposed container.IllegalActionException - If this entity and the container
are not in the same workspace, or if
a contained Settable becomes invalid and the error handler
throws it.NameDuplicationException - If the name collides with a name
already on the contents list of the container.getContainer()public void setName(java.lang.String name)
throws IllegalActionException,
NameDuplicationException
setName in interface NameablesetName in class NamedObjname - The new name.IllegalActionException - If the name has a period.NameDuplicationException - If there is already a relation
with the same name in the container.NamedObj.getName(),
NamedObj.getName(NamedObj)public void unlinkAll()
protected void _checkContainer(CompositeEntity container) throws IllegalActionException
container - The proposed container.IllegalActionException - If the container is not of
an acceptable class. Not thrown in this base class.protected void _checkPort(Port port) throws IllegalActionException
_checkPort in class Relationport - The port to link to.IllegalActionException - If the port is not a ComponentPort.protected void _checkRelation(Relation relation, boolean symmetric) throws IllegalActionException
_checkRelation in class Relationrelation - The relation to link to.symmetric - If true, the call _checkRelation on the specified
relation with this as an argument.IllegalActionException - If this port has no container,
or if this port is not an acceptable port for the specified
relation.protected NamedObj _propagateExistence(NamedObj container) throws IllegalActionException
_propagateExistence in class NamedObjcontainer - Object to contain the new object.IllegalActionException - If the object
cannot be cloned.