![]() ![]() |
||||
|
||||
The AADL supports introduction of user-defined properties,
property constants, and property types
through property sets.
The PropertySet class has multiplicity containment
associations to the PropertyType,
PropertyConstant, and PropertyDefinition classes. The abstract PropertyType
class represents
property type declarations. Instances of the concrete PropertyType subclasses, i.e., UnitsType,
Aadlreal and Aadlinteger and their common super class NumberType, RangeType, Aadlstring,
Aadlboolean, EnumType, ReferenceType, and ClassifierType, represent property
type declarations.
Their name attribute records the name of the newly declared property type. The abstract
PropertyValueHolder class represents all classes that can contain property values, i.e., property
definitions, property constants, and property associations.
![]() Figure 33 Property Sets, Types, Constants, and Definitions
The UnitsType class contains instances of the UnitLiteral
class. Unit literals can be defined with
conversion factors relative to other unit literals. This is reflected in the baseunit reference
association and the containment association factor to a NumberValue.
The NumberType class has containment associations
called lower and upper to the
NumberOrPropertyReference class to represent the lower and upper bound on values of this
property type. The NumberType class has a propertyTypeReference reference association and
and
a propertyType containment association to UnitsType to represent a reference to a declared
units
type or to represent an unnamed units type declared as part of the Aadlinteger or Aadlreal
declaration. Either the propertyTypeReference association or the propertyType association
is set.
![]() Figure 34 Enumerations in the Property Meta Model
Property constants can be declared for a subset of the
property types. This subset is defined by
the abstract class PropertyConstantType. The PropertyConstant class refers to a
previously
declared property type or contains an unnamed property type declaration, using the
propertyTypeReference or propertyType association. A property constant also contains
zero or
more PropertyValue objects to represent a single property value or a list of values including
an
empty list.
Property name declarations are represented by the PropertyDefinition
class. As mentioned in
Annex C.4.13, this class has a reference association to a named property type, whose
PropertyType object is contained in a PropertySet object, or it has a containment association to a
PropertyType object that represents an unnamed property type declared as part of the property
definition. An example of an unnamed property type in a property name declaration is
Acceleration: aadlreal units ( mps2 ); A PropertyDefinition class also has a
multiplicity containment association to the PropertyValue class to represent the default value,
and
a containment association to the ClassifierValue class to represent the optional set of classifiers
within a specified component category that the property can use as specified in the applies
to
portion of the property name declaration.
The PropertyDefinition class has several attributes to
record whether certain reserved words are
part of the property name declaration. They are access, inherit, and list.
In addition there is the
attribute called appliesto that records the categories of AADL model objects for which the property
is applicable. This attribute has a multiplicity of up to the size of the PropertyOwnerCategory
enumeration. This enumeration and others used in the property meta model package are shown
in
Figure 34. The hasEmptyList attribute is used to record the difference between no default
value
and a default value of an empty list for property name declarations that can hold lists of values. |
||||