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.Collection;
008import java.util.List;
009import org.andromda.metafacades.uml.FrontEndParameter;
010
011/**
012 * A Struts parameter is an object communicated between the client and the server. Typically form
013 * beans encapsulate such parameters.
014 *
015 * Metafacade interface to be used by AndroMDA cartridges.
016 */
017public interface StrutsParameter
018    extends FrontEndParameter
019{
020    /**
021     * Indicates the metafacade type (used for metafacade mappings).
022     *
023     * @return boolean always <code>true</code>
024     */
025    public boolean isStrutsParameterMetaType();
026
027    /**
028     * The backing list name for this parameter. This is useful if you want to be able to select the
029     * parameter value from a list.
030     * @return String
031     */
032    public String getBackingListName();
033
034    /**
035     * If this parameter is a collection type, this property will represent the fully qualified name
036     * of a class suitable for implementation. If the type is neither Collection, List, nor Set the
037     * type itself is assumed.
038     * @return String
039     */
040    public String getCollectionImplementationType();
041
042    /**
043     * If this parameter represents a date this method will return the format in which it must be
044     * represented. In case this format has not been specified by the any tagged value a default one
045     * will be taken.
046     * @return String
047     */
048    public String getDateFormat();
049
050    /**
051     * The key to lookup the documentation for this parameter.
052     * @return String
053     */
054    public String getDocumentationKey();
055
056    /**
057     * The documentation for this parameter, formatted to be inserted into a resource bundle.
058     * @return String
059     */
060    public String getDocumentationValue();
061
062    /**
063     * The number of columns for this field, null if default browser value is desired.
064     * @return Integer
065     */
066    public Integer getFieldColumnCount();
067
068    /**
069     * The number of rows for this field, null if default browser value is desired.
070     * @return Integer
071     */
072    public Integer getFieldRowCount();
073
074    /**
075     * If this is a controller operation argument these form fields will represent the form fields
076     * for all actions deferring to the controller operation.
077     * @return List<StrutsParameter>
078     */
079    public List<StrutsParameter> getFormFields();
080
081    /**
082     * Represents the jsp page in which this parameter will be used: either as a page variable,
083     * either as an action parameter (form or hyperlink).
084     * @return StrutsJsp
085     */
086    public StrutsJsp getJsp();
087
088    /**
089     * The name of the list holding the labels for this parameter. Only makes sense when the
090     * parameter is selectable.
091     * @return String
092     */
093    public String getLabelListName();
094
095    /**
096     * The default message key for this parameter.
097     * @return String
098     */
099    public String getMessageKey();
100
101    /**
102     * The default message value for this parameter.
103     * @return String
104     */
105    public String getMessageValue();
106
107    /**
108     * The name of the array to be used for the multibox, this only makes sense when this parameter
109     * is actually a multibox.
110     * @return String
111     */
112    public String getMultiboxPropertyName();
113
114    /**
115     * The null value for the type of this parameter. For decimals this would be zero, for booleans
116     * this would be 'false', etc...
117     * @return String
118     */
119    public String getNullValue();
120
121    /**
122     * The key to lookup the online help documentation. This documentation is gathered from the
123     * documentation entered by the user, as well as analyzing the model.
124     * @return String
125     */
126    public String getOnlineHelpKey();
127
128    /**
129     * The online help documentation. This documentation is gathered from the documentation entered
130     * by the user, as well as analyzing the model. The format is HTML without any style.
131     * @return String
132     */
133    public String getOnlineHelpValue();
134
135    /**
136     * In case this parameter represents an option set using radiobuttons, this attribute is a
137     * positive integer and zero otherwise.
138     * @return int
139     */
140    public int getOptionCount();
141
142    /**
143     * If this parameter is a choice between radio buttons, then you may use this method to retrieve
144     * the message keys for the resource bundle. The message keys hold the value to be displayed for
145     * the possible options.
146     * @return List
147     */
148    public List getOptionKeys();
149
150    /**
151     * The values for the options. Only makes sense when the widget type is radiobutton. The
152     * property value may directly be specified usiing the tagged value.
153     * @return List
154     */
155    public List getOptionValues();
156
157    /**
158     * The name of the operation that resets this parameter to its original value.
159     * @return String
160     */
161    public String getResetName();
162
163    /**
164     * The reset value for this parameter. The reset value is the non-null value to which this
165     * parameter is set by default between requests, you can use this method to be able to generate
166     * an application that will deploy and run with default data.
167     * @return String
168     */
169    public String getResetValue();
170
171    /**
172     * Represents a Struts action. Such an action typically is associated with a form bean.
173     * This action model element extends a transition, but the actual logic contained by the action
174     * envelops all action states called, until either a final state or JSP page is reached.
175     * @return StrutsAction
176     */
177    public StrutsAction getStrutsAction();
178
179    /**
180     * TODO: Model Documentation for
181     * StrutsParameter.styleId
182     * @return String
183     */
184    public String getStyleId();
185
186    /**
187     * Those actions that are targetting this table's columns, only makes sense when this parameter
188     * represents a table page-variable.
189     * @param columnName String
190     * @return List
191     */
192    public List getTableColumnActions(String columnName);
193
194    /**
195     * Returns the resource bundle key for this table's column, only returns a value when this
196     * parameter is a table.
197     * @param columnName String
198     * @return String
199     */
200    public String getTableColumnMessageKey(String columnName);
201
202    /**
203     * Returns the resource bundle value for this table's column, only returns a value when this
204     * parameter is a table.
205     * @param columnName String
206     * @return String
207     */
208    public String getTableColumnMessageValue(String columnName);
209
210    /**
211     * The class name of the decorator to use for the table.
212     * @return String
213     */
214    public String getTableDecoratorClassName();
215
216    /**
217     * The full path to the decorator class.
218     * @return String
219     */
220    public String getTableDecoratorFullPath();
221
222    /**
223     * The complete table decorator classname.
224     * @return String
225     */
226    public String getTableDecoratorFullyQualifiedName();
227
228    /**
229     * The package name of the decorator to use for the table.
230     * @return String
231     */
232    public String getTableDecoratorPackageName();
233
234    /**
235     * Tthe available types of export in a single String instance.
236     * @return String
237     */
238    public String getTableExportTypes();
239
240    /**
241     * The actions used when submitting forms for this table. Table actions that are hyperlinks are
242     * not included. It only makes sense to call this property on parameters that represent a table
243     * page-variable.
244     * @return List<StrutsAction>
245     */
246    public List<StrutsAction> getTableFormActions();
247
248    /**
249     * The column which is chosen to be submitted by the action targetting the entire table. Only
250     * makes sense when there are actually global table actions present for this table parameter.
251     * @return StrutsParameter
252     */
253    public StrutsParameter getTableGlobalActionParameter();
254
255    /**
256     * Returns those actions that allow table rows to be checked and submitted. Only makes sense
257     * when this parameter represents a table page-variable.
258     * @return Collection<StrutsAction>
259     */
260    public Collection<StrutsAction> getTableGlobalActions();
261
262    /**
263     * Those actions that are working on this table and are to be represented as hyperlinks. It only
264     * makes sense to call this property on parameters that represent a table page-variable.
265     * @return List<StrutsAction>
266     */
267    public List<StrutsAction> getTableHyperlinkActions();
268
269    /**
270     * The maximum number of rows to be displayed in the table at the same time. This is also known
271     * as the page size. A value of zero or less will display all data in the same table (therefore
272     * also on the same page).
273     * @return int
274     */
275    public int getTableMaxRows();
276
277    /**
278     * The time format for this parameter (if this parameter stores time).
279     * @return String
280     */
281    public String getTimeFormat();
282
283    /**
284     * TODO: Model Documentation for
285     * StrutsParameter.titleKey
286     * @return String
287     */
288    public String getTitleKey();
289
290    /**
291     * TODO: Model Documentation for
292     * StrutsParameter.titleValue
293     * @return String
294     */
295    public String getTitleValue();
296
297    /**
298     * The validator's 'validwhen' value, this is useful when the validation of a parameter depends
299     * on the validation of others. See the Struts validator plugin documentation for more
300     * information.
301     * @return String
302     */
303    public String getValidWhen();
304
305    /**
306     * Returns the arguments for this parameter's validators.
307     * @param validatorType String
308     * @return Collection
309     */
310    public Collection getValidatorArgs(String validatorType);
311
312    /**
313     * The message key for this parameter, equivalent to getMessageKey().
314     * @return String
315     */
316    public String getValidatorMsgKey();
317
318    /**
319     * A collection of all the validator types for this parameter. Use this value in conjunction
320     * with the Struts validator plugin.
321     * @return Collection
322     */
323    public Collection getValidatorTypes();
324
325    /**
326     * The validator arguments.
327     * @return Collection
328     */
329    public Collection getValidatorVars();
330
331    /**
332     * The name of the list holding the values for this parameter. Only makes sense when the
333     * parameter is selectable.
334     * @return String
335     */
336    public String getValueListName();
337
338    /**
339     * The reset value for this parameter's value list. Only makes sense if this parameter is
340     * selectable.
341     * @return String
342     */
343    public String getValueListResetValue();
344
345    /**
346     * The widget type for this parameter, this value is the tagname for the Struts HTML taglib.
347     * This method is useful only when rendering forms.
348     * @return String
349     */
350    public String getWidgetType();
351
352    /**
353     * This property is used in model validation. It denotes whether all actions targetting this
354     * table page-variable take the same parameter (same name and type). Only makes sense when this
355     * parameter is actually a table page-variable.
356     * @return boolean
357     */
358    public boolean isAllGlobalTableActionsHaveSameParameter();
359
360    /**
361     * True if this parameter is a date and it requires a calendar popup.
362     * @return boolean
363     */
364    public boolean isCalendarRequired();
365
366    /**
367     * TODO: Model Documentation for
368     * StrutsParameter.checkbox
369     * @return boolean
370     */
371    public boolean isCheckbox();
372
373    /**
374     * TODO: Model Documentation for
375     * StrutsParameter.combobox
376     * @return boolean
377     */
378    public boolean isCombobox();
379
380    /**
381     * True if the type of this parameter represents a date. This is equivalent to
382     * parameter.type.isDateType().
383     * @return boolean
384     */
385    public boolean isDate();
386
387    /**
388     * TODO: Model Documentation for
389     * StrutsParameter.file
390     * @return boolean
391     */
392    public boolean isFile();
393
394    /**
395     * TODO: Model Documentation for
396     * StrutsParameter.hiddenField
397     * @return boolean
398     */
399    public boolean isHiddenField();
400
401    /**
402     * TODO: Model Documentation for
403     * StrutsParameter.hyperlink
404     * @return boolean
405     */
406    public boolean isHyperlink();
407
408    /**
409     * TODO: Model Documentation for
410     * StrutsParameter.multibox
411     * @return boolean
412     */
413    public boolean isMultibox();
414
415    /**
416     * True if this parameter is either an array type or Collection type.
417     * @return boolean
418     */
419    public boolean isMultiple();
420
421    /**
422     * True if this parameter represents a password field.
423     * @return boolean
424     */
425    public boolean isPassword();
426
427    /**
428     * TODO: Model Documentation for
429     * StrutsParameter.radioButton
430     * @return boolean
431     */
432    public boolean isRadioButton();
433
434    /**
435     * True if this parameter cannot be changed by the user, false otherwise.
436     * @return boolean
437     */
438    public boolean isReadOnly();
439
440    /**
441     * True if the value of this parameter must be reset between requests (Struts requires this for
442     * specific types), false otherwise.
443     * @return boolean
444     */
445    public boolean isResetRequired();
446
447    /**
448     * True if this parameter has a name that can properly be handled by Jakarta commons (this lib
449     * is used by Struts but contains a bug)
450     * @return boolean
451     */
452    public boolean isSafeNamePresent();
453
454    /**
455     * Whether or not this parameter is selectable. In case this would be true this parameter always
456     * has a backing list, a value list and a list containing the labels.
457     * @return boolean
458     */
459    public boolean isSelectable();
460
461    /**
462     * Whether or not this parameter should be reset between requests.  This is different than
463     * resetRequired in that this is user specified.
464     * @return boolean
465     */
466    public boolean isShouldReset();
467
468    /**
469     * Indicates if a table can be sorted by this parameter.
470     * @return boolean
471     */
472    public boolean isSortableBy();
473
474    /**
475     * True if the date format is to be strictly respected. Otherwise the dateformatter used for the
476     * representation of this date is to be set to lenient.
477     * @return boolean
478     */
479    public boolean isStrictDateFormat();
480
481    /**
482     * TODO: Model Documentation for
483     * StrutsParameter.tableDecoratorRequired
484     * @return boolean
485     */
486    public boolean isTableDecoratorRequired();
487
488    /**
489     * True if it is possible to export the table data to XML, CSV, PDF or Excel format.
490     * @return boolean
491     */
492    public boolean isTableExportable();
493
494    /**
495     * True if this table has form actions that share the column widgets. It is not allowed to have
496     * different actions use different widgets on the same column.
497     * @return boolean
498     */
499    public boolean isTableFormActionSharingWidgets();
500
501    /**
502     * True if this parameter represents a table column into which an hyperlink must be rendered.
503     * This property only makes sense when it has been called on parameters representing an actual
504     * table column. Note that the getTableColumns() operation also returns String instances.
505     * @return boolean
506     */
507    public boolean isTableHyperlinkColumn();
508
509    /**
510     * True if it is possible to sort the columns of the table.
511     * @return boolean
512     */
513    public boolean isTableSortable();
514
515    /**
516     * TODO: Model Documentation for
517     * StrutsParameter.textArea
518     * @return boolean
519     */
520    public boolean isTextArea();
521
522    /**
523     * TODO: Model Documentation for
524     * StrutsParameter.textField
525     * @return boolean
526     */
527    public boolean isTextField();
528
529    /**
530     * Indicates if this parameter's type represents a time.
531     * @return boolean
532     */
533    public boolean isTime();
534
535    /**
536     * True if this parameter requires some kind of validation. This means the collection of
537     * validator types is not empty.
538     * @return boolean
539     */
540    public boolean isValidationRequired();
541}