The HasComponent ReferenceTypeis a concrete ReferenceTypethat can be used directly. It is a subtype of the Aggregates ReferenceType.

The semantic is a part-of relationship. The TargetNodeof a Referenceof the HasComponent ReferenceTypeis a part of the SourceNode. This ReferenceTypeis used to relate Objectsor ObjectTypeswith their containing Objects, DataVariables, and Methods. This ReferenceTypeis also used to relate complex Variables or VariableTypeswith their DataVariables.

Like all other ReferenceTypes, this ReferenceTypedoes not specify anything about the ownership of the parts, although it represents a part-of relationship semantic. That is, it is not specified if the TargetNodeof a Referenceof the HasComponent ReferenceTypeis deleted when the SourceNodeis deleted.

The TargetNodeof this ReferenceTypeshall be a Variable, an Objector a Method.

If the TargetNodeis a Variable, the SourceNodeshall be an Object, an ObjectType, a DataVariableor a VariableType. By using the HasComponent Reference, the Variableis defined as DataVariable.

If the TargetNodeis an Objector a Method, the SourceNodeshall be an Objector ObjectType.