![]() ![]() |
||||
|
||||
The Properties class can contain zero or more
instances of the PropertyAssociation class (see
Figure 29). The PropertyAssociation class is a concrete class. The PropertyAssociation
class is
not subclassed to reflect the type of the property value. Instead it contains zero or more instances
of concrete subclasses of the PropertyValue class. The multiplicy allows lists of property values
to
be represented. A PropertyAssociation class also has a reference association to the concrete
PropertyDefinition class. In other words, multiple property associations of the same property
point
to the same property name declaration (property definition). A PropertyDefinition class
has a
propertyTypeReference reference association to a separately declared named property type or a
propertyType containment association to concrete subclasses of the abstract PropertyType
class
representing an unnamed property type declared as part of the property definition.
The PropertyAssociation class is not subclassed to reflect
different property types, the reason
being that user-defined property types can be introduced through property sets (see Annex C.4.16).
This means that matching of the PropertyValue type with the type specified for the property
definition is not enforced by the XML schema or the XMI meta model; it needs to be checked by
the semantic checker instead.
The PropertyAssociation class has an appliesTo
reference association of zero or more to the
PropertyHolder class to reflect the sequence of concrete PropertyHolder subclasses.
This
sequence represents the path to a contained model element to which the property association
applies. The PropertyAssociation class has an inBinding reference association
of zero or more to
the ComponentClassifier class to reflect the set of concrete execution platform
ComponentClassifier subclasses for the inbinding statement of the property association.
The PropertyAssociation class is a subclass of ModeMember.
This means that it also has a
multiplicity reference association named inModes to the Mode class. This means that
a separate
PropertyAssociation object is created for different property association declarations of the
same
property with values for different modes. For example,
Latency => 10 ms in modes (normal);
Latency => 8 ms in modes (highspeed);
translates into two PropertyAssociation objects,
each with a property
value object.
PropertyAssociation has the constraint that although
it is a ModeMember and as such a subclass
of PropertyHolder, it cannot contain property association declarations. This reflects the
fact that
properties cannot have properties themselves.
The access, append, and constant
attributes of the PropertyAssociation class reflect whether the
property association is declared as an access property association, whether to append the
value(s), and whether the property association should not be further overwritten. The derived
attribute is used to indicate whether a property association attached to an instance object has
been derived (cached) from a property association in the declarative model (for more on instance
object see Annex C.5). A property association that is marked as not derived is only associated
with the instance model. Such an instance model specific property association is used if the result
of an analysis applies only to the instance model.
![]() Figure 29 Property Associations |
||||