ptolemy.kernel.util
Class SingletonConfigurableAttribute
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.util.Attribute
ptolemy.kernel.util.ConfigurableAttribute
ptolemy.kernel.util.SingletonConfigurableAttribute
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Changeable, Configurable, Debuggable, DebugListener, Derivable, ModelErrorHandler, MoMLExportable, Moveable, Nameable, Settable, Singleton
- Direct Known Subclasses:
- DebugController
public class SingletonConfigurableAttribute
- extends ConfigurableAttribute
- implements Singleton
This class is a configurable attribute that replaces any previously
existing attribute in the container that has the same name.
An important use of this class is to describe icons for visual rendition.
The icons are described in an XML schema called SVG, given in the
body of a configure XML element. The icon description is named
"_iconDescription", and placing such a description into any container
replaces any previous description in the container.
- Since:
- Ptolemy II 1.0
- Version:
- $Id: SingletonConfigurableAttribute.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Steve Neuendorffer and Edward A. Lee
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Fields inherited from class ptolemy.kernel.util.NamedObj |
_attributes, _changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Method Summary |
void |
setContainer(NamedObj container)
Remove any previous attribute in the container that has the same
name as this attribute, and then call the base class method to set
the container. |
Methods inherited from class ptolemy.kernel.util.ConfigurableAttribute |
_exportMoMLContents, _propagateValue, addValueListener, clone, configure, getBase, getConfigureSource, getConfigureText, getDefaultExpression, getDisplayName, getExpression, getValueAsString, getVisibility, removeValueListener, setDisplayName, setExpression, setVisibility, validate, value |
Methods inherited from class ptolemy.kernel.util.Attribute |
_checkContainer, _getContainedObject, _propagateExistence, 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, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _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, getElementName, getFullName, getModelErrorHandler, getName, getName, getPrototypeList, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateExistence, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, 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 |
SingletonConfigurableAttribute
public SingletonConfigurableAttribute()
- Construct a new attribute with no
container and an empty string as its name. Add the attribute to the
workspace directory.
Increment the version number of the workspace.
SingletonConfigurableAttribute
public SingletonConfigurableAttribute(Workspace workspace)
- Construct a new attribute with
no container and an empty string as a name. You can then change
the name with setName(). If the workspace argument is null, then
use the default workspace.
Add the attribute to the workspace directory.
Increment the version number of the workspace.
- Parameters:
workspace
- The workspace that will list the attribute.
SingletonConfigurableAttribute
public SingletonConfigurableAttribute(NamedObj container,
java.lang.String name)
throws NameDuplicationException,
IllegalActionException
- Construct an attribute with the given container and name.
If an attribute already exists with the same name as the one
specified here, that is an instance of class
SingletonConfigurableAttribute (or a derived class), then that
attribute is removed before this one is inserted in the container.
- Parameters:
container
- The container.name
- The name of this attribute.
- Throws:
IllegalActionException
- If the attribute cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
attribute with this name, and the class of that container is not
SingletonConfigurableAttribute.
setContainer
public void setContainer(NamedObj container)
throws IllegalActionException,
NameDuplicationException
- Remove any previous attribute in the container that has the same
name as this attribute, and then call the base class method to set
the container. 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.
If the attribute already has a container, remove
this attribute from its attribute list first. Otherwise, remove
it from the directory of the workspace, if it is there.
If the argument is null, then remove this attribute from its
container. It is not added to the workspace directory, so this
could result in this object being garbage collected.
Note that since an Attribute is a NamedObj, it can itself have
attributes. However, recursive containment is not allowed, where
an attribute is an attribute of itself, or indirectly of any attribute
it contains.
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 that is of class
SingletonConfigurableAttribute.- See Also:
Attribute.getContainer()