1
2
3
4 package org.andromda.cartridges.bpm4struts.metafacades;
5
6 /***
7 * <p>
8 * A Struts parameter is an object communicated between the client
9 * and the server. Typically form beans encapsulate such
10 * parameters.
11 * </p>
12 *
13 * Metafacade interface to be used by AndroMDA cartridges.
14 */
15 public interface StrutsParameter
16 extends org.andromda.metafacades.uml.FrontEndParameter
17 {
18
19 /***
20 * Indicates the metafacade type (used for metafacade mappings).
21 *
22 * @return always <code>true</code>
23 */
24 public boolean isStrutsParameterMetaType();
25
26 /***
27 * <p>
28 * The backing list name for this parameter. This is useful if you
29 * want to be able to select the parameter value from a list.
30 * </p>
31 */
32 public java.lang.String getBackingListName();
33
34 /***
35 * <p>
36 * If this parameter is a collection type, this property will
37 * represent the fully qualified name of a class suitable for
38 * implementation. If the type is neither Collection, List, nor Set
39 * the type itself is assumed.
40 * </p>
41 */
42 public java.lang.String getCollectionImplementationType();
43
44 /***
45 * <p>
46 * If this parameter represents a date this method will return the
47 * format in which it must be represented. In case this format has
48 * not been specified by the any tagged value a default one will be
49 * taken.
50 * </p>
51 */
52 public java.lang.String getDateFormat();
53
54 /***
55 * <p>
56 * The key to lookup the documentation for this parameter.
57 * </p>
58 */
59 public java.lang.String getDocumentationKey();
60
61 /***
62 * <p>
63 * The documentation for this parameter, formatted to be inserted
64 * into a resource bundle.
65 * </p>
66 */
67 public java.lang.String getDocumentationValue();
68
69 /***
70 * <p>
71 * The number of columns for this field, null if default browser
72 * value is desired.
73 * </p>
74 */
75 public java.lang.Integer getFieldColumnCount();
76
77 /***
78 * <p>
79 * The number of rows for this field, null if default browser value
80 * is desired.
81 * </p>
82 */
83 public java.lang.Integer getFieldRowCount();
84
85 /***
86 * <p>
87 * If this is a controller operation argument these form fields
88 * will represent the form fields for all actions deferring to the
89 * controller operation.
90 * </p>
91 */
92 public java.util.List getFormFields();
93
94 /***
95 * <p>
96 * Represents the jsp page in which this parameter will be used:
97 * either as a page variable, either as an action parameter (form
98 * or hyperlink).
99 * </p>
100 */
101 public org.andromda.cartridges.bpm4struts.metafacades.StrutsJsp getJsp();
102
103 /***
104 * <p>
105 * The name of the list holding the labels for this parameter. Only
106 * makes sense when the parameter is selectable.
107 * </p>
108 */
109 public java.lang.String getLabelListName();
110
111 /***
112 * <p>
113 * The default message key for this parameter.
114 * </p>
115 */
116 public java.lang.String getMessageKey();
117
118 /***
119 * <p>
120 * The default message value for this parameter.
121 * </p>
122 */
123 public java.lang.String getMessageValue();
124
125 /***
126 * <p>
127 * The name of the array to be used for the multibox, this only
128 * makes sense when this parameter is actually a multibox.
129 * </p>
130 */
131 public java.lang.String getMultiboxPropertyName();
132
133 /***
134 * <p>
135 * The null value for the type of this parameter. For decimals this
136 * would be zero, for booleans this would be 'false', etc...
137 * </p>
138 */
139 public java.lang.String getNullValue();
140
141 /***
142 * <p>
143 * The key to lookup the online help documentation. This
144 * documentation is gathered from the documentation entered by the
145 * user, as well as analyzing the model.
146 * </p>
147 */
148 public java.lang.String getOnlineHelpKey();
149
150 /***
151 * <p>
152 * The online help documentation. This documentation is gathered
153 * from the documentation entered by the user, as well as analyzing
154 * the model. The format is HTML without any style.
155 * </p>
156 */
157 public java.lang.String getOnlineHelpValue();
158
159 /***
160 * <p>
161 * In case this parameter represents an option set using
162 * radiobuttons, this attribute is a positive integer and zero
163 * otherwise.
164 * </p>
165 */
166 public int getOptionCount();
167
168 /***
169 * <p>
170 * If this parameter is a choice between radio buttons, then you
171 * may use this method to retrieve the message keys for the
172 * resource bundle. The message keys hold the value to be displayed
173 * for the possible options.
174 * </p>
175 */
176 public java.util.List getOptionKeys();
177
178 /***
179 * <p>
180 * The values for the options. Only makes sense when the widget
181 * type is radiobutton. The property value may directly be
182 * specified usiing the tagged value.
183 * </p>
184 */
185 public java.util.List getOptionValues();
186
187 /***
188 * <p>
189 * The name of the operation that resets this parameter to its
190 * original value.
191 * </p>
192 */
193 public java.lang.String getResetName();
194
195 /***
196 * <p>
197 * The reset value for this parameter. The reset value is the
198 * non-null value to which this parameter is set by default between
199 * requests, you can use this method to be able to generate an
200 * application that will deploy and run with default data.
201 * </p>
202 */
203 public java.lang.String getResetValue();
204
205 /***
206 *
207 */
208 public org.andromda.cartridges.bpm4struts.metafacades.StrutsAction getStrutsAction();
209
210 /***
211 *
212 */
213 public java.lang.String getStyleId();
214
215 /***
216 * <p>
217 * Those actions that are targetting this table's columns, only
218 * makes sense when this parameter represents a table
219 * page-variable.
220 * </p>
221 */
222 public java.util.List getTableColumnActions(java.lang.String columnName);
223
224 /***
225 * <p>
226 * Returns the resource bundle key for this table's column, only
227 * returns a value when this parameter is a table.
228 * </p>
229 */
230 public java.lang.String getTableColumnMessageKey(java.lang.String columnName);
231
232 /***
233 * <p>
234 * Returns the resource bundle value for this table's column, only
235 * returns a value when this parameter is a table.
236 * </p>
237 */
238 public java.lang.String getTableColumnMessageValue(java.lang.String columnName);
239
240 /***
241 * <p>
242 * The class name of the decorator to use for the table.
243 * </p>
244 */
245 public java.lang.String getTableDecoratorClassName();
246
247 /***
248 * <p>
249 * The full path to the decorator class.
250 * </p>
251 */
252 public java.lang.String getTableDecoratorFullPath();
253
254 /***
255 * <p>
256 * The complete table decorator classname.
257 * </p>
258 */
259 public java.lang.String getTableDecoratorFullyQualifiedName();
260
261 /***
262 * <p>
263 * The package name of the decorator to use for the table.
264 * </p>
265 */
266 public java.lang.String getTableDecoratorPackageName();
267
268 /***
269 * <p>
270 * Tthe available types of export in a single String instance.
271 * </p>
272 */
273 public java.lang.String getTableExportTypes();
274
275 /***
276 * <p>
277 * The actions used when submitting forms for this table. Table
278 * actions that are hyperlinks are not included. It only makes
279 * sense to call this property on parameters that represent a table
280 * page-variable.
281 * </p>
282 */
283 public java.util.List getTableFormActions();
284
285 /***
286 * <p>
287 * The column which is chosen to be submitted by the action
288 * targetting the entire table. Only makes sense when there are
289 * actually global table actions present for this table parameter.
290 * </p>
291 */
292 public org.andromda.cartridges.bpm4struts.metafacades.StrutsParameter getTableGlobalActionParameter();
293
294 /***
295 * <p>
296 * Returns those actions that allow table rows to be checked and
297 * submitted. Only makes sense when this parameter represents a
298 * table page-variable.
299 * </p>
300 */
301 public java.util.Collection getTableGlobalActions();
302
303 /***
304 * <p>
305 * Those actions that are working on this table and are to be
306 * represented as hyperlinks. It only makes sense to call this
307 * property on parameters that represent a table page-variable.
308 * </p>
309 */
310 public java.util.List getTableHyperlinkActions();
311
312 /***
313 * <p>
314 * The maximum number of rows to be displayed in the table at the
315 * same time. This is also known as the page size. A value of zero
316 * or less will display all data in the same table (therefore also
317 * on the same page).
318 * </p>
319 */
320 public int getTableMaxRows();
321
322 /***
323 * <p>
324 * The time format for this parameter (if this parameter stores
325 * time).
326 * </p>
327 */
328 public java.lang.String getTimeFormat();
329
330 /***
331 *
332 */
333 public java.lang.String getTitleKey();
334
335 /***
336 *
337 */
338 public java.lang.String getTitleValue();
339
340 /***
341 * <p>
342 * The validator's 'validwhen' value, this is useful when the
343 * validation of a parameter depends on the validation of others.
344 * See the Struts validator plugin documentation for more
345 * information.
346 * </p>
347 */
348 public java.lang.String getValidWhen();
349
350 /***
351 * <p>
352 * Returns the arguments for this parameter's validators.
353 * </p>
354 */
355 public java.util.Collection getValidatorArgs(java.lang.String validatorType);
356
357 /***
358 * <p>
359 * The message key for this parameter, equivalent to
360 * getMessageKey().
361 * </p>
362 */
363 public java.lang.String getValidatorMsgKey();
364
365 /***
366 * <p>
367 * A collection of all the validator types for this parameter. Use
368 * this value in conjunction with the Struts validator plugin.
369 * </p>
370 */
371 public java.util.Collection getValidatorTypes();
372
373 /***
374 * <p>
375 * The validator arguments.
376 * </p>
377 */
378 public java.util.Collection getValidatorVars();
379
380 /***
381 * <p>
382 * The name of the list holding the values for this parameter. Only
383 * makes sense when the parameter is selectable.
384 * </p>
385 */
386 public java.lang.String getValueListName();
387
388 /***
389 * <p>
390 * The reset value for this parameter's value list. Only makes
391 * sense if this parameter is selectable.
392 * </p>
393 */
394 public java.lang.String getValueListResetValue();
395
396 /***
397 * <p>
398 * The widget type for this parameter, this value is the tagname
399 * for the Struts HTML taglib. This method is useful only when
400 * rendering forms.
401 * </p>
402 */
403 public java.lang.String getWidgetType();
404
405 /***
406 * <p>
407 * This property is used in model validation. It denotes whether
408 * all actions targetting this table page-variable take the same
409 * parameter (same name and type). Only makes sense when this
410 * parameter is actually a table page-variable.
411 * </p>
412 */
413 public boolean isAllGlobalTableActionsHaveSameParameter();
414
415 /***
416 * <p>
417 * True if this parameter is a date and it requires a calendar
418 * popup.
419 * </p>
420 */
421 public boolean isCalendarRequired();
422
423 /***
424 *
425 */
426 public boolean isCheckbox();
427
428 /***
429 *
430 */
431 public boolean isCombobox();
432
433 /***
434 * <p>
435 * True if the type of this parameter represents a date. This is
436 * equivalent to parameter.type.isDateType().
437 * </p>
438 */
439 public boolean isDate();
440
441 /***
442 *
443 */
444 public boolean isFile();
445
446 /***
447 *
448 */
449 public boolean isHiddenField();
450
451 /***
452 *
453 */
454 public boolean isHyperlink();
455
456 /***
457 *
458 */
459 public boolean isMultibox();
460
461 /***
462 * <p>
463 * True if this parameter is either an array type or
464 * java.util.Collection type.
465 * </p>
466 */
467 public boolean isMultiple();
468
469 /***
470 * <p>
471 * True if this parameter represents a password field.
472 * </p>
473 */
474 public boolean isPassword();
475
476 /***
477 *
478 */
479 public boolean isRadioButton();
480
481 /***
482 * <p>
483 * True if this parameter cannot be changed by the user, false
484 * otherwise.
485 * </p>
486 */
487 public boolean isReadOnly();
488
489 /***
490 * <p>
491 * True if the value of this parameter must be reset between
492 * requests (Struts requires this for specific types), false
493 * otherwise.
494 * </p>
495 */
496 public boolean isResetRequired();
497
498 /***
499 * <p>
500 * True if this parameter has a name that can properly be handled
501 * by Jakarta commons (this lib is used by Struts but contains a
502 * bug)
503 * </p>
504 */
505 public boolean isSafeNamePresent();
506
507 /***
508 * <p>
509 * Whether or not this parameter is selectable. In case this would
510 * be true this parameter always has a backing list, a value list
511 * and a list containing the labels.
512 * </p>
513 */
514 public boolean isSelectable();
515
516 /***
517 * <p>
518 * Whether or not this parameter should be reset between requests.
519 * This is different than resetRequired in that this is user
520 * specified.
521 * </p>
522 */
523 public boolean isShouldReset();
524
525 /***
526 * <p>
527 * Indicates if a table can be sorted by this parameter.
528 * </p>
529 */
530 public boolean isSortableBy();
531
532 /***
533 * <p>
534 * True if the date format is to be strictly respected. Otherwise
535 * the dateformatter used for the representation of this date is to
536 * be set to lenient.
537 * </p>
538 */
539 public boolean isStrictDateFormat();
540
541 /***
542 *
543 */
544 public boolean isTableDecoratorRequired();
545
546 /***
547 * <p>
548 * True if it is possible to export the table data to XML, CSV, PDF
549 * or Excel format.
550 * </p>
551 */
552 public boolean isTableExportable();
553
554 /***
555 * <p>
556 * True if this table has form actions that share the column
557 * widgets. It is not allowed to have different actions use
558 * different widgets on the same column.
559 * </p>
560 */
561 public boolean isTableFormActionSharingWidgets();
562
563 /***
564 * <p>
565 * True if this parameter represents a table column into which an
566 * hyperlink must be rendered. This property only makes sense when
567 * it has been called on parameters representing an actual table
568 * column. Note that the getTableColumns() operation also returns
569 * String instances.
570 * </p>
571 */
572 public boolean isTableHyperlinkColumn();
573
574 /***
575 * <p>
576 * True if it is possible to sort the columns of the table.
577 * </p>
578 */
579 public boolean isTableSortable();
580
581 /***
582 *
583 */
584 public boolean isTextArea();
585
586 /***
587 *
588 */
589 public boolean isTextField();
590
591 /***
592 * <p>
593 * Indicates if this parameter's type represents a time.
594 * </p>
595 */
596 public boolean isTime();
597
598 /***
599 * <p>
600 * True if this parameter requires some kind of validation. This
601 * means the collection of validator types is not empty.
602 * </p>
603 */
604 public boolean isValidationRequired();
605
606 }