ptolemy.data.expr
Class ScopeExtendingAttribute
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.util.Attribute
ptolemy.data.expr.ScopeExtendingAttribute
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, ScopeExtender, Changeable, Debuggable, DebugListener, Derivable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
- Direct Known Subclasses:
- ParameterSet, PtolemyPreferences, UnitSystem
public class ScopeExtendingAttribute
- extends Attribute
- implements ScopeExtender
An attribute that extends its container's scope. Any
parameter contained by such an attribute has the same
visibility as parameters of the container of the attribute.
They are shadowed, however, by parameters of the container.
That is, if the container has a parameter with the same name
as one in the parameter set, the one in the container provides
the value to any observer.
- Version:
- $Id: ScopeExtendingAttribute.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Xiaojun Liu
- See Also:
Variable
,
Serialized Form
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 |
ScopeExtendingAttribute(NamedObj container,
java.lang.String name)
Construct an attribute with the given name contained by the specified
entity. |
Methods inherited from class ptolemy.kernel.util.Attribute |
_checkContainer, _getContainedObject, _propagateExistence, clone, getContainer, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, setName, updateContent |
Methods inherited from class ptolemy.kernel.util.NamedObj |
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _description, _exportMoMLContents, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, attributeChanged, attributeList, attributeList, attributeTypeChanged, clone, containedObjectsIterator, 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, propagateExistence, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, uniqueName, validateSettables, workspace |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
ScopeExtendingAttribute
public ScopeExtendingAttribute(NamedObj container,
java.lang.String name)
throws IllegalActionException,
NameDuplicationException
- Construct an attribute with the given name contained by the specified
entity. The container argument must not be null, or a
NullPointerException will be thrown. This attribute 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.name
- The name of this attribute.
- Throws:
IllegalActionException
- If the attribute is not of an
acceptable class for the container, or if the name contains a period.
NameDuplicationException
- If the name coincides with
an attribute already in the container.
setContainer
public void setContainer(NamedObj container)
throws IllegalActionException,
NameDuplicationException
- Specify the container NamedObj, adding this attribute to the
list of attributes in the container. Notify parameters that
depends on any parameter of this attribute about the change in
scope. If the container already
contains an attribute with the same name, then throw an exception
and do not make any changes. Similarly, if the container is
not in the same workspace as this attribute, throw an exception.
If this attribute is already contained by the NamedObj, do nothing.
This method is write-synchronized on the workspace and increments
its version number.
- Overrides:
setContainer
in class Attribute
- Parameters:
container
- The container to attach this attribute to..
- Throws:
IllegalActionException
- If this attribute is not of the
expected class for the container, or it has no name,
or the attribute and container are not in the same workspace, or
the proposed container would result in recursive containment.
NameDuplicationException
- If the container already has
an attribute with the name of this attribute.- See Also:
Attribute.getContainer()
_invalidateShadowedSettables
private void _invalidateShadowedSettables(NamedObj object)
throws IllegalActionException
- Throws:
IllegalActionException