edu.cmu.sei.aadl.model.core
Interface PropertyHolder

All Superinterfaces:
AObject, org.eclipse.emf.ecore.EObject, org.eclipse.core.runtime.IAdaptable, NamedElement, org.eclipse.emf.common.notify.Notifier
All Known Subinterfaces:
AadlPackageSection, AadlPrivate, AadlPublic, AbstractPort, AccessConnectionInstance, BusAccess, BusAccessConnection, BusAccessEnd, BusClassifier, BusImpl, BusSubcomponent, BusType, CallSequence, Classifier, ComponentAccess, ComponentClassifier, ComponentImpl, ComponentInstance, ComponentType, Connection, ConnectionInstance, DataAccess, DataAccessConnection, DataAccessEnd, DataClassifier, DataConnection, DataImpl, DataPort, DataSubcomponent, DataType, DeviceClassifier, DeviceImpl, DeviceSubcomponent, DeviceType, EndToEndFlow, EndToEndFlowInstance, EventConnection, EventDataConnection, EventDataPort, EventPort, Feature, FeatureContext, FeatureInstance, FlowElementInstance, FlowImpl, FlowPathImpl, FlowPathSpec, FlowSequence, FlowSinkImpl, FlowSinkSpec, FlowSourceImpl, FlowSourceSpec, FlowSpec, FlowSpecInstance, InstanceObject, MemoryClassifier, MemoryImpl, MemorySubcomponent, MemoryType, Mode, ModeInstance, ModeMember, ModeTransitionConnectionInstance, ModeTransitionInstance, Parameter, ParameterConnection, ParameterEnd, Port, PortConnectionInstance, PortGroup, PortGroupConnection, PortGroupType, ProcessClassifier, ProcessImpl, ProcessorClassifier, ProcessorImpl, ProcessorSubcomponent, ProcessorType, ProcessSubcomponent, ProcessType, PropertyAssociation, ServerSubprogram, Subcomponent, Subprogram, SubprogramClassifier, SubprogramImpl, SubprogramSubcomponent, SubprogramType, SystemClassifier, SystemImpl, SystemInstance, SystemOperationMode, SystemSubcomponent, SystemType, ThreadClassifier, ThreadGroupClassifier, ThreadGroupImpl, ThreadGroupSubcomponent, ThreadGroupType, ThreadImpl, ThreadSubcomponent, ThreadType
All Known Implementing Classes:
AadlPackageSectionImpl, AadlPrivateImpl, AadlPublicImpl, AbstractPortImpl, AccessConnectionInstanceImpl, BusAccessConnectionImpl, BusAccessEndImpl, BusAccessImpl, BusClassifierImpl, BusImplImpl, BusSubcomponentImpl, BusTypeImpl, CallSequenceImpl, ClassifierImpl, ComponentAccessImpl, ComponentClassifierImpl, ComponentImplImpl, ComponentInstanceImpl, ComponentTypeImpl, ConnectionImpl, ConnectionInstanceImpl, DataAccessConnectionImpl, DataAccessEndImpl, DataAccessImpl, DataClassifierImpl, DataConnectionImpl, DataImplImpl, DataPortImpl, DataSubcomponentImpl, DataTypeImpl, DeviceClassifierImpl, DeviceImplImpl, DeviceSubcomponentImpl, DeviceTypeImpl, EndToEndFlowImpl, EndToEndFlowInstanceImpl, EventConnectionImpl, EventDataConnectionImpl, EventDataPortImpl, EventPortImpl, FeatureContextImpl, FeatureImpl, FeatureInstanceImpl, FlowElementInstanceImpl, FlowImplImpl, FlowPathImplImpl, FlowPathSpecImpl, FlowSequenceImpl, FlowSinkImplImpl, FlowSinkSpecImpl, FlowSourceImplImpl, FlowSourceSpecImpl, FlowSpecImpl, FlowSpecInstanceImpl, InstanceObjectImpl, MemoryClassifierImpl, MemoryImplImpl, MemorySubcomponentImpl, MemoryTypeImpl, ModeImpl, ModeInstanceImpl, ModeMemberImpl, ModeTransitionConnectionInstanceImpl, ModeTransitionInstanceImpl, ParameterConnectionImpl, ParameterEndImpl, ParameterImpl, PortConnectionInstanceImpl, PortGroupConnectionImpl, PortGroupImpl, PortGroupTypeImpl, PortImpl, ProcessClassifierImpl, ProcessImplImpl, ProcessorClassifierImpl, ProcessorImplImpl, ProcessorSubcomponentImpl, ProcessorTypeImpl, ProcessSubcomponentImpl, ProcessTypeImpl, PropertyAssociationImpl, PropertyHolderImpl, ServerSubprogramImpl, SubcomponentImpl, SubprogramClassifierImpl, SubprogramImpl, SubprogramImplImpl, SubprogramSubcomponentImpl, SubprogramTypeImpl, SystemClassifierImpl, SystemImplImpl, SystemInstanceImpl, SystemOperationModeImpl, SystemSubcomponentImpl, SystemTypeImpl, ThreadClassifierImpl, ThreadGroupClassifierImpl, ThreadGroupImplImpl, ThreadGroupSubcomponentImpl, ThreadGroupTypeImpl, ThreadImplImpl, ThreadSubcomponentImpl, ThreadTypeImpl

