1 // license-header java merge-point
2 //
3 // Attention: generated code (by Metafacade.vsl) - do not modify!
4 //
5 package org.andromda.cartridges.bpm4struts.metafacades;
6
7 import java.util.Collection;
8 import java.util.List;
9 import org.andromda.metafacades.uml.FrontEndParameter;
10
11 /**
12 * A Struts parameter is an object communicated between the client and the server. Typically form
13 * beans encapsulate such parameters.
14 *
15 * Metafacade interface to be used by AndroMDA cartridges.
16 */
17 public interface StrutsParameter
18 extends FrontEndParameter
19 {
20 /**
21 * Indicates the metafacade type (used for metafacade mappings).
22 *
23 * @return boolean always <code>true</code>
24 */
25 public boolean isStrutsParameterMetaType();
26
27 /**
28 * The backing list name for this parameter. This is useful if you want to be able to select the
29 * parameter value from a list.
30 * @return String
31 */
32 public String getBackingListName();
33
34 /**
35 * If this parameter is a collection type, this property will represent the fully qualified name
36 * of a class suitable for implementation. If the type is neither Collection, List, nor Set the
37 * type itself is assumed.
38 * @return String
39 */
40 public String getCollectionImplementationType();
41
42 /**
43 * If this parameter represents a date this method will return the format in which it must be
44 * represented. In case this format has not been specified by the any tagged value a default one
45 * will be taken.
46 * @return String
47 */
48 public String getDateFormat();
49
50 /**
51 * The key to lookup the documentation for this parameter.
52 * @return String
53 */
54 public String getDocumentationKey();
55
56 /**
57 * The documentation for this parameter, formatted to be inserted into a resource bundle.
58 * @return String
59 */
60 public String getDocumentationValue();
61
62 /**
63 * The number of columns for this field, null if default browser value is desired.
64 * @return Integer
65 */
66 public Integer getFieldColumnCount();
67
68 /**
69 * The number of rows for this field, null if default browser value is desired.
70 * @return Integer
71 */
72 public Integer getFieldRowCount();
73
74 /**
75 * If this is a controller operation argument these form fields will represent the form fields
76 * for all actions deferring to the controller operation.
77 * @return List<StrutsParameter>
78 */
79 public List<StrutsParameter> getFormFields();
80
81 /**
82 * Represents the jsp page in which this parameter will be used: either as a page variable,
83 * either as an action parameter (form or hyperlink).
84 * @return StrutsJsp
85 */
86 public StrutsJsp getJsp();
87
88 /**
89 * The name of the list holding the labels for this parameter. Only makes sense when the
90 * parameter is selectable.
91 * @return String
92 */
93 public String getLabelListName();
94
95 /**
96 * The default message key for this parameter.
97 * @return String
98 */
99 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 }