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 /**
8 * A property related by memberEnd or its specializations to an association represents an end of the
9 * association. The type of the property is the type of the end of the association .Property
10 * represents a declared state of one or more instances in terms of a named relationship to a value
11 * or values. When a property is an association end, the value or values are related to the instance
12 * or instances at the other end(s) of the association.
13 *
14 * Metafacade interface to be used by AndroMDA cartridges.
15 */
16 public interface AssociationEndFacade
17 extends ModelElementFacade
18 {
19 /**
20 * Indicates the metafacade type (used for metafacade mappings).
21 *
22 * @return boolean always <code>true</code>
23 */
24 public boolean isAssociationEndFacadeMetaType();
25
26 /**
27 * A name suitable for use when adding new elements to this association end in programming code.
28 * @return String
29 */
30 public String getAdderName();
31
32 /**
33 * Returns the value of the 'Aggregation' attribute (none, shared, composite). The default value
34 * is "none". The literals are from the enumeration org.eclipse.uml2.uml.AggregationKind.
35 * Specifies the kind of aggregation that applies to the Property.
36 * @return String
37 */
38 public String getAggregationKind();
39
40 /**
41 * The association owning this association end.
42 * @return AssociationFacade
43 */
44 public AssociationFacade getAssociation();
45
46 /**
47 * UML2: Returns the value of the 'Default' attribute. Specifies a String that represents a
48 * value to be used when no argument is supplied for the Property. A String that is evaluated to
49 * give a default value for the Property when an object of the owning Classifier is
50 * instantiated. Can be something like: new ValueObject(values);
51 * @return String
52 */
53 public String getDefault();
54
55 /**
56 * A name suitable for use when accessing this association end in programming code.
57 * @return String
58 */
59 public String getGetterName();
60
61 /**
62 * The name of the type that is returned on the accessor and mutator operations, determined in
63 * part by the multiplicity.
64 * @return String
65 */
66 public String getGetterSetterTypeName();
67
68 /**
69 * the lower value for the multiplicity
70 * -only applicable for UML2
71 * @return int
72 */
73 public int getLower();
74
75 /**
76 * The other association end owned by this end's association.
77 * @return AssociationEndFacade
78 */
79 public AssociationEndFacade getOtherEnd();
80
81 /**
82 * A name suitable for use when removing element from this association end in programming code.
83 * @return String
84 */
85 public String getRemoverName();
86
87 /**
88 * A name suitable for use when accessing this association end in programming code.
89 * @return String
90 */
91 public String getSetterName();
92
93 /**
94 * The classifier attached to this association end.
95 * @return ClassifierFacade
96 */
97 public ClassifierFacade getType();
98
99 /**
100 * the upper value for the multiplicity (will be -1 for *)
101 * -only applicable for UML2
102 * @return int
103 */
104 public int getUpper();
105
106 /**
107 * True if this association end represents an aggregation relationship.
108 * @return boolean
109 */
110 public boolean isAggregation();
111
112 /**
113 * Is true if update of one side of the association should also update the other side. false if
114 * not.
115 * @return boolean
116 */
117 public boolean isBidirectional();
118
119 /**
120 * Returns whether or not (true/false) this association end is the child end of the assocation
121 * (i.e. the other end's aggregation is composition).
122 * @return boolean
123 */
124 public boolean isChild();
125
126 /**
127 * True if this association end represents a composition relationship.
128 * @return boolean
129 */
130 public boolean isComposition();
131
132 /**
133 * If the association end is derived (its value is computed). UML2 only. UML14 always returns
134 * false. Default=false.
135 * @return boolean
136 */
137 public boolean isDerived();
138
139 /**
140 * IsLeaf property in the association end property. If true, attribute is final, cannot be
141 * extended or implemented by a descendant. Default=false.
142 * @return boolean
143 */
144 public boolean isLeaf();
145
146 /**
147 * True if this association end's multiplicity is greater than one.
148 * @return boolean
149 */
150 public boolean isMany();
151
152 /**
153 * True if this association end's and the other end's multiplicities are both many.
154 * @return boolean
155 */
156 public boolean isMany2Many();
157
158 /**
159 * True if this association end's multiplicity is many while the other end's is one.
160 * @return boolean
161 */
162 public boolean isMany2One();
163
164 /**
165 * True if it is possible to navigate from the other end to this association end .
166 * @return boolean
167 */
168 public boolean isNavigable();
169
170 /**
171 * True if this association end's multiplicity is one while the other end's is many.
172 * @return boolean
173 */
174 public boolean isOne2Many();
175
176 /**
177 * True if this association end's and the other end's multiplicities are both one.
178 * @return boolean
179 */
180 public boolean isOne2One();
181
182 /**
183 * Indicates whether or not the association ends are ordered (if multiplicity is greater than
184 * 1).
185 * @return boolean
186 */
187 public boolean isOrdered();
188
189 /**
190 * True if the association end cannot be changed.
191 * @return boolean
192 */
193 public boolean isReadOnly();
194
195 /**
196 * True if this association end's multiplicity is strictly greater than zero.
197 * @return boolean
198 */
199 public boolean isRequired();
200
201 /**
202 * Indicates if this associationEnd is 'static', meaning it has a classifier scope.
203 * @return boolean
204 */
205 public boolean isStatic();
206
207 /**
208 * UML2: If the association attribute is unique within the Collection type. UML14 always returns
209 * false. Unique+Ordered determines the implementation Collection type. Default=false.
210 * @return boolean
211 */
212 public boolean isUnique();
213 }