1
2
3
4 package org.andromda.cartridges.bpm4struts.metafacades;
5
6 /***
7 * <p>
8 * Represents a Struts action. Such an action typically is
9 * associated with a form bean.
10 * </p>
11 * <p>
12 * This action model element extends a transition, but the actual
13 * logic contained by the action envelops all action states called,
14 * until either a final state or JSP page is reached.
15 * </p>
16 *
17 * Metafacade interface to be used by AndroMDA cartridges.
18 */
19 public interface StrutsAction
20 extends org.andromda.cartridges.bpm4struts.metafacades.StrutsForward
21 {
22
23 /***
24 * Indicates the metafacade type (used for metafacade mappings).
25 *
26 * @return always <code>true</code>
27 */
28 public boolean isStrutsActionMetaType();
29
30 /***
31 * <p>
32 * A good Java class name for this action. The name is constructed
33 * from the source page and the name of the trigger.
34 * </p>
35 */
36 public java.lang.String getActionClassName();
37
38 /***
39 * <p>
40 * Returns all exception handlers for this action.
41 * </p>
42 */
43 public java.util.List getActionExceptions();
44
45 /***
46 * <p>
47 * Returns all form fields for this action. Form fields are those
48 * parameters that can be altered by the user at runtime.
49 * </p>
50 */
51 public java.util.List getActionFormFields();
52
53 /***
54 * <p>
55 * Returns all action forwards for this action. Each action forward
56 * either calls a JSP page or another use-case (which is
57 * essentially an action).
58 * </p>
59 */
60 public java.util.List getActionForwards();
61
62 /***
63 * <p>
64 * The action input corresponding to this action, as found in the
65 * struts deployment descriptor. The action input maps the action
66 * to the page on which it originated.
67 * </p>
68 */
69 public java.lang.String getActionInput();
70
71 /***
72 * <p>
73 * The action name corresponding to this action, as found in the
74 * struts deployment descriptor. The action name maps the action to
75 * a form bean.
76 * </p>
77 */
78 public java.lang.String getActionName();
79
80 /***
81 * <p>
82 * Returns all parameters transported in this action.
83 * </p>
84 */
85 public java.util.List getActionParameters();
86
87 /***
88 * <p>
89 * Tthe action path corresponding to this action, as found in the
90 * struts deployment descriptor. The action path specifies the URL
91 * to enter in order to call the action.
92 * </p>
93 */
94 public java.lang.String getActionPath();
95
96 /***
97 * <p>
98 * The root of the action path, this is the same as the path for
99 * the use-case context for this action, that is, the use-case
100 * holding the activity graph in which this action is contained.
101 * </p>
102 */
103 public java.lang.String getActionPathRoot();
104
105 /***
106 * <p>
107 * The action roles corresponding to this action, as found in the
108 * struts deployment descriptor. The action roles specifiy the
109 * roles in which the user must be in order to be authorized to
110 * call the action. One of the roles must be satisfied.
111 * </p>
112 */
113 public java.lang.String getActionRoles();
114
115 /***
116 * <p>
117 * The scope in which the form bean will be placed (could be page,
118 * request, session or application).
119 * </p>
120 */
121 public java.lang.String getActionScope();
122
123 /***
124 * <p>
125 * Returns all action states visited by this action.
126 * </p>
127 */
128 public java.util.List getActionStates();
129
130 /***
131 * <p>
132 * Returns the trigger that calls this action. Typically this is a
133 * button or an hyperlink.
134 * </p>
135 */
136 public org.andromda.cartridges.bpm4struts.metafacades.StrutsTrigger getActionTrigger();
137
138 /***
139 * <p>
140 * The fully qualified name for the action class.
141 * </p>
142 */
143 public java.lang.String getActionType();
144
145 /***
146 * <p>
147 * Returns the controller that will handle the execution of this
148 * action. This controller is set as the context of the activity
149 * graph (and therefore also of the use-case).
150 * </p>
151 */
152 public org.andromda.cartridges.bpm4struts.metafacades.StrutsController getController();
153
154 /***
155 * <p>
156 * Returns all the transitions coming out of decision points. These
157 * transitions should all carry guards.
158 * </p>
159 */
160 public java.util.List getDecisionTransitions();
161
162 /***
163 * <p>
164 * The controller operations to which this action defers, the order
165 * is preserved.
166 * </p>
167 */
168 public java.util.List getDeferredOperations();
169
170 /***
171 * <p>
172 * A key suited as a resource message key for the documentation for
173 * this action.
174 * </p>
175 */
176 public java.lang.String getDocumentationKey();
177
178 /***
179 * <p>
180 * The documentation for this action as a String that can be used
181 * as a resource message (with the backslashes at the end of the
182 * line).
183 * </p>
184 */
185 public java.lang.String getDocumentationValue();
186
187 /***
188 * <p>
189 * Returns the class name of the form bean associated to this
190 * action.
191 * </p>
192 */
193 public java.lang.String getFormBeanClassName();
194
195 /***
196 * <p>
197 * The name of the form bean associated to this action. The name is
198 * returned as it should appear in the Struts deployment
199 * descriptor.
200 * </p>
201 */
202 public java.lang.String getFormBeanName();
203
204 /***
205 * <p>
206 * The package for the form bean.
207 * </p>
208 */
209 public java.lang.String getFormBeanPackageName();
210
211 /***
212 * <p>
213 * The fully qualified name of the form bean associated to this
214 * action.
215 * </p>
216 */
217 public java.lang.String getFormBeanType();
218
219 /***
220 * <p>
221 * The scope to place the current "form" variable within when this
222 * action is executing.
223 * </p>
224 */
225 public java.lang.String getFormScope();
226
227 /***
228 * <p>
229 * The Javascript function name of the validation method that will
230 * validate the action parameters.
231 * </p>
232 */
233 public java.lang.String getFormValidationMethodName();
234
235 /***
236 * <p>
237 * The full path for this action. The full path also contains the
238 * package name rendered as directories.
239 * </p>
240 */
241 public java.lang.String getFullActionPath();
242
243 /***
244 * <p>
245 * Returns the full path for the form bean associated to this
246 * action.
247 * </p>
248 */
249 public java.lang.String getFullFormBeanPath();
250
251 /***
252 * <p>
253 * The name of a file that can be used as a JSP file name in case
254 * you want to have each action rendered onto a different tile.
255 * </p>
256 */
257 public java.lang.String getFullTilePath();
258
259 /***
260 * <p>
261 * All action parameters that represent 'hidden' widgets.
262 * </p>
263 */
264 public java.util.List getHiddenActionParameters();
265
266 /***
267 * <p>
268 * The resource message key used to look to location of the image
269 * for this action.
270 * </p>
271 */
272 public java.lang.String getImageMessageKey();
273
274 /***
275 * <p>
276 * If this action is an imageLink this property represents the path
277 * to the corresponding image.
278 * </p>
279 */
280 public java.lang.String getImagePath();
281
282 /***
283 * <p>
284 * The jsp on which this action can be triggered.
285 * </p>
286 */
287 public org.andromda.cartridges.bpm4struts.metafacades.StrutsJsp getInput();
288
289 /***
290 * <p>
291 * Those parameters that are directly entering a final state and
292 * have been submitted into the request, they will be able to
293 * survive a trip to the next use-case. All returned elements are
294 * of type StrutsParameter.
295 * </p>
296 */
297 public java.util.List getInterUseCaseParameters(org.andromda.cartridges.bpm4struts.metafacades.StrutsFinalState finalState);
298
299 /***
300 *
301 */
302 public java.lang.String getMessageKey();
303
304 /***
305 * <p>
306 * The key to lookup the online help documentation. This
307 * documentation is gathered from the documentation entered by the
308 * user, as well as analyzing the model.
309 * </p>
310 */
311 public java.lang.String getOnlineHelpKey();
312
313 /***
314 * <p>
315 * The online help documentation. This documentation is gathered
316 * from the documentation entered by the user, as well as analyzing
317 * the model. The format is HTML without any style.
318 * </p>
319 */
320 public java.lang.String getOnlineHelpValue();
321
322 /***
323 * <p>
324 * Gets all those parameters that should be reset after action
325 * execution.
326 * </p>
327 */
328 public java.util.List getResettableActionParameters();
329
330 /***
331 * <p>
332 * The name of the CSS id in which this action will be contained.
333 * </p>
334 */
335 public java.lang.String getStyleId();
336
337 /***
338 * <p>
339 * The name of the column targetted by this action.
340 * </p>
341 */
342 public java.lang.String getTableLinkColumnName();
343
344 /***
345 * <p>
346 * The name of the table link specified for this action.
347 * </p>
348 */
349 public java.lang.String getTableLinkName();
350
351 /***
352 * <p>
353 * If the action is a table link then this property represents the
354 * table to which is being linked.
355 * </p>
356 */
357 public org.andromda.cartridges.bpm4struts.metafacades.StrutsParameter getTableLinkParameter();
358
359 /***
360 * <p>
361 * This table action's parameters not mapped to any table column.
362 * Only makes sense when this is a table form action.
363 * </p>
364 */
365 public java.util.List getTableNonColumnFormParameters();
366
367 /***
368 * <p>
369 * The set of pages that are a possible target of the triggering of
370 * this action.
371 * </p>
372 */
373 public java.util.List getTargetPages();
374
375 /***
376 * <p>
377 * All the transitions that make up this action, this directly maps
378 * onto the forwards.
379 * </p>
380 */
381 public java.util.List getTransitions();
382
383 /***
384 * <p>
385 * True if this action contains a parameter which requires a
386 * calendar popup.
387 * </p>
388 */
389 public boolean isCalendarRequired();
390
391 /***
392 * <p>
393 * True if this action contains a parameter of type Date. The
394 * generated pages will contain special javascript code to handle
395 * them (popup window etc...).
396 * </p>
397 */
398 public boolean isDateFieldPresent();
399
400 /***
401 * <p>
402 * Specifies whether or not this action is represented by the
403 * posting of a form.
404 * </p>
405 */
406 public boolean isFormPost();
407
408 /***
409 * <p>
410 * Indicates if the form scope is of type "none".
411 * </p>
412 */
413 public boolean isFormScopeNone();
414
415 /***
416 * <p>
417 * Indicates if the from scope is of type "request".
418 * </p>
419 */
420 public boolean isFormScopeRequest();
421
422 /***
423 * <p>
424 * Indicates if the form scope is of type "session".
425 * </p>
426 */
427 public boolean isFormScopeSession();
428
429 /***
430 * <p>
431 * Specifies whether or not this action is represented by clicking
432 * on a hyperlink.
433 * </p>
434 */
435 public boolean isHyperlink();
436
437 /***
438 * <p>
439 * Specifies whether or not this action is represented by clicking
440 * on an image.
441 * </p>
442 */
443 public boolean isImageLink();
444
445 /***
446 * <p>
447 * True is this action is supposed to be rendered as
448 * enctype="multipart/form-data" on the page form.
449 * </p>
450 */
451 public boolean isMultipartFormData();
452
453 /***
454 * <p>
455 * Defines whether or not when this action's forward is executed,
456 * an HTTP redirect should occur. Default value is based on the
457 * value of the 'defaultActionRedirect' namespace.
458 * </p>
459 */
460 public boolean isRedirect();
461
462 /***
463 * <p>
464 * True if it should be possible to reset the form represented by
465 * this action. False otherwise.
466 * </p>
467 */
468 public boolean isResettable();
469
470 /***
471 * <p>
472 * Denotes this action works on all rows of the table from the
473 * table link relation.
474 * </p>
475 */
476 public boolean isTableAction();
477
478 /***
479 * <p>
480 * True if a table link name has been specified and it properly
481 * targets a table page-variable from the input page.
482 * </p>
483 */
484 public boolean isTableLink();
485
486 /***
487 * <p>
488 * Denotes this action works on a single row of the table from the
489 * table link relation.
490 * </p>
491 */
492 public boolean isTableRowAction();
493
494 /***
495 * <p>
496 * True if this action starts the use-case. False otherwise.
497 * </p>
498 */
499 public boolean isUseCaseStart();
500
501 /***
502 * <p>
503 * True if this action requires validation, false otherwise. An
504 * action requires validation if it represented by a form and one
505 * or more fields require validation.
506 * </p>
507 */
508 public boolean isValidationRequired();
509
510 }