1
2
3
4 package org.andromda.metafacades.uml;
5
6 /***
7 * <p>
8 * Represents an attribute on a classifier.
9 * </p>
10 *
11 * Metafacade interface to be used by AndroMDA cartridges.
12 */
13 public interface AttributeFacade
14 extends org.andromda.metafacades.uml.ModelElementFacade
15 {
16
17 /***
18 * Indicates the metafacade type (used for metafacade mappings).
19 *
20 * @return always <code>true</code>
21 */
22 public boolean isAttributeFacadeMetaType();
23
24 /***
25 * <p>
26 * Searches the given feature for the specified tag.
27 * </p>
28 * <p>
29 * If the follow boolean is set to true then the search will
30 * continue from the class attribute to the class itself and then
31 * up the class hiearchy.
32 * </p>
33 */
34 public java.lang.Object findTaggedValue(java.lang.String name, boolean follow);
35
36 /***
37 * <p>
38 * The default value of the attribute. This is the value given if
39 * no value is defined.
40 * </p>
41 */
42 public java.lang.String getDefaultValue();
43
44 /***
45 * <p>
46 * If the attribute is an enumeration literal this represents the
47 * owning enumeration. Can be empty.
48 * </p>
49 */
50 public org.andromda.metafacades.uml.EnumerationFacade getEnumeration();
51
52 /***
53 * <p>
54 * Returns the enumeration literal parameters defined by tagged
55 * value as a comma separated list.
56 * </p>
57 */
58 public java.lang.String getEnumerationLiteralParameters();
59
60 /***
61 * <p>
62 * The value for this attribute if it is an enumeration literal,
63 * null otherwise. The default value is returned as a String if it
64 * has been specified, if it's not specified this attribute's name
65 * is assumed.
66 * </p>
67 */
68 public java.lang.String getEnumerationValue();
69
70 /***
71 * <p>
72 * The name of the accessor operation that would retrieve this
73 * attribute's value.
74 * </p>
75 */
76 public java.lang.String getGetterName();
77
78 /***
79 * <p>
80 * The name of the type that is returned on the accessor and
81 * mutator operations, determined in part by the multiplicity.
82 * </p>
83 */
84 public java.lang.String getGetterSetterTypeName();
85
86 /***
87 * <p>
88 * the lower value for the multiplicity
89 * </p>
90 * <p>
91 * -only applicable for UML2
92 * </p>
93 */
94 public int getLower();
95
96 /***
97 * <p>
98 * Gets the classifer who is the owner of the attributes.
99 * </p>
100 */
101 public org.andromda.metafacades.uml.ClassifierFacade getOwner();
102
103 /***
104 * <p>
105 * The name of the mutator operation that would retrieve this
106 * attribute's value.
107 * </p>
108 */
109 public java.lang.String getSetterName();
110
111 /***
112 * <p>
113 * The classifier owning this attribute.
114 * </p>
115 */
116 public org.andromda.metafacades.uml.ClassifierFacade getType();
117
118 /***
119 * <p>
120 * the upper value for the multiplicity (will be -1 for *)
121 * </p>
122 * <p>
123 * -only applicable for UML2
124 * </p>
125 */
126 public int getUpper();
127
128 /***
129 * <p>
130 * True if this attribute can only be set.
131 * </p>
132 */
133 public boolean isAddOnly();
134
135 /***
136 * <p>
137 * True if this attribute can be modified.
138 * </p>
139 */
140 public boolean isChangeable();
141
142 /***
143 * <p>
144 * Indicates if the default value is present.
145 * </p>
146 */
147 public boolean isDefaultValuePresent();
148
149 /***
150 * <p>
151 * True if this attribute is owned by an enumeration.
152 * </p>
153 */
154 public boolean isEnumerationLiteral();
155
156 /***
157 * <p>
158 * Returns true if enumeration literal parameters exist (defined by
159 * tagged value) for the literal.
160 * </p>
161 */
162 public boolean isEnumerationLiteralParametersExist();
163
164 /***
165 * <p>
166 * True if this attribute is owned by an enumeration but is defined
167 * as a member variable (NOT a literal).
168 * </p>
169 */
170 public boolean isEnumerationMember();
171
172 /***
173 * <p>
174 * Whether or not this attribute has a multiplicity greater than 1.
175 * </p>
176 */
177 public boolean isMany();
178
179 /***
180 * <p>
181 * Indicates whether or not the attributes are ordered (if
182 * multiplicity is greater than 1).
183 * </p>
184 */
185 public boolean isOrdered();
186
187 /***
188 * <p>
189 * Whether or not this attribute can be modified.
190 * </p>
191 */
192 public boolean isReadOnly();
193
194 /***
195 * <p>
196 * Whether or not the multiplicity of this attribute is 1.
197 * </p>
198 */
199 public boolean isRequired();
200
201 /***
202 * <p>
203 * Indicates if this attribute is 'static', meaning it has a
204 * classifier scope.
205 * </p>
206 */
207 public boolean isStatic();
208
209 }