edu.cmu.sei.aadl.aadl2
Interface NamedElement

All Superinterfaces:
AObject, Element, org.eclipse.emf.ecore.EObject, org.eclipse.core.runtime.IAdaptable, org.eclipse.emf.common.notify.Notifier
All Known Subinterfaces:
AadlBoolean, AadlInteger, AadlPackage, AadlReal, AadlString, Abstract, AbstractClassifier, AbstractFeature, AbstractImplementation, AbstractSubcomponent, AbstractType, Access, AccessConnection, AccessConnectionEnd, AnnexLibrary, AnnexSubclause, BasicProperty, BehavioralFeature, BehavioredImplementation, Bus, BusAccess, BusClassifier, BusImplementation, BusSubcomponent, BusType, CallSpecification, Classifier, ClassifierFeature, ClassifierType, ComponentClassifier, ComponentImplementation, ComponentInstance, ComponentPrototype, ComponentType, ComponentTypeRename, Connection, ConnectionEnd, ConnectionInstance, ConnectionInstanceEnd, ConnectionReference, Context, Data, DataAccess, DataClassifier, DataImplementation, DataPort, DataSubcomponent, DataType, DefaultAnnexLibrary, DefaultAnnexSubclause, Device, DeviceClassifier, DeviceImplementation, DeviceSubcomponent, DeviceType, DirectedFeature, EndToEndFlow, EndToEndFlowElement, EndToEndFlowInstance, EnumerationLiteral, EnumerationType, EventDataPort, EventPort, Feature, FeatureConnection, FeatureConnectionEnd, FeatureGroup, FeatureGroupConnection, FeatureGroupConnectionEnd, FeatureGroupPrototype, FeatureGroupType, FeatureGroupTypeRename, FeatureInstance, FeaturePrototype, Flow, FlowElement, FlowElementInstance, FlowImplementation, FlowSpecification, FlowSpecificationInstance, GlobalNamespace, InstanceObject, InternalEvent, Memory, MemoryClassifier, MemoryImplementation, MemorySubcomponent, MemoryType, ModalElement, ModalPath, ModalPropertyValue, Mode, ModeFeature, ModeInstance, ModeTransition, ModeTransitionInstance, Namespace, NumberType, PackageRename, PackageSection, Parameter, ParameterConnection, ParameterConnectionEnd, Port, PortConnection, PortConnectionEnd, PrivatePackageSection, Process, ProcessClassifier, ProcessImplementation, Processor, ProcessorCall, ProcessorClassifier, ProcessorImplementation, ProcessorPort, ProcessorSubcomponent, ProcessorSubprogram, ProcessorType, ProcessSubcomponent, ProcessType, Property, PropertyConstant, PropertySet, PropertyType, Prototype, PublicPackageSection, RangeType, RecordField, RecordType, ReferenceType, RefinableElement, StructuralFeature, Subcomponent, SubcomponentFlow, Subprogram, SubprogramAccess, SubprogramCall, SubprogramCallSequence, SubprogramClassifier, SubprogramGroup, SubprogramGroupAccess, SubprogramGroupClassifier, SubprogramGroupImplementation, SubprogramGroupSubcomponent, SubprogramGroupType, SubprogramImplementation, SubprogramSubcomponent, SubprogramType, System, SystemClassifier, SystemImplementation, SystemInstance, SystemOperationMode, SystemSubcomponent, SystemType, Thread, ThreadClassifier, ThreadGroup, ThreadGroupClassifier, ThreadGroupImplementation, ThreadGroupSubcomponent, ThreadGroupType, ThreadImplementation, ThreadSubcomponent, ThreadType, Type, TypedElement, UnitLiteral, UnitsType, VirtualBus, VirtualBusClassifier, VirtualBusImplementation, VirtualBusSubcomponent, VirtualBusType, VirtualProcessor, VirtualProcessorClassifier, VirtualProcessorImplementation, VirtualProcessorSubcomponent, VirtualProcessorType
All Known Implementing Classes:
AadlBooleanImpl, AadlIntegerImpl, AadlPackageImpl, AadlRealImpl, AadlStringImpl, AbstractClassifierImpl, AbstractFeatureImpl, AbstractImpl, AbstractImplementationImpl, AbstractSubcomponentImpl, AbstractTypeImpl, AccessConnectionEndImpl, AccessConnectionImpl, AccessImpl, AnnexLibraryImpl, AnnexSubclauseImpl, BasicPropertyImpl, BehavioralFeatureImpl, BehavioredImplementationImpl, BusAccessImpl, BusClassifierImpl, BusImpl, BusImplementationImpl, BusSubcomponentImpl, BusTypeImpl, CallSpecificationImpl, ClassifierFeatureImpl, ClassifierImpl, ClassifierTypeImpl, ComponentClassifierImpl, ComponentImplementationImpl, ComponentInstanceImpl, ComponentPrototypeImpl, ComponentTypeImpl, ComponentTypeRenameImpl, ConnectionEndImpl, ConnectionImpl, ConnectionInstanceEndImpl, ConnectionInstanceImpl, ConnectionReferenceImpl, ContextImpl, DataAccessImpl, DataClassifierImpl, DataImpl, DataImplementationImpl, DataPortImpl, DataSubcomponentImpl, DataTypeImpl, DefaultAnnexLibraryImpl, DefaultAnnexSubclauseImpl, DeviceClassifierImpl, DeviceImpl, DeviceImplementationImpl, DeviceSubcomponentImpl, DeviceTypeImpl, DirectedFeatureImpl, EndToEndFlowElementImpl, EndToEndFlowImpl, EndToEndFlowInstanceImpl, EnumerationLiteralImpl, EnumerationTypeImpl, EventDataPortImpl, EventPortImpl, FeatureConnectionEndImpl, FeatureConnectionImpl, FeatureGroupConnectionEndImpl, FeatureGroupConnectionImpl, FeatureGroupImpl, FeatureGroupPrototypeImpl, FeatureGroupTypeImpl, FeatureGroupTypeRenameImpl, FeatureImpl, FeatureInstanceImpl, FeaturePrototypeImpl, FlowElementImpl, FlowElementInstanceImpl, FlowImpl, FlowImplementationImpl, FlowSpecificationImpl, FlowSpecificationInstanceImpl, GlobalNamespaceImpl, InstanceObjectImpl, InternalEventImpl, MemoryClassifierImpl, MemoryImpl, MemoryImplementationImpl, MemorySubcomponentImpl, MemoryTypeImpl, ModalElementImpl, ModalPathImpl, ModalPropertyValueImpl, ModeFeatureImpl, ModeImpl, ModeInstanceImpl, ModeTransitionImpl, ModeTransitionInstanceImpl, NamedElementImpl, NamespaceImpl, NumberTypeImpl, PackageRenameImpl, PackageSectionImpl, ParameterConnectionEndImpl, ParameterConnectionImpl, ParameterImpl, PortConnectionEndImpl, PortConnectionImpl, PortImpl, PrivatePackageSectionImpl, ProcessClassifierImpl, ProcessImpl, ProcessImplementationImpl, ProcessorCallImpl, ProcessorClassifierImpl, ProcessorImpl, ProcessorImplementationImpl, ProcessorPortImpl, ProcessorSubcomponentImpl, ProcessorSubprogramImpl, ProcessorTypeImpl, ProcessSubcomponentImpl, ProcessTypeImpl, PropertyConstantImpl, PropertyImpl, PropertySetImpl, PropertyTypeImpl, PrototypeImpl, PublicPackageSectionImpl, RangeTypeImpl, RecordFieldImpl, RecordTypeImpl, ReferenceTypeImpl, RefinableElementImpl, StructuralFeatureImpl, SubcomponentFlowImpl, SubcomponentImpl, SubprogramAccessImpl, SubprogramCallImpl, SubprogramCallSequenceImpl, SubprogramClassifierImpl, SubprogramGroupAccessImpl, SubprogramGroupClassifierImpl, SubprogramGroupImpl, SubprogramGroupImplementationImpl, SubprogramGroupSubcomponentImpl, SubprogramGroupTypeImpl, SubprogramImpl, SubprogramImplementationImpl, SubprogramSubcomponentImpl, SubprogramTypeImpl, SystemClassifierImpl, SystemImpl, SystemImplementationImpl, SystemInstanceImpl, SystemOperationModeImpl, SystemSubcomponentImpl, SystemTypeImpl, ThreadClassifierImpl, ThreadGroupClassifierImpl, ThreadGroupImpl, ThreadGroupImplementationImpl, ThreadGroupSubcomponentImpl, ThreadGroupTypeImpl, ThreadImpl, ThreadImplementationImpl, ThreadSubcomponentImpl, ThreadTypeImpl, TypedElementImpl, TypeImpl, UnitLiteralImpl, UnitsTypeImpl, VirtualBusClassifierImpl, VirtualBusImpl, VirtualBusImplementationImpl, VirtualBusSubcomponentImpl, VirtualBusTypeImpl, VirtualProcessorClassifierImpl, VirtualProcessorImpl, VirtualProcessorImplementationImpl, VirtualProcessorSubcomponentImpl, VirtualProcessorTypeImpl