public interface PropertyHolder
extends NamedElement

A representation of the model object 'Property Holder'.

The following features are supported:

See Also:
CorePackage.getPropertyHolder()

Field Summary
static java.lang.String copyright
           
 
Method Summary
 boolean acceptsProperty(PropertyDefinition property)
          Query whether this object accepts values for the given property.
 void addProperty(PropertyAssociation pa)
          Adds property association to the Properties object of the PropertyHolder Creates Properties if non-existent.
 PropertyAssociation addPropertyValue(PropertyDefinition pd, PropertyValue pv)
          Add property association for given property definition with specified value.
 void checkPropertyAssociation(PropertyDefinition pd, java.util.Collection vals)
          Check that the proposed association is legal for this property holder.
 PropertyAssociation findPropertyAssociation(PropertyDefinition pd)
          find a locally delcared mode-less property asssociation for the given property definition in the properties list of the PropertyHolder.
 Properties getProperties()
          Returns the value of the 'Properties' containment reference
 org.eclipse.emf.common.util.EList getPropertyAssociation()
          returns list of property associations in properties clause
 ModalPropertyValue getPropertyValue(PropertyDefinition property)
          Get the property value for a particular model element and property.
 void getPropertyValueInternal(PropertyDefinition property, ModalPropertyValueAccumulator pva, boolean fromInstanceSlaveCall)
          Helper routine for computing the value of the property.
 java.util.List getPropertyValueList(PropertyDefinition property)
          Retrieves a non-modal property value as a list.
 PropertyValue getSimplePropertyValue(PropertyDefinition property)
          Retrieves the property value of a non-modal, single-valued property.
 boolean isModalPropertyValue(PropertyDefinition property)
          Checks whether the property value is modal.
 void removeContainedPropertyAssociations(PropertyDefinition pd, java.util.List appliesToPath)
          Remove all the contained property associations for the given property definition for given contained component.
 void removeContainedPropertyAssociations(PropertyDefinition pd, java.util.List appliesToPath, java.util.List modes)
          Modify the modal contained property associations for the given contained component so that there are no associations for the given property for the given modes.
 void removePropertyAssociations(PropertyDefinition pd)
          Remove all the local property associations for the given property definition.
 void removePropertyAssociations(PropertyDefinition pd, java.util.List modes)
          Modify the modal property associations so that there are no local associations for the given property for the given modes.
 PropertyAssociation setContainedPropertyValue(PropertyDefinition pd, java.util.List appliesToPath, java.util.List pvl)
          Set the contained property association for given property definition with specified value list.
 PropertyAssociation setContainedPropertyValue(PropertyDefinition pd, java.util.List appliesToPath, java.util.List pvl, java.util.List modes)
          Set the contained property association for given property definition to the specified value list in the given modes.
 PropertyAssociation setContainedPropertyValue(PropertyDefinition pd, java.util.List appliesToPath, PropertyValue pv)
          Set the contained property association for given property definition with specified value.
 PropertyAssociation setContainedPropertyValue(PropertyDefinition pd, java.util.List appliesToPath, PropertyValue pv, java.util.List modes)
          Set contained property association for given property definition with specified value in the given modes.
 void setProperties(Properties value)
          Sets the value of the 'Properties' containment reference
 PropertyAssociation setPropertyValue(PropertyDefinition pd, java.util.List pvl)
          Set property association for given property definition with specified value list.
 PropertyAssociation setPropertyValue(PropertyDefinition pd, java.util.List pvl, java.util.List modes)
          Set property association for given property definition to the specified value list in the given modes.
 PropertyAssociation setPropertyValue(PropertyDefinition pd, PropertyValue pv)
          Set property association for given property definition with specified value.
 PropertyAssociation setPropertyValue(PropertyDefinition pd, PropertyValue pv, java.util.List modes)
          Set property association for given property definition with specified value in the given modes.
 
Methods inherited from interface edu.cmu.sei.aadl.model.core.NamedElement
getName, setName
 
Methods inherited from interface edu.cmu.sei.aadl.model.core.AObject
addComment, getAadlSpec, getAObjectRoot, getChildren, getComment, getContainingClassifier, getContainingClassifierNameSpace, getContainingComponentImpl, getContainingComponentType, getContainingPropertyAssociationDefinitionConstant, getContainingSubcomponent, getLocationReference, getReferencedObject, getSecondReferencedObject, getSystemInstance, setLocationReference, setLocationReference
 
Methods inherited from interface org.eclipse.emf.ecore.EObject
eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eIsProxy, eIsSet, eResource, eSet, eUnset
 
Methods inherited from interface org.eclipse.emf.common.notify.Notifier
eAdapters, eDeliver, eNotify, eSetDeliver
 
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
 

Field Detail

copyright

static final java.lang.String copyright

See Also:
Constant Field Values
Method Detail

getProperties

Properties getProperties()
Returns the value of the 'Properties' containment reference.

If the meaning of the 'Properties' containment reference isn't clear, there really should be more of a description here...

Returns:
the value of the 'Properties' containment reference.
See Also:
setProperties(Properties), CorePackage.getPropertyHolder_Properties()

setProperties

void setProperties(Properties value)
Sets the value of the 'Properties' containment reference.

Parameters:
value - the new value of the 'Properties' containment reference.
See Also:
getProperties()

getPropertyAssociation

org.eclipse.emf.common.util.EList getPropertyAssociation()
returns list of property associations in properties clause

Returns:
Elist of property association or empty list if no such subclause

removePropertyAssociations

void removePropertyAssociations(PropertyDefinition pd)
Remove all the local property associations for the given property definition. Only the property associations directly contained in the PropertyHolder are affected, that is, any contained property assocations declared in this component, but applicable to another component are not searched.

Parameters:
pd - The property definition

removePropertyAssociations

void removePropertyAssociations(PropertyDefinition pd,
                                java.util.List modes)
Modify the modal property associations so that there are no local associations for the given property for the given modes. Does not affect the property's non-modal association. This method may both remove associations (if all the association's modes are in the given list) and modify associations (if some of the association's modes are in the given list). Only the property associations directly contained in the PropertyHolder are affected, that is, any contained property assocations declared in this component, but applicable to another component are not searched.

Parameters:
pd - The property definition
modes - list of modes

removeContainedPropertyAssociations

void removeContainedPropertyAssociations(PropertyDefinition pd,
                                         java.util.List appliesToPath)
Remove all the contained property associations for the given property definition for given contained component.

Parameters:
pd - The property definition
appliesToPath - list of declarative components that define the path to the component to which the property applies. This list must have a length > 1, which is checked. It is not checked that this path is a valid path to a component/feature/mode/etc. rooted at pd.
Throws:
java.lang.IllegalArgumentException - Thrown if appliesToPath is empty.

removeContainedPropertyAssociations

void removeContainedPropertyAssociations(PropertyDefinition pd,
                                         java.util.List appliesToPath,
                                         java.util.List modes)
Modify the modal contained property associations for the given contained component so that there are no associations for the given property for the given modes. Does not affect the property's contained non-modal association. This method may both remove associations (if all the association's modes are in the given list) and modify associations (if some of the association's modes are in the given list).

Parameters:
pd - The property definition
appliesToPath - list of declarative components that define the path to the component to which the property applies. This list must have a length > 1, which is checked. It is not checked that this path is a valid path to a component/feature/mode/etc. rooted at pd.
modes - list of modes
Throws:
java.lang.IllegalArgumentException - Thrown if appliesToPath is empty.

findPropertyAssociation

PropertyAssociation findPropertyAssociation(PropertyDefinition pd)
find a locally delcared mode-less property asssociation for the given property definition in the properties list of the PropertyHolder. Only the property associations directly contained in the PropertyHolder are searched, that is, any contained property assocations declared in this component, but applicable to another component are not searched.

Parameters:
pd - PropertyDefinition
Returns:
PropertyAssociation or null

addPropertyValue

PropertyAssociation addPropertyValue(PropertyDefinition pd,
                                     PropertyValue pv)
Add property association for given property definition with specified value. If the property is LIST OF the value is added to any existing list, otherwise the existing value is replaced. The property association is assumed to apply to all modes. If it should apply to specific modes, this can be set on the returned property association object. The method assumes that the property defintion is legal for the PropertyHolder class. The method assumes that the property value is legal for the property definition.

Parameters:
pd - property definition object
pv - property value object
Returns:
PropertyAssociation to which the value has been added (and that has been created as necessary)

setPropertyValue

PropertyAssociation setPropertyValue(PropertyDefinition pd,
                                     PropertyValue pv)
Set property association for given property definition with specified value. The existing value(s) is(are) replaced. The property association is assumed to apply to all modes; all previous property assocations for this property are removed from the property holder. The PropertyAssociation.isDerived()status of the association is set to false.

When invoked on an instance model object (i.e., a subtype of InstanceObject), the property association is made to apply only to current system operation mode as determined from the containing system instance's SystemInstance.getCurrentSystemOperationMode() method.

Parameters:
pd - property definition object
pv - property value object
Returns:
PropertyAssociation that has been set
Throws:
java.lang.IllegalArgumentException - Thrown if the property value cannot be set. This could be because the given property doesn't apply to this property holder, the property value isn't list-valued and the given list does not have exactly 1 element, or because of type mismatch issues.

setPropertyValue

PropertyAssociation setPropertyValue(PropertyDefinition pd,
                                     PropertyValue pv,
                                     java.util.List modes)
Set property association for given property definition with specified value in the given modes. The existing value(s) for the modes is (are) replaced. The PropertyAssociation.isDerived()status of the association is set to false.

Unlike setPropertyValue(PropertyDefinition, PropertyValue), this method is not affected by the current system operation mode.

Parameters:
pd - property definition object
pv - property value object
modes - List of modes.
Returns:
PropertyAssociation that has been set
Throws:
java.lang.IllegalArgumentException - Thrown if the property value cannot be set. This could be because the given property doesn't apply to this property holder, the property value isn't list-valued and the given list does not have exactly 1 element, or because of type mismatch issues.

setPropertyValue

PropertyAssociation setPropertyValue(PropertyDefinition pd,
                                     java.util.List pvl)
Set property association for given property definition with specified value list. The property association is assumed to apply to all modes; all previous property assocations for this property are removed from the property holder. The PropertyAssociation.isDerived()status of the association is set to false.

When the property is not list-valued, i.e., pd.isList() is false, the provided list of values must be of length 1, i.e., pvl.size() == 1.

When invoked on an instance model object (i.e., a subtype of InstanceObject), the property association is made to apply only to current system operation mode as determined from the containing system instance's SystemInstance.getCurrentSystemOperationMode() method.

Parameters:
pd - property definition object
pvl - List of property value objects.
Returns:
PropertyAssociation that has been set
Throws:
java.lang.IllegalArgumentException - Thrown if the property value cannot be set. This could be because the given property doesn't apply to this property holder, the property value isn't list-valued and the given list does not have exactly 1 element, or because of type mismatch issues.

setPropertyValue

PropertyAssociation setPropertyValue(PropertyDefinition pd,
                                     java.util.List pvl,
                                     java.util.List modes)
Set property association for given property definition to the specified value list in the given modes. The existing value list is replaced for the given modes. The PropertyAssociation.isDerived()status of the association is set to false.

When the property is not list-valued, i.e., pd.isList() is false, the provided list of values must be of length 1, i.e., pvl.size() == 1.

Unlike setPropertyValue(PropertyDefinition, List), this method is not affected by the current system operation mode.

Parameters:
pd - property definition object
pvl - List of property value objects
modes - list of modes.
Returns:
PropertyAssociation that has been set
Throws:
java.lang.IllegalArgumentException - Thrown if the property value cannot be set. This could be because the given property doesn't apply to this property holder, the property value isn't list-valued and the given list does not have exactly 1 element, or because of type mismatch issues.

setContainedPropertyValue

PropertyAssociation setContainedPropertyValue(PropertyDefinition pd,
                                              java.util.List appliesToPath,
                                              PropertyValue pv)
Set the contained property association for given property definition with specified value. The existing value(s) is(are) replaced. The property association is assumed to apply to all modes; all previous property assocations for this property are removed from the property holder. The PropertyAssociation.isDerived() status of the association is set to false.

Parameters:
pd - property definition object
appliesToPath - list of declarative components that define the path to the component to which the property applies. This list must have a length > 1, which is checked. It is not checked that this path is a valid path to a component/feature/mode/etc. rooted at pd.
pv - property value object
Returns:
PropertyAssociation that has been set
Throws:
java.lang.IllegalArgumentException - Thrown if the property value cannot be set. This could be because the given property doesn't apply to the component identified by appliesToPath, the property value isn't list-valued and the given list does not have exactly 1 element, or because of type mismatch issues. Also thrown if appliesToPath is empty.

setContainedPropertyValue

PropertyAssociation setContainedPropertyValue(PropertyDefinition pd,
                                              java.util.List appliesToPath,
                                              PropertyValue pv,
                                              java.util.List modes)
Set contained property association for given property definition with specified value in the given modes. The existing value(s) for the modes is (are) replaced. The PropertyAssociation.isDerived() status of the association is set to false.

Parameters:
pd - property definition object
appliesToPath - list of declarative components that define the path to the component to which the property applies. This list must have a length > 1, which is checked. It is not checked that this path is a valid path to a component/feature/mode/etc. rooted at pd.
pv - property value object
modes - List of modes.
Returns:
PropertyAssociation that has been set
Throws:
java.lang.IllegalArgumentException - Thrown if the property value cannot be set. This could be because the given property doesn't apply to the component identified by appliesToPath, the property value isn't list-valued and the given list does not have exactly 1 element, or because of type mismatch issues. Also thrown if appliesToPath is empty.

setContainedPropertyValue

PropertyAssociation setContainedPropertyValue(PropertyDefinition pd,
                                              java.util.List appliesToPath,
                                              java.util.List pvl)
Set the contained property association for given property definition with specified value list. The property association is assumed to apply to all modes; all previous property assocations for this property are removed from the property holder. The PropertyAssociation.isDerived() status of the association is set to false.

Parameters:
pd - property definition object
appliesToPath - list of declarative components that define the path to the component to which the property applies. This list must have a length > 1, which is checked. It is not checked that this path is a valid path to a component/feature/mode/etc. rooted at pd.
pvl - List of property value objects
Returns:
PropertyAssociation that has been set
Throws:
java.lang.IllegalArgumentException - Thrown if the property value cannot be set. This could be because the given property doesn't apply to the component identified by appliesToPath, the property value isn't list-valued and the given list does not have exactly 1 element, or because of type mismatch issues. Also thrown if appliesToPath is empty.

setContainedPropertyValue

PropertyAssociation setContainedPropertyValue(PropertyDefinition pd,
                                              java.util.List appliesToPath,
                                              java.util.List pvl,
                                              java.util.List modes)
Set the contained property association for given property definition to the specified value list in the given modes. The existing value list is replaced for the given modes. The PropertyAssociation.isDerived()status of the association is set to false.

Parameters:
pd - property definition object
appliesToPath - list of declarative components that define the path to the component to which the property applies. This list must have a length > 1, which is checked. It is not checked that this path is a valid path to a component/feature/mode/etc. rooted at pd.
pvl - List of property value objects
modes - list of modes.
Returns:
PropertyAssociation that has been set
Throws:
java.lang.IllegalArgumentException - Thrown if the property value cannot be set. This could be because the given property doesn't apply to the component identified by appliesToPath, the property value isn't list-valued and the given list does not have exactly 1 element, or because of type mismatch issues. Also thrown if appliesToPath is empty.

addProperty

void addProperty(PropertyAssociation pa)
Adds property association to the Properties object of the PropertyHolder Creates Properties if non-existent. It is assumed that the property applies to the PropertyHolder object It is assumed that the property association does not already exist

Parameters:
pa - PropertyAssociation to be added

acceptsProperty

boolean acceptsProperty(PropertyDefinition property)
Query whether this object accepts values for the given property. That is, does the given property apply to this element?

Parameters:
property - The property definition to test.
Returns:
true if the given property applies to this element.

checkPropertyAssociation

void checkPropertyAssociation(PropertyDefinition pd,
                              java.util.Collection vals)
Check that the proposed association is legal for this property holder. If the association is legal, then the method returns normally, otherwise it throws an IllegalArgumentException describing the problem.

Throws:
java.lang.IllegalArgumentException - (see description)

getPropertyValueInternal

void getPropertyValueInternal(PropertyDefinition property,
                              ModalPropertyValueAccumulator pva,
                              boolean fromInstanceSlaveCall)
                              throws InvalidModelException
Helper routine for computing the value of the property. As the name suggests, this method is not intended for use by clients of the model, but is used during the property lookup process. It should really be a protected method in PropertyHolderImpl, but because of the way that EMF deals with multiple inheritance, not all implementations of PropertyHolder actually extend from PropertyHolderImpl.

In particular, this method does not create a new property value accumulator—it uses the one provided—and it does not look up the default value of the property.

Parameters:
property - The property whose value is to be retreived. It must be the case that this property is accepted by the property holder, i.e., acceptsProperty(PropertyDefinition) must return true.
pva - The working property value accumulator to add results to.
fromInstanceSlaveCall - true if the call is performing a lookup on the declarative model on behalf of an instance model object. When true the lookup algorithm ignores the "inherits" attribute on property definitions when it would mean that the lookup should defer to the containing component implemenation. Also disables the interpretation of contained property associations in the declarative model because they have already been applied to the instance model at this point. The expectation is that the instance model lookup itself is not ignoring the inherits attribute, and thus any inherited property values will still be found correctly. Interpreting the inherits attribute during the declarative model search is redundant and causes problems later on. This flag does not affect lookup for feature declarations because in that case the inherit flag defers to the component type or port group type.
Throws:
InvalidModelException - Thrown if the property value cannot be retreived because the model is incomplete or otherwise invalid.

getPropertyValue

ModalPropertyValue getPropertyValue(PropertyDefinition property)
                                    throws java.lang.IllegalStateException,
                                           InvalidModelException,
                                           PropertyDoesNotApplyToHolderException,
                                           java.lang.IllegalArgumentException
Get the property value for a particular model element and property. The propery value is computed based on the rules in the AADL spec. The returned value is a structure that further refines the property value based on modes.

Parameters:
property - The property whose value is to be retreived.
Returns:
The property value. This will never be null.
Throws:
java.lang.IllegalStateException - Thrown if the lookup encounters a cycle of property reference dependencies.
InvalidModelException - Thrown if the property value cannot be retreived because the model is incomplete or otherwise invalid.
PropertyDoesNotApplyToHolderException - Thrown if the given property does not apply to the property holder, i.e., acceptsProperty(PropertyDefinition) returns false.
java.lang.IllegalArgumentException - Thrown if property is null.

getSimplePropertyValue

PropertyValue getSimplePropertyValue(PropertyDefinition property)
                                     throws InvalidModelException,
                                            PropertyNotPresentException,
                                            PropertyIsModalException,
                                            java.lang.IllegalStateException,
                                            java.lang.IllegalArgumentException,
                                            PropertyDoesNotApplyToHolderException,
                                            PropertyIsListException
Retrieves the property value of a non-modal, single-valued property. Use this method if you know the property can only have a single value and is not modal. This method may also be safely used to look up a modal property value on an instance object when the current system operation mode is non-null; in this case the returned value is that value associated with the current system operation mode.

Parameters:
property - PropertyDefinition
Returns:
The PropertyValue. This will never be null.
Throws:
InvalidModelException - Thrown if the property value cannot be retreived because the model is incomplete or otherwise invalid.
PropertyNotPresentException - Thrown if the property is undefined for this PropertyHolder.
PropertyIsModalException - Thrown if this PropertyHolder is modal and declarative.
java.lang.IllegalStateException - Thrown if the lookup encounters a cycle of property reference dependencies.
java.lang.IllegalArgumentException - Thrown if property is null.
PropertyDoesNotApplyToHolderException - Thrown if the PropertyDefinition property does not apply to this PropertyHolder.
PropertyIsListException - Thrown if the property is not scalar.
See Also:
SystemInstance.setSystemOperationMode(edu.cmu.sei.aadl.model.instance.SystemOperationMode)

getPropertyValueList

java.util.List getPropertyValueList(PropertyDefinition property)
                                    throws InvalidModelException,
                                           java.lang.IllegalArgumentException,
                                           PropertyNotPresentException,
                                           PropertyIsModalException,
                                           java.lang.IllegalStateException,
                                           PropertyDoesNotApplyToHolderException
Retrieves a non-modal property value as a list. Use this mehtod if you know that the property is defined as a LIST OF. While this method can be used on scalar properties, getSimplePropertyValue should be used if you know that the property is scalar. If the property is scalar, a list of length 1 is returned. This method may also be safely used to look up a modal property value on an instance object when the current system operation mode is non-null; in this case the returned value is that value associated with the current system operation mode.

Parameters:
property - PropertyDefinition
Returns:
A list of PropertyValue objects. This does not return null.
Throws:
InvalidModelException - Thrown if the property value cannot be retreived because the model is incomplete or otherwise invalid.
java.lang.IllegalArgumentException - Thrown if property is null.
PropertyNotPresentException - Thrown if the PropertyDefinition property is undefined for this PropertyHolder.
PropertyIsModalException - Thrown if this PropertyHolder is modal and declarative.
java.lang.IllegalStateException - Thrown if the lookup encounters a cycle of property reference dependencies.
PropertyDoesNotApplyToHolderException - Thrown if the PropertyDefinition property does not apply to this PropertyHolder.
See Also:
SystemInstance.setSystemOperationMode(edu.cmu.sei.aadl.model.instance.SystemOperationMode)

isModalPropertyValue

boolean isModalPropertyValue(PropertyDefinition property)
                             throws InvalidModelException
Checks whether the property value is modal.

Parameters:
property - PropertyDefinition
Returns:
true if the value is modal, otherwise false. Also returns false if the property does not apply to this property holder.
Throws:
InvalidModelException - Thrown if the property value cannot be retreived because the model is incomplete or otherwise invalid.