TupleDefinition


superclasses:

TypeDefinition

attributes:

[superclass] List(TypeIdentifier

[subclassing] String

[attributes] List(AttributeDefinition)

[classAttributes] List(AttributeDefinition)

[defaults] List(RestrictedValue)

[restricted] List(Restricted)

[constraints] String

[classAttributeDefaults] List(RestrictedValue)

[classAttributeValues] List(Restricted)

[comments] String

defaults:

superclass.typeName : Tuple

restricted:

classAttributeValues{} : RestrictedValue |

RestrictedValueSet | RestrictedValueRange :

constraints:

classAttributes{}:RestrictedValueSet|RestrictedRangeSet only if the class being defined is an abstract superclass.

comments:

With single inheritance, the list of type identifiers for superclass contains only one value. With multiple inheritance, the list contains two or more values.

Attributes, class attributes, and other information inherited from superclasses are not repeated in the definition of a subclass.

The defaults and restricted clauses refer specifically to attributes. The classAttributeDefaults and classAttributeValues clauses relate to classAttributes. The structures for (object) attributes and class attributes are quite analagous. However, in the latter case there are restrictions applied as to which subclasses may be used in the construction of domains for classAttributeValues (as compared to restricted) clauses.

In particular, classAttributes can never be specified as optional or as coming from complex domains. The domain for each class attribute must be either a type of primitive or an enumeration. Each class attribute must have a single primitive value specified or inherited, unless the class being defined is an abstract superclass. With an abstract superclass, particular values need not be specified at all, or alternatively, values may be defined as a set or range of values. However, each (directly instantiable) subclass of such an abstract superclass must provide a single primitive value for each classAttribute which has not been specified to that degree of detail previously.


Links to Section 3.9 and the complete SAIF class list