public interface NamedElement
extends Element

A representation of the model object ' Named Element'. A named element is an element in a model that may have a name.

The following features are supported:

See Also:
Aadl2Package.getNamedElement()

Field Summary
 
Fields inherited from interface edu.cmu.sei.aadl.aadl2.parsesupport.AObject
copyright
 
Method Summary
 boolean acceptsProperty(Property property)
          Query whether this object accepts values for the given property.
 org.eclipse.emf.common.util.EList<Namespace> allNamespaces()
          The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards. if self.namespace->isEmpty() then Sequence{} else self.namespace.allNamespaces()->prepend(self.namespace) endif
 void checkPropertyAssociation(Property pd, java.util.Collection<? extends PropertyExpression> vals)
          Check that the proposed association is legal for this property holder.
 PropertyAssociation createOwnedPropertyAssociation()
          Creates a new PropertyAssociation and appends it to the 'Owned Property Association' containment reference list
 java.lang.String getName()
          Returns the value of the 'Name' attribute.
 Namespace getNamespace()
          Returns the value of the 'Namespace' container reference.
 org.eclipse.emf.common.util.EList<PropertyAssociation> getOwnedPropertyAssociations()
          Returns the value of the 'Owned Property Association' containment reference list.
 PropertyAcc getPropertyValue(Property property)
          Get the property value for a particular model element and property.
 void getPropertyValueInternal(Property property, PropertyAcc pas, boolean fromInstanceSlaveCall)
          Helper routine for computing the value of the property.
 java.util.List<? extends PropertyExpression> getPropertyValueList(Property property)
           
 java.lang.String getQualifiedName()
          Returns the value of the 'Qualified Name' attribute.
 PropertyExpression getSimplePropertyValue(Property property)
          Retrieves the property value of a non-modal, single-valued property.
 boolean has_no_qualified_name(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)
          If there is no name, or one of the containing namespaces has no name, there is no qualified name.
 boolean has_qualified_name(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)
          When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.
 boolean hasName()
          Returns true if this NamedElement has a name.
 boolean isDistinguishableFrom(NamedElement n, Namespace ns)
          The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace.
 java.lang.String qualifiedName()
          When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty() then self.allNamespaces()->iterate(ns: Namespace; result: String = self.name | ns.name.concat(self.separator()).concat(result)) else '' endif
 void removePropertyAssociations(Property pd)
          Remove all the local property associations for the given property definition.
 void removePropertyAssociations(Property pd, java.util.List<? extends Mode> modes)
          Modify the modal property associations so that there are no local associations for the given property for the given modes.
 java.lang.String separator()
          The query separator() gives the string that is used to separate names when constructing a qualified name. '.'
 void setName(java.lang.String value)
          Sets the value of the 'Name' attribute
 PropertyAssociation setPropertyValue(Property pd, java.util.List<? extends PropertyExpression> pvl)
          Set property association for given property definition with specified value list.
 PropertyAssociation setPropertyValue(Property pd, java.util.List<? extends PropertyExpression> pvl, java.util.List<? extends Mode> modes)
          Set property association for given property definition to the specified value list in the given modes.
 PropertyAssociation setPropertyValue(Property pd, PropertyValue pv)
           
 
