metadata-feature-annotated-element

Available in: KerML, SysML

This checks that metadata is applied only to elements matching its annotatedElement constraints.

Specification

The annotated_elements of a MetadataFeature must have an abstract syntax metaclass consistent with the annotatedElement declarations for the MetadataFeature.

Example

metadata def M :> Metaobjects::Metaobject {
  :> annotatedElement: KerML::Function;
}
#M part def P; // error

Fix this by applying metadata to valid elements:

metadata def M :> Metaobjects::Metaobject {
  :> annotatedElement: KerML::Function;
}
#M calc def P; // ok

Or change the metadata constraint:

metadata def M :> Metaobjects::Metaobject {
  :> annotatedElement: SysML::PartDefinition;
}
#M part def P; // ok

Or add an additional constraints:

metadata def M :> Metaobjects::Metaobject {
  :> annotatedElement: KerML::Function;
  :> annotatedElement: SysML::PartDefinition;
}
#M part def P; // ok