1
2
3
4 package org.andromda.metafacades.uml;
5
6 /***
7 * <p>
8 * Represents an modeled operation.
9 * </p>
10 *
11 * Metafacade interface to be used by AndroMDA cartridges.
12 */
13 public interface OperationFacade
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 isOperationFacadeMetaType();
23
24 /***
25 * <p>
26 * Finds the parameter on this operation having the given name, if
27 * no parameter is found, null is returned instead.
28 * </p>
29 */
30 public org.andromda.metafacades.uml.ParameterFacade findParameter(java.lang.String name);
31
32 /***
33 * <p>
34 * Searches the given feature for the specified tag.
35 * </p>
36 * <p>
37 * If the follow boolean is set to true then the search will
38 * continue from the class operation to the class itself and then
39 * up the class hiearchy.
40 * </p>
41 */
42 public java.lang.Object findTaggedValue(java.lang.String name, boolean follow);
43
44 /***
45 * <p>
46 * A comma seperated list of all argument names.
47 * </p>
48 */
49 public java.lang.String getArgumentNames();
50
51 /***
52 *
53 */
54 public java.lang.String getArgumentTypeNames();
55
56 /***
57 *
58 */
59 public java.util.Collection getArguments();
60
61 /***
62 *
63 */
64 public java.lang.String getCall();
65
66 /***
67 * <p>
68 * Returns the concurrency modifier for this operation (i.e.
69 * concurrent, guarded or sequential) of the model element, will
70 * attempt a lookup for these values in the language mappings (if
71 * any).
72 * </p>
73 */
74 public java.lang.String getConcurrency();
75
76 /***
77 * <p>
78 * Returns a comma seperated list of exceptions appended to the
79 * comma seperated list of fully qualified 'initialException'
80 * classes passed in to this method.
81 * </p>
82 */
83 public java.lang.String getExceptionList(java.lang.String initialExceptions);
84
85 /***
86 * <p>
87 * A comma seperated list containing all exceptions that this
88 * operation throws. Exceptions are determined through
89 * dependencies that have the target element stereotyped as
90 * <<Exception>>.
91 * </p>
92 */
93 public java.lang.String getExceptionList();
94
95 /***
96 * <p>
97 * A collection of all exceptions thrown by this operation.
98 * </p>
99 */
100 public java.util.Collection getExceptions();
101
102 /***
103 * <p>
104 * the lower value for the multiplicity
105 * </p>
106 * <p>
107 * -only applicable for UML2
108 * </p>
109 */
110 public int getLower();
111
112 /***
113 * <p>
114 * The operation this operation overrides, null if this operation
115 * is not overriding.
116 * </p>
117 */
118 public org.andromda.metafacades.uml.OperationFacade getOverriddenOperation();
119
120 /***
121 * <p>
122 * Gets the owner of this operation
123 * </p>
124 */
125 public org.andromda.metafacades.uml.ClassifierFacade getOwner();
126
127 /***
128 *
129 */
130 public java.util.Collection getParameters();
131
132 /***
133 * <p>
134 * The name of the operation that handles postcondition
135 * constraints.
136 * </p>
137 */
138 public java.lang.String getPostconditionName();
139
140 /***
141 * <p>
142 * The postcondition constraints belonging to this operation.
143 * </p>
144 */
145 public java.util.Collection getPostconditions();
146
147 /***
148 * <p>
149 * The call to the precondition operation.
150 * </p>
151 */
152 public java.lang.String getPreconditionCall();
153
154 /***
155 * <p>
156 * The name of the operation that handles precondition constraints.
157 * </p>
158 */
159 public java.lang.String getPreconditionName();
160
161 /***
162 * <p>
163 * The signature of the precondition operation.
164 * </p>
165 */
166 public java.lang.String getPreconditionSignature();
167
168 /***
169 * <p>
170 * The precondition constraints belonging to this operation.
171 * </p>
172 */
173 public java.util.Collection getPreconditions();
174
175 /***
176 * <p>
177 * (UML2 Only). Get the actual return parameter (which may have
178 * stereotypes etc).
179 * </p>
180 */
181 public org.andromda.metafacades.uml.ParameterFacade getReturnParameter();
182
183 /***
184 *
185 */
186 public org.andromda.metafacades.uml.ClassifierFacade getReturnType();
187
188 /***
189 * <p>
190 * Returns the signature of the operation and optionally appends
191 * the argument names (if withArgumentNames is true), otherwise
192 * returns the signature with just the types alone in the
193 * signature.
194 * </p>
195 */
196 public java.lang.String getSignature(boolean withArgumentNames);
197
198 /***
199 *
200 */
201 public java.lang.String getSignature();
202
203 /***
204 * <p>
205 * Returns the signature of the operation and optionally appends
206 * the given 'argumentModifier' to each argument.
207 * </p>
208 */
209 public java.lang.String getSignature(java.lang.String argumentModifier);
210
211 /***
212 * <p>
213 * A comma-separated parameter list (type and name of each
214 * parameter) of an operation.
215 * </p>
216 */
217 public java.lang.String getTypedArgumentList();
218
219 /***
220 * <p>
221 * A comma-separated parameter list (type and name of each
222 * parameter) of an operation with an optional modifier (i.e final)
223 * before each parameter.
224 * </p>
225 */
226 public java.lang.String getTypedArgumentList(java.lang.String modifier);
227
228 /***
229 * <p>
230 * the upper value for the multiplicity (will be -1 for *)
231 * </p>
232 * <p>
233 * - only applicable for UML2
234 * </p>
235 */
236 public int getUpper();
237
238 /***
239 *
240 */
241 public boolean isAbstract();
242
243 /***
244 * <p>
245 * True if the operation has (i.e. throws any exceptions) false
246 * otherwise.
247 * </p>
248 */
249 public boolean isExceptionsPresent();
250
251 /***
252 * <p>
253 * True if this operation overrides an operation defined in an
254 * ancestor class. An operation overrides when the names of the
255 * operations as well as the types of the arguments are equal. The
256 * return type may be different and is, as well as any exceptions,
257 * ignored.
258 * </p>
259 */
260 public boolean isOverriding();
261
262 /***
263 * <p>
264 * Whether any postcondition constraints are present on this
265 * operation.
266 * </p>
267 */
268 public boolean isPostconditionsPresent();
269
270 /***
271 * <p>
272 * Whether any precondition constraints are present on this
273 * operation.
274 * </p>
275 */
276 public boolean isPreconditionsPresent();
277
278 /***
279 * <p>
280 * Indicates whether or not this operation is a query operation.
281 * </p>
282 */
283 public boolean isQuery();
284
285 /***
286 * <p>
287 * True/false depending on whether or not the operation has a
288 * return type or not (i.e. a return type of something other than
289 * void).
290 * </p>
291 */
292 public boolean isReturnTypePresent();
293
294 /***
295 *
296 */
297 public boolean isStatic();
298
299 }