Methods inherited from interface edu.cmu.sei.aadl.aadl2.Element
allOwnedElements, createOwnedComment, getChildren, getContainingClassifier, getContainingComponentImpl, getElementRoot, getOwnedComments, getOwnedElements, getOwner, has_owner, mustBeOwned, not_own_self
 
Methods inherited from interface edu.cmu.sei.aadl.aadl2.parsesupport.AObject
getLocationReference, 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
 

Method Detail

getName

java.lang.String getName()
Returns the value of the 'Name' attribute. The name of the NamedElement.

Returns:
the value of the 'Name' attribute.
See Also:
setName(String), Aadl2Package.getNamedElement_Name()

setName

void setName(java.lang.String value)
Sets the value of the 'Name' attribute.

Parameters:
value - the new value of the 'Name' attribute.
See Also:
getName()

getQualifiedName

java.lang.String getQualifiedName()
Returns the value of the 'Qualified Name' attribute. A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself.

Returns:
the value of the 'Qualified Name' attribute.
See Also:
Aadl2Package.getNamedElement_QualifiedName()

getNamespace

Namespace getNamespace()
Returns the value of the 'Namespace' container reference. It is bidirectional and its opposite is 'Owned Member'. Specifies the namespace that owns the NamedElement.

Returns:
the value of the 'Namespace' container reference.
See Also:
Aadl2Package.getNamedElement_Namespace(), Namespace.getOwnedMembers()

getOwnedPropertyAssociations

org.eclipse.emf.common.util.EList<PropertyAssociation> getOwnedPropertyAssociations()
Returns the value of the 'Owned Property Association' containment reference list. The list contents are of type PropertyAssociation.

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

Returns:
the value of the 'Owned Property Association' containment reference list.
See Also:
Aadl2Package.getNamedElement_OwnedPropertyAssociation()

