1 // license-header java merge-point
2 //
3 // Attention: generated code (by Metafacade.vsl) - do not modify!
4 //
5 package org.andromda.metafacades.uml;
6
7 import java.util.List;
8
9 /**
10 * An association describes a set of tuples whose values refer to typed instances. An instance of an
11 * association is called a link.
12 *
13 * Metafacade interface to be used by AndroMDA cartridges.
14 */
15 public interface AssociationFacade
16 extends GeneralizableElementFacade
17 {
18 /**
19 * Indicates the metafacade type (used for metafacade mappings).
20 *
21 * @return boolean always <code>true</code>
22 */
23 public boolean isAssociationFacadeMetaType();
24
25 /**
26 * The first association end.
27 * @return AssociationEndFacade
28 */
29 public AssociationEndFacade getAssociationEndA();
30
31 /**
32 * The second association end.
33 * @return AssociationEndFacade
34 */
35 public AssociationEndFacade getAssociationEndB();
36
37 /**
38 * Gets the association ends belonging to this association.
39 * @return List<AssociationEndFacade>
40 */
41 public List<AssociationEndFacade> getAssociationEnds();
42
43 /**
44 * A name suited for naming this relationship. This name will be constructed from both
45 * association ends.
46 * @return String
47 */
48 public String getRelationName();
49
50 /**
51 * Indicates if this association is 'abstract'.
52 * @return boolean
53 */
54 public boolean isAbstract();
55
56 /**
57 * True if the AssociationFacade is an AssociationClass.
58 * @return boolean
59 */
60 public boolean isAssociationClass();
61
62 /**
63 * UML2: Determines whether this association is a binary association, i.e. whether it has
64 * exactly two member ends. UML2 allows association classes in the association itself (many2many
65 * with association attributes). Default=true: only two member ends.
66 * @return boolean
67 */
68 public boolean isBinary();
69
70 /**
71 * UML2: Returns the value of the 'Is Derived' attribute. The default value is "false". If
72 * isDerived is true, the value of the attribute is derived from information elsewhere.
73 * Specifies whether the Property is derived, i.e., whether its value or values can be computed
74 * from other information.
75 * @return boolean
76 */
77 public boolean isDerived();
78
79 /**
80 * True if this association cannot be extended and represent a leaf in the inheritance tree.
81 * @return boolean
82 */
83 public boolean isLeaf();
84
85 /**
86 * Indicates whether or not this associations represents a many-to-many relation.
87 * @return boolean
88 */
89 public boolean isMany2Many();
90 }