1
2
3
4 package org.andromda.metafacades.uml;
5
6 /***
7 *
8 *
9 * Metafacade interface to be used by AndroMDA cartridges.
10 */
11 public interface AssociationEndFacade
12 extends org.andromda.metafacades.uml.ModelElementFacade
13 {
14
15 /***
16 * Indicates the metafacade type (used for metafacade mappings).
17 *
18 * @return always <code>true</code>
19 */
20 public boolean isAssociationEndFacadeMetaType();
21
22 /***
23 * <p>
24 * The association owning this association end.
25 * </p>
26 */
27 public org.andromda.metafacades.uml.AssociationFacade getAssociation();
28
29 /***
30 * <p>
31 * A name suitable for use when accessing this association end in
32 * programming code.
33 * </p>
34 */
35 public java.lang.String getGetterName();
36
37 /***
38 * <p>
39 * The name of the type that is returned on the accessor and
40 * mutator operations, determined in part by the multiplicity.
41 * </p>
42 */
43 public java.lang.String getGetterSetterTypeName();
44
45 /***
46 * <p>
47 * the lower value for the multiplicity
48 * </p>
49 * <p>
50 * -only applicable for UML2
51 * </p>
52 */
53 public int getLower();
54
55 /***
56 * <p>
57 * The other association end owned by this end's association.
58 * </p>
59 */
60 public org.andromda.metafacades.uml.AssociationEndFacade getOtherEnd();
61
62 /***
63 * <p>
64 * A name suitable for use when accessing this association end in
65 * programming code.
66 * </p>
67 */
68 public java.lang.String getSetterName();
69
70 /***
71 * <p>
72 * The classifier attached to this association end.
73 * </p>
74 */
75 public org.andromda.metafacades.uml.ClassifierFacade getType();
76
77 /***
78 * <p>
79 * the upper value for the multiplicity (will be -1 for *)
80 * </p>
81 * <p>
82 * -only applicable for UML2
83 * </p>
84 */
85 public int getUpper();
86
87 /***
88 * <p>
89 * True if this association end represents an aggregation
90 * relationship.
91 * </p>
92 */
93 public boolean isAggregation();
94
95 /***
96 * <p>
97 * Returns whether or not (true/false) this association end is the
98 * child end of the assocation (i.e. the other end's aggregation is
99 * composition).
100 * </p>
101 */
102 public boolean isChild();
103
104 /***
105 * <p>
106 * True if this association end represents a composition
107 * relationship.
108 * </p>
109 */
110 public boolean isComposition();
111
112 /***
113 * <p>
114 * True if this association end's multiplicity is greater than one.
115 * </p>
116 */
117 public boolean isMany();
118
119 /***
120 * <p>
121 * True if this association end's and the other end's
122 * multiplicities are both many.
123 * </p>
124 */
125 public boolean isMany2Many();
126
127 /***
128 * <p>
129 * True if this association end's multiplicity is many while the
130 * other end's is one.
131 * </p>
132 */
133 public boolean isMany2One();
134
135 /***
136 * <p>
137 * True if it is possible to navigate from the other end to this
138 * association end .
139 * </p>
140 */
141 public boolean isNavigable();
142
143 /***
144 * <p>
145 * True if this association end's multiplicity is one while the
146 * other end's is many.
147 * </p>
148 */
149 public boolean isOne2Many();
150
151 /***
152 * <p>
153 * True if this association end's and the other end's
154 * multiplicities are both one.
155 * </p>
156 */
157 public boolean isOne2One();
158
159 /***
160 * <p>
161 * Indicates whether or not the association ends are ordered (if
162 * multiplicity is greater than 1).
163 * </p>
164 */
165 public boolean isOrdered();
166
167 /***
168 * <p>
169 * True if the association end cannot be changed.
170 * </p>
171 */
172 public boolean isReadOnly();
173
174 /***
175 * <p>
176 * True if this association end's multiplicity is strictly greater
177 * than zero.
178 * </p>
179 */
180 public boolean isRequired();
181
182 }