createOwnedPropertyAssociation

PropertyAssociation createOwnedPropertyAssociation()
Creates a new PropertyAssociation and appends it to the 'Owned Property Association' containment reference list.

Returns:
The new PropertyAssociation.
See Also:
getOwnedPropertyAssociations()

has_no_qualified_name

boolean has_no_qualified_name(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                              java.util.Map<java.lang.Object,java.lang.Object> context)
If there is no name, or one of the containing namespaces has no name, there is no qualified name. (self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty()) implies self.qualifiedName->isEmpty()

Parameters:
diagnostics - The chain of diagnostics to which problems are to be appended.
context - The cache of context-specific information.

has_qualified_name

boolean has_qualified_name(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                           java.util.Map<java.lang.Object,java.lang.Object> context)
When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. (self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies self.qualifiedName = self.allNamespaces()->iterate(ns: Namespace; result: String = self.name | ns.name.concat(self.separator()).concat(result))

Parameters:
diagnostics - The chain of diagnostics to which problems are to be appended.
context - The cache of context-specific information.

allNamespaces

org.eclipse.emf.common.util.EList<Namespace> allNamespaces()
The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards. if self.namespace->isEmpty() then Sequence{} else self.namespace.allNamespaces()->prepend(self.namespace) endif


isDistinguishableFrom

boolean isDistinguishableFrom(NamedElement n,
                              Namespace ns)
The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names. if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType) then ns.getNamesOfMember(self)->intersection(ns .getNamesOfMember(n))->isEmpty() else true endif


separator

java.lang.String separator()
The query separator() gives the string that is used to separate names when constructing a qualified name. '.'


qualifiedName

java.lang.String qualifiedName()
When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty() then self.allNamespaces()->iterate(ns: Namespace; result: String = self.name | ns.name.concat(self.separator()).concat(result)) else '' endif


hasName

boolean hasName()
Returns true if this NamedElement has a name. This method will check for null and the empty string.

Returns:
true if object has a name; false otherwise.

getSimplePropertyValue

PropertyExpression getSimplePropertyValue(Property 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 - Property
Returns:
The PropertyValue. This will never be null.
Throws:
InvalidModelException - Thrown if the property value cannot be retrieved because the model is incomplete or otherwise invalid.
PropertyNotPresentException - Thrown if the property is undefined for this NamedElement.
PropertyIsModalException - Thrown if this NamedElement 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 Property property does not apply to this NamedElement.
PropertyIsListException - Thrown if the property is not scalar.
See Also:
SystemInstance.setCurrentSystemOperationMode(edu.cmu.sei.aadl.aadl2.instance.SystemOperationMode)

getPropertyValue

PropertyAcc getPropertyValue(Property property)
                             throws java.lang.IllegalStateException,
                                    InvalidModelException,
                                    PropertyDoesNotApplyToHolderException,
                                    java.lang.IllegalArgumentException
Get the property value for a particular model element and property. The property 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 retieved.
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 retrieved because the model is incomplete or otherwise invalid.
PropertyDoesNotApplyToHolderException - Thrown if the given property does not apply to the property holder, i.e., acceptsProperty(Property) returns false .
java.lang.IllegalArgumentException - Thrown if property is null.

acceptsProperty

boolean acceptsProperty(Property 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.

getPropertyValueInternal

void getPropertyValueInternal(Property property,
                              PropertyAcc pas,
                              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 NamedElementImpl, but because of the way that EMF deals with multiple inheritance, not all implementations of NamedElement actually extend from NamedElementImpl.

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 retrieved. It must be the case that this property is accepted by the property holder, i.e., acceptsProperty(Property) must return true.
paa - 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 implementation. 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 feature group type.
Throws:
InvalidModelException - Thrown if the property value cannot be retrieved because the model is incomplete or otherwise invalid.

setPropertyValue

PropertyAssociation setPropertyValue(Property pd,
                                     java.util.List<? extends PropertyExpression> 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 associations 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.

checkPropertyAssociation

void checkPropertyAssociation(Property pd,
                              java.util.Collection<? extends PropertyExpression> 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)

removePropertyAssociations

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

Parameters:
pd - The property definition

removePropertyAssociations

void removePropertyAssociations(Property pd,
                                java.util.List<? extends Mode> 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 NamedElement are affected, that is, any contained property associations declared in this component, but applicable to another component are not searched.

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

setPropertyValue

PropertyAssociation setPropertyValue(Property pd,
                                     java.util.List<? extends PropertyExpression> pvl,
                                     java.util.List<? extends Mode> 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(Property, 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.

getPropertyValueList

java.util.List<? extends PropertyExpression> getPropertyValueList(Property property)

setPropertyValue

PropertyAssociation setPropertyValue(Property pd,
                                     PropertyValue pv)