ptolemy.data.properties
Class AnalyzerAttribute

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.util.Attribute
          extended by ptolemy.data.properties.AnalyzerAttribute
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Changeable, Debuggable, DebugListener, Derivable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class AnalyzerAttribute
extends Attribute

Since:
Ptolemy II 7.1
Version:
$Id: AnalyzerAttribute.java 55677 2009-09-11 14:56:05Z cshelton $
Author:
Man-Kit Leung
See Also:
Serialized Form
Accepted Rating:
Red (mankit)
Proposed Rating:
Red (mankit)

Nested Class Summary
(package private) static class AnalyzerAttribute.ClassFileOrDirectoryNameFilter
          Look for directories that do are not CVS or .svn.
 
Nested classes/interfaces inherited from class ptolemy.kernel.util.NamedObj
NamedObj.ContainedObjectsIterator
 
Field Summary
private  java.util.List<java.lang.Class> _solvers
           
 Parameter action
           
 Parameter highlight
           
 Parameter logMode
           
 Parameter overwriteConstraint
           
 Parameter overwriteDependentProperties
           
 Parameter property
          The property to analyze.
 Parameter showProperty
          Whether to display the annotated property or not.
 
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
AnalyzerAttribute(NamedObj container, java.lang.String name)
          Construct an AnalyzerAttribute with the specified container and name.
 
Method Summary
private  void _addChoices()
           
private  void _moveParameter(Parameter parameter)
           
 java.lang.String analyze(CompositeEntity entity)
           
 java.util.List<java.lang.Class> getListOfSolverClass(java.lang.String path)
          Given a dot separated packagename, return a list of all the packages in the given path and below.
 java.net.URI getModelURI(java.lang.String modelName)
           
 PropertySolver instantiateSolver(CompositeEntity entity, java.lang.String className)
           
 void setContainer(NamedObj container)
          Specify the container NamedObj, adding this attribute to the list of attributes in the container.
 
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
 

Field Detail

action

public Parameter action

highlight

public Parameter highlight

logMode

public Parameter logMode

overwriteConstraint

public Parameter overwriteConstraint

overwriteDependentProperties

public Parameter overwriteDependentProperties

property

public Parameter property
The property to analyze.


showProperty

public Parameter showProperty
Whether to display the annotated property or not.


_solvers

private final java.util.List<java.lang.Class> _solvers
Constructor Detail

AnalyzerAttribute

public AnalyzerAttribute(NamedObj container,
                         java.lang.String name)
                  throws IllegalActionException,
                         NameDuplicationException
Construct an AnalyzerAttribute with the specified container and name.

Parameters:
container - The specified container.
name - The specified name.
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.
Method Detail

analyze

public java.lang.String analyze(CompositeEntity entity)
                         throws IllegalActionException
Throws:
IllegalActionException

getModelURI

public java.net.URI getModelURI(java.lang.String modelName)
                         throws java.net.URISyntaxException
Throws:
java.net.URISyntaxException

getListOfSolverClass

public java.util.List<java.lang.Class> getListOfSolverClass(java.lang.String path)
Given a dot separated packagename, return a list of all the packages in the given path and below. The list of solver classes is also updated.

Parameters:
path - The dot separated package name, such as "ptolemy.data.properties.configuredSolvers"
Returns:
a List of packages that are found.

instantiateSolver

public PropertySolver instantiateSolver(CompositeEntity entity,
                                        java.lang.String className)

setContainer

public void setContainer(NamedObj container)
                  throws IllegalActionException,
                         NameDuplicationException
Description copied from class: Attribute
Specify the container NamedObj, adding this attribute to the list of attributes in the container. 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. 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 it 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.

Subclasses may constrain the type of container by overriding Attribute.setContainer(NamedObj).

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()

_addChoices

private void _addChoices()
                  throws IllegalActionException
Throws:
IllegalActionException

_moveParameter

private void _moveParameter(Parameter parameter)
                     throws IllegalActionException,
                            NameDuplicationException
Throws:
IllegalActionException
NameDuplicationException