| The content of this file describes specific choices of implementation/limitation. |
| |
| #Property |
| The **Property** associated to an **Association** are not displayed in the Diagram, even when this diagram is synchronized. |
| The Drop of such Properties is not allowed too. |
| |
| |
| #Abstraction |
| The **Abstraction** is owned by the nearest parent Package of the source. |
| The *semantic candidate expression* must return all **Abstraction** existing in the Package and in its children. |
| |
| #Association |
| The **Association** is owned by the nearest Package of the source. |
| The *semantic candidate expression* must return all **Association** existing in the Package and in its children. The **Association** references two members ends. |
| The first memberEnd is the **Property** typed with the target. The second memberEnd is the **Property** typed with the source. |
| |
| The palette proposes 4 kins of **Association** to create. |
| |
| ##Directed Association |
| - an **Association** created from class A (source) to class B (target): |
| - the class A owns a **Property** b typed with B with a multiplicity [0..1], aggregation is set to **none**, |
| - the association owns a **Property** a, typed with A, with a multiplicity set to 1, aggregation is set to **none**, |
| - the first memberEnd (index 0) is the **Property** typed with B, the second memberEnd (index 1) is the **Property** typed with A. |
| |
| ##Composite Association |
| - an **Association** created from class A (source) to class B (target): |
| - the class A owns a **Property** b typed with B with a multiplicity [0..1], aggregation is set to **composite**, |
| - the association owns a **Property** a, typed with A, with a multiplicity set to 1, aggregation is set to **none**, |
| - the first memberEnd (index 0) is the **Property** typed with B, the second memberEnd (index 1) is the **Property** typed with A. |
| |
| ##Share Association |
| - an **Association** created from class A (source) to class B (target): |
| - the class A owns a **Property** b typed with B with a multiplicity [0..1], aggregation is set to **share**, |
| - the association owns a **Property** a, typed with A, with a multiplicity set to 1, aggregation is set to **none**, |
| - the first memberEnd (index 0) is the **Property** typed with B, the second memberEnd (index 1) is the **Property** typed with A. |
| |
| ##Association |
| - an **Association** created from class A (source) to class B (target): |
| - the classes A and B don't own properties |
| - the association owns two **Properties**, a:A [0..1] and b:B [1]. The aggregation field is set to **none** for these 2 properties, |
| - the first memberEnd (index 0) is the **Property** typed with B, the second memberEnd (index 1) is the **Property** typed with A. |
| |
| #AssociationClass |
| The **AssociationClass** is owned by the nearest parent Package of the source. The **AssociationClass** owns the two end members. |
| The first memberEnd is the **Property** typed with the target. The second memberEnd is the **Property** typed with the source. |
| Basically, as it is done for **Association**, the first memberEnd is the source and the second memberEnd is the target. |
| |
| #Constraint |
| technical requirement: |
| The **ContextLink** changes the owner of the **Constraint**, so creating a **ContextLink** can results in the constraint disappearing. To avoid this behavior, the *semantic candidate expression* must return all **Constraints** found in the **Package** (diagram background) and in its children. |
| |
| #ContainmentLink |
| technical requirement: The target view of the **ContainmentLink** must be located on the diagram background to ease the development of the diagram. |
| |
| #Dependency |
| The **Dependency** is owned by the nearest parent Package of the source. |
| The *semantic candidate expression* must return all **Dependency** existing in the Package and in its children. |
| |
| #ElementImport |
| The **ElementImport** is owned by the source element. |
| |
| #Generalization |
| The **Generalization** is owned by the source element. |
| |
| ##GeneralizationSet |
| The **GeneralizationSet** is owned by the nearest parent Package of the source **Generalization**. |
| |
| ##InformationFlow |
| The **InformationFlow** is owned by the nearest parent Package of the source. |
| |
| ##InstanceSpecification Link |
| The **InstanceSpecification** is owned by the nearest parent Package of the source **InstanceSpecification**. (unlike in GMF Diagram). In GMF Diagram they are always inside the Package at the root of the UML model. |
| |
| ##InterfaceRealization |
| The **InterfaceRealization** is owned by the source of the link which is a **BehavioredClassifier**. |
| |
| ##Link (Constaint#constrainedElements and Comment#annotatedElement) |
| technical requirement: We forbid to change the semantic of a link by changing its source from a Comment to a Constraint (and vice-versa). |
| |
| ##PackageImport |
| The **PackageImport** is owned by the source of the link which is a **Package**. |
| |
| ##PackageMerge |
| The **PackageMerge** is owned by the source of the link which is a **Package**. |
| |
| #Realization |
| The **Realization** is owned by the nearest parent Package of the source. |
| |
| #Substitution |
| The **Substitution** is owned by the source of the link. The source and target must be **Classifier**. |
| |
| #TemplateBinding |
| The **TemplateBinding** is owned by the source of the link. The source must be a **TemplateableElement** and the target a **TemplateableSignature**. |
| Technically, we create a **TemplateBinding** between a **TemplateableElement** and an element owning a **TemplateableSignature**. |
| |
| #Usage |
| The **Usage** is owned by the nearest parent Package of the source. |