Package

org.omg.oti.mof.runtime

metamodel

Permalink

package metamodel

What are the different kinds of meta-associations used in metamodels?

All well-formed metamodel associations are ordered from a source to a target association end property.

It depends on several characteristics: - is the source/target association end property ordered? - is the source/target association end property composite?

For each kind of association, there are two sets of query operations: - for forward navigation from the association source to target - for reverse navigation from the association target to source

For each kind of association, there is always a forward query in the association source metaclass and a reverse query in the association target metaclass.

This means that a simple test of well-formed code generation is to verify that the count of forward query usages equals the count of reverse query usages for each kind of association.

Example:
  1. MagicDraw 18's implementation of OMG UML 2.5 has 430 associations: - 9 are MD-specific (no code is generated for them currently) - 421 correspond to OMG UML 2.5 + two extra metaclasses (Diagram, ElementValue) These 421 associations fall in 5 categories as described below: Note that in each category, there is a matching number of forward & reverse query operations. - 1 org.omg.oti.mof.runtime.metamodel.SourceOrderedReferenceAssociation Forward: -- 1 queryIterable Reverse: -- 1 queryOppositeOrdered - 40 org.omg.oti.mof.runtime.metamodel.TargetOrderedCompositeAssociation Forward: -- 1 queryIterable -- 39 queryOrdered Reverse: -- 40 queryOppositeOptional - 9 org.omg.oti.mof.runtime.metamodel.TargetOrderedReferenceAssociation Forward: -- 1 queryIterable -- 8 queryOrdered Reverse: -- 2 queryOppositeOptional -- 7 queryOppositeUnordered - 163 org.omg.oti.mof.runtime.metamodel.UnorderedCompositeAssociation Forward: -- 4 queryIterable -- 80 queryOptional -- 79 queryUnordered Reverse: -- 163 queryOppositeOptional - 208 org.omg.oti.mof.runtime.metamodel.UnorderedReferenceAssociation Forward: -- 7 queryIterable -- 105 queryOptional -- 96 queryUnordered Reverse: -- 60 queryOppositeOptional -- 148 queryOppositeUnordered

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. metamodel
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait Association[S <: ModelElement, US >: S, T <: ModelElement, UT >: T, L <: ModelLink[S, T]] extends AnyRef

    Permalink
  2. case class MetaAssociation[S <: ModelElement, US >: S, T <: ModelElement, UT >: T, L <: ModelLink[S, T]](aInfo: AssociationInfo, sourceMC: MetaClass[S], targetMC: MetaClass[T])(implicit sourceType: ClassTag[S], targetType: ClassTag[T], linkType: ClassTag[L]) extends Product with Serializable

    Permalink
  3. case class MetaClass[T <: ModelElement](mc: MetaClassView)(implicit evidence$1: ClassTag[T]) extends Product with Serializable

    Permalink
  4. case class SourceOrderedReferenceAssociation[S <: ModelElement, US >: S, T <: ModelElement, UT >: T](metaAssociation: MetaAssociation[S, US, T, UT, ModelOrderedLink[S, T]]) extends Association[S, US, T, UT, ModelOrderedLink[S, T]] with Product with Serializable

    Permalink
  5. case class TargetOrderedCompositeAssociation[S <: ModelElement, US >: S, T <: ModelElement, UT >: T](metaAssociation: MetaAssociation[S, US, T, UT, ModelOrderedLink[S, T]]) extends Association[S, US, T, UT, ModelOrderedLink[S, T]] with Product with Serializable

    Permalink
  6. case class TargetOrderedReferenceAssociation[S <: ModelElement, US >: S, T <: ModelElement, UT >: T](metaAssociation: MetaAssociation[S, US, T, UT, ModelOrderedLink[S, T]]) extends Association[S, US, T, UT, ModelOrderedLink[S, T]] with Product with Serializable

    Permalink
  7. case class UnorderedCompositeAssociation[S <: ModelElement, US >: S, T <: ModelElement, UT >: T](metaAssociation: MetaAssociation[S, US, T, UT, ModelUnorderedLink[S, T]]) extends Association[S, US, T, UT, ModelUnorderedLink[S, T]] with Product with Serializable

    Permalink
  8. case class UnorderedReferenceAssociation[S <: ModelElement, US >: S, T <: ModelElement, UT >: T](metaAssociation: MetaAssociation[S, US, T, UT, ModelUnorderedLink[S, T]]) extends Association[S, US, T, UT, ModelUnorderedLink[S, T]] with Product with Serializable

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped