001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.cartridges.bpm4struts.metafacades;
006
007import java.util.List;
008
009/**
010 * Represents a Struts action. Such an action typically is associated with a form bean.
011 * This action model element extends a transition, but the actual logic contained by the action
012 * envelops all action states called, until either a final state or JSP page is reached.
013 *
014 * Metafacade interface to be used by AndroMDA cartridges.
015 */
016public interface StrutsAction
017    extends StrutsForward
018{
019    /**
020     * Indicates the metafacade type (used for metafacade mappings).
021     *
022     * @return boolean always <code>true</code>
023     */
024    public boolean isStrutsActionMetaType();
025
026    /**
027     * A good Java class name for this action. The name is constructed from the source page and the
028     * name of the trigger.
029     * @return String
030     */
031    public String getActionClassName();
032
033    /**
034     * Returns all exception handlers for this action.
035     * @return List<StrutsExceptionHandler>
036     */
037    public List<StrutsExceptionHandler> getActionExceptions();
038
039    /**
040     * Returns all form fields for this action. Form fields are those parameters that can be altered
041     * by the user at runtime.
042     * @return List<StrutsParameter>
043     */
044    public List<StrutsParameter> getActionFormFields();
045
046    /**
047     * Returns all action forwards for this action. Each action forward either calls a JSP page or
048     * another use-case (which is essentially an action).
049     * @return List<StrutsForward>
050     */
051    public List<StrutsForward> getActionForwards();
052
053    /**
054     * The action input corresponding to this action, as found in the struts deployment descriptor.
055     * The action input maps the action to the page on which it originated.
056     * @return String
057     */
058    public String getActionInput();
059
060    /**
061     * The action name corresponding to this action, as found in the struts deployment descriptor.
062     * The action name maps the action to a form bean.
063     * @return String
064     */
065    public String getActionName();
066
067    /**
068     * Returns all parameters transported in this action.
069     * @return List<StrutsParameter>
070     */
071    public List<StrutsParameter> getActionParameters();
072
073    /**
074     * Tthe action path corresponding to this action, as found in the struts deployment descriptor.
075     * The action path specifies the URL to enter in order to call the action.
076     * @return String
077     */
078    public String getActionPath();
079
080    /**
081     * The root of the action path, this is the same as the path for the use-case context for this
082     * action, that is, the use-case holding the activity graph in which this action is contained.
083     * @return String
084     */
085    public String getActionPathRoot();
086
087    /**
088     * The action roles corresponding to this action, as found in the struts deployment descriptor.
089     * The action roles specifiy the roles in which the user must be in order to be authorized to
090     * call the action. One of the roles must be satisfied.
091     * @return String
092     */
093    public String getActionRoles();
094
095    /**
096     * The scope in which the form bean will be placed (could be page, request, session or
097     * application).
098     * @return String
099     */
100    public String getActionScope();
101
102    /**
103     * Returns all action states visited by this action.
104     * @return List<StrutsActionState>
105     */
106    public List<StrutsActionState> getActionStates();
107
108    /**
109     * Returns the trigger that calls this action. Typically this is a button or an hyperlink.
110     * @return StrutsTrigger
111     */
112    public StrutsTrigger getActionTrigger();
113
114    /**
115     * The fully qualified name for the action class.
116     * @return String
117     */
118    public String getActionType();
119
120    /**
121     * Returns the controller that will handle the execution of this action. This controller is set
122     * as the context of the activity graph (and therefore also of the use-case).
123     * @return StrutsController
124     */
125    public StrutsController getController();
126
127    /**
128     * Returns all the transitions coming out of decision points. These transitions should all carry
129     * guards.
130     * @return List<StrutsForward>
131     */
132    public List<StrutsForward> getDecisionTransitions();
133
134    /**
135     * The controller operations to which this action defers, the order is preserved.
136     * @return List<StrutsControllerOperation>
137     */
138    public List<StrutsControllerOperation> getDeferredOperations();
139
140    /**
141     * A key suited as a resource message key for the documentation for this action.
142     * @return String
143     */
144    public String getDocumentationKey();
145
146    /**
147     * The documentation for this action as a String that can be used as a resource message (with
148     * the backslashes at the end of the line).
149     * @return String
150     */
151    public String getDocumentationValue();
152
153    /**
154     * Returns the class name of the form bean associated to this action.
155     * @return String
156     */
157    public String getFormBeanClassName();
158
159    /**
160     * The name of the form bean associated to this action. The name is returned as it should appear
161     * in the Struts deployment descriptor.
162     * @return String
163     */
164    public String getFormBeanName();
165
166    /**
167     * The package for the form bean.
168     * @return String
169     */
170    public String getFormBeanPackageName();
171
172    /**
173     * The fully qualified name of the form bean associated to this action.
174     * @return String
175     */
176    public String getFormBeanType();
177
178    /**
179     * The scope to place the current "form" variable within when this action is executing.
180     * @return String
181     */
182    public String getFormScope();
183
184    /**
185     * The Javascript function name of the validation method that will validate the action
186     * parameters.
187     * @return String
188     */
189    public String getFormValidationMethodName();
190
191    /**
192     * The full path for this action. The full path also contains the package name rendered as
193     * directories.
194     * @return String
195     */
196    public String getFullActionPath();
197
198    /**
199     * Returns the full path for the form bean associated to this action.
200     * @return String
201     */
202    public String getFullFormBeanPath();
203
204    /**
205     * The name of a file that can be used as a JSP file name in case you want to have each action
206     * rendered onto a different tile.
207     * @return String
208     */
209    public String getFullTilePath();
210
211    /**
212     * All action parameters that represent 'hidden' widgets.
213     * @return List<StrutsParameter>
214     */
215    public List<StrutsParameter> getHiddenActionParameters();
216
217    /**
218     * The resource message key used to look to location of the image for this action.
219     * @return String
220     */
221    public String getImageMessageKey();
222
223    /**
224     * If this action is an imageLink this property represents the path to the corresponding image.
225     * @return String
226     */
227    public String getImagePath();
228
229    /**
230     * The jsp on which this action can be triggered.
231     * @return StrutsJsp
232     */
233    public StrutsJsp getInput();
234
235    /**
236     * Those parameters that are directly entering a final state and have been submitted into the
237     * request, they will be able to survive a trip to the next use-case. All returned elements are
238     * of type StrutsParameter.
239     * @param finalState StrutsFinalState
240     * @return List
241     */
242    public List getInterUseCaseParameters(StrutsFinalState finalState);
243
244    /**
245     * TODO: Model Documentation for
246     * org.andromda.cartridges.bpm4struts.metafacades.StrutsAction.messageKey
247     * @return String
248     */
249    public String getMessageKey();
250
251    /**
252     * The key to lookup the online help documentation. This documentation is gathered from the
253     * documentation entered by the user, as well as analyzing the model.
254     * @return String
255     */
256    public String getOnlineHelpKey();
257
258    /**
259     * The online help documentation. This documentation is gathered from the documentation entered
260     * by the user, as well as analyzing the model. The format is HTML without any style.
261     * @return String
262     */
263    public String getOnlineHelpValue();
264
265    /**
266     * Gets all those parameters that should be reset after action execution.
267     * @return List<StrutsParameter>
268     */
269    public List<StrutsParameter> getResettableActionParameters();
270
271    /**
272     * The name of the CSS id in which this action will be contained.
273     * @return String
274     */
275    public String getStyleId();
276
277    /**
278     * The name of the column targetted by this action.
279     * @return String
280     */
281    public String getTableLinkColumnName();
282
283    /**
284     * The name of the table link specified for this action.
285     * @return String
286     */
287    public String getTableLinkName();
288
289    /**
290     * If the action is a table link then this property represents the table to which is being
291     * linked.
292     * @return StrutsParameter
293     */
294    public StrutsParameter getTableLinkParameter();
295
296    /**
297     * This table action's parameters not mapped to any table column. Only makes sense when this is
298     * a table form action.
299     * @return List<StrutsParameter>
300     */
301    public List<StrutsParameter> getTableNonColumnFormParameters();
302
303    /**
304     * The set of pages that are a possible target of the triggering of this action.
305     * @return List<StrutsJsp>
306     */
307    public List<StrutsJsp> getTargetPages();
308
309    /**
310     * All the transitions that make up this action, this directly maps onto the forwards.
311     * @return List<StrutsForward>
312     */
313    public List<StrutsForward> getTransitions();
314
315    /**
316     * True if this action contains a parameter which requires a calendar popup.
317     * @return boolean
318     */
319    public boolean isCalendarRequired();
320
321    /**
322     * True if this action contains a parameter of type Date. The generated pages will contain
323     * special javascript code to handle them (popup window etc...).
324     * @return boolean
325     */
326    public boolean isDateFieldPresent();
327
328    /**
329     * Specifies whether or not this action is represented by the posting of a form.
330     * @return boolean
331     */
332    public boolean isFormPost();
333
334    /**
335     * Indicates if the form scope is of type "none".
336     * @return boolean
337     */
338    public boolean isFormScopeNone();
339
340    /**
341     * Indicates if the from scope is of type "request".
342     * @return boolean
343     */
344    public boolean isFormScopeRequest();
345
346    /**
347     * Indicates if the form scope is of type "session".
348     * @return boolean
349     */
350    public boolean isFormScopeSession();
351
352    /**
353     * Specifies whether or not this action is represented by clicking on a hyperlink.
354     * @return boolean
355     */
356    public boolean isHyperlink();
357
358    /**
359     * Specifies whether or not this action is represented by clicking on an image.
360     * @return boolean
361     */
362    public boolean isImageLink();
363
364    /**
365     * True is this action is supposed to be rendered as enctype="multipart/form-data" on the page
366     * form.
367     * @return boolean
368     */
369    public boolean isMultipartFormData();
370
371    /**
372     * Defines whether or not when this action's forward is executed, an HTTP redirect should occur.
373     *  Default value is based on the value of the 'defaultActionRedirect' namespace.
374     * @return boolean
375     */
376    public boolean isRedirect();
377
378    /**
379     * True if it should be possible to reset the form represented by this action. False otherwise.
380     * @return boolean
381     */
382    public boolean isResettable();
383
384    /**
385     * Denotes this action works on all rows of the table from the table link relation.
386     * @return boolean
387     */
388    public boolean isTableAction();
389
390    /**
391     * True if a table link name has been specified and it properly targets a table page-variable
392     * from the input page.
393     * @return boolean
394     */
395    public boolean isTableLink();
396
397    /**
398     * Denotes this action works on a single row of the table from the table link relation.
399     * @return boolean
400     */
401    public boolean isTableRowAction();
402
403    /**
404     * True if this action starts the use-case. False otherwise.
405     * @return boolean
406     */
407    public boolean isUseCaseStart();
408
409    /**
410     * True if this action requires validation, false otherwise. An action requires validation if it
411     * represented by a form and one or more fields require validation.
412     * @return boolean
413     */
414    public boolean isValidationRequired();
415}