Graphical Modeling Framework/Concepts/Links
There are two types of link mappings:
- Type based links
- Reference based links
The first type is used when particular EClass is specified and creation of such link in runtime means creation of this EClass instance. When EClass is not specified then this is the second type of link mapping; creation of such link in runtime means setting the specified reference value.
Type Based Links
Mapping property 'domainMetaElement' specifies EClass (type) of the link. If 'sourceMetaFeature' property is not specified then 'containmentFeature' is used to denote link source (iow link container is it's source). If 'sourceMetaFeature' is specified then it should be a EReference defined within link EClass and it's value is the link source. Property 'linkMetaFeature' must always be specified and it references link target.
Reference Based Links
Properties 'domainMetaElement' and 'sourceMetaFeature' should not be specified. Property 'linkMetaFeature' is an EReference; EClass that contains it is a link source and EReference type is a link target.
Link is represented by GenLink class in the model. It may reference the following model facets:
- TypeLinkModelFacet - for type based links
- FeatureLinkModelFacet - for feature based links
In addition to the properties derived from the other models GenLink provides:
- outgoingCreationAllowed (true) - it is possible to draw the link from source to target on diagram
- incomingCreationAllowed (false) - it is possible to draw the link from target to source on diagram
- viewDirectionAlignedWithModel (true) - when link is drawn from target to source it's direction in domain and notation models differ; when this property is true view in notation model will be "reoriented" to be aligned with direction in domain model
- targetReorientingAllowed (true) - user may reorient link target
- sourceReorientingAllowed (true) - user may reorient link source