Package ptolemy.data.ontologies
Class RecordConcept
- java.lang.Object
-
- All Implemented Interfaces:
java.lang.Cloneable
,InequalityTerm
,Changeable
,Debuggable
,DebugListener
,Derivable
,Instantiable
,ModelErrorHandler
,MoMLExportable
,Moveable
,Nameable
public class RecordConcept extends MapTypeInfiniteConcept<Concept>
A concept that represents the concept values of entries in a record token. A conceptable model element such as a port or node in a Ptolemy expression could contain a token value that is a record data type. A record token is a token that is a collection of multiple token values of different types. For example, we might want to specify a record that indicates the (x,y) pixel position on a black-and-white screen, and also true or false for whether that pixel position is on or off. We can use a record of the form: {x = 34, y = 26, pixelOn = true}This RecordConcept allows any record to be assigned concept values for its individual elements from an arbitrary finite ontology. For example, if we wanted to assign a concept to the token above from the constAbstractInterpretation ontology, it would be: {x = Positive, y = Positive, pixelOn = BooleanTrue} This code is adapted from the
MonotonicityConcept
implementation.- Since:
- Ptolemy II 10.0
- Version:
- $Id$
- Author:
- Charles Shelton, Ben Lickly, Elizabeth Latronico
- Pt.AcceptedRating:
- Red (blickly)
- Pt.ProposedRating:
- Red (blickly)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
-
-
Field Summary
-
Fields inherited from class ptolemy.data.ontologies.Concept
isAcceptable
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
RecordConcept(Ontology ontology)
Create a new Record concept, belonging to the given ontology.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compare(Concept concept)
Compare this concept with the given concept.static RecordConcept
createRecordConcept(Ontology ontology)
Create a new record concept, belonging to the given ontology, with an automatically generated name.Concept
greatestLowerBound(Concept concept)
Compute the greatest lower bound (GLB) of this and another concept.Concept
leastUpperBound(Concept concept)
Compute the least upper bound (LUB) of this and another concept.-
Methods inherited from class ptolemy.data.ontologies.MapTypeInfiniteConcept
_combinedKeys, _commonKeys, _values, equals, getConcept, hashCode, keySet, putConcept, toString
-
Methods inherited from class ptolemy.data.ontologies.InfiniteConcept
getRepresentative
-
Methods inherited from class ptolemy.data.ontologies.Concept
getAssociatedObject, getColor, getOntology, getValue, getVariables, initialize, isAboveOrEqualTo, isSettable, isValueAcceptable, setValue
-
Methods inherited from class ptolemy.kernel.ComponentEntity
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, clone, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, newPort, propagateExistence, setContainer, setName
-
Methods inherited from class ptolemy.kernel.Entity
_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, connectionsChanged, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
-
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
-
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeChanged, attributeDeleted, attributeList, attributeList, attributeTypeChanged, clone, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, validateSettables, workspace
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
-
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getDisplayName, getFullName, getName, getName
-
-
-
-
Constructor Detail
-
RecordConcept
protected RecordConcept(Ontology ontology) throws IllegalActionException, NameDuplicationException
Create a new Record concept, belonging to the given ontology.- Parameters:
ontology
- The ontology to which this RecordConcept belongs.- Throws:
NameDuplicationException
- Should never be thrown.IllegalActionException
- If the base class throws it.
-
-
Method Detail
-
createRecordConcept
public static RecordConcept createRecordConcept(Ontology ontology)
Create a new record concept, belonging to the given ontology, with an automatically generated name.- Parameters:
ontology
- The ontology to which this concept belongs.- Returns:
- The newly created RecordConcept.
- Throws:
InternalErrorException
- If there .
-
compare
public int compare(Concept concept) throws IllegalActionException
Compare this concept with the given concept. Returns an int value that corresponds to the ordering between the elements as given in the CPO interface.- Specified by:
compare
in classInfiniteConcept
- Parameters:
concept
- The concept with which we are comparing.- Returns:
- CPO.HIGHER if this concept is above the given concept, CPO.LOWER if this concept is below the given concept, CPO.SAME if both concepts are the same, and CPO.INCOMPARABLE if concepts are incomparable.
- Throws:
IllegalActionException
- If the specified concept does not have the same ontology as this one.- See Also:
Concept.isAboveOrEqualTo(ptolemy.data.ontologies.Concept)
-
greatestLowerBound
public Concept greatestLowerBound(Concept concept)
Compute the greatest lower bound (GLB) of this and another concept.- Specified by:
greatestLowerBound
in classInfiniteConcept
- Parameters:
concept
- The other concept- Returns:
- The concept that is the GLB of this and the given concept.
-
leastUpperBound
public Concept leastUpperBound(Concept concept)
Compute the least upper bound (LUB) of this and another concept.- Specified by:
leastUpperBound
in classInfiniteConcept
- Parameters:
concept
- The other concept- Returns:
- The concept that is the LUB of this and the given concept.
-
-