001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.cartridges.jsf2.metafacades;
006
007import java.util.Collection;
008import java.util.List;
009import org.andromda.metafacades.uml.AssociationEndFacade;
010import org.andromda.metafacades.uml.FrontEndParameter;
011
012/**
013 * Represents a parameter in a JSF front-end.
014 *
015 * Metafacade interface to be used by AndroMDA cartridges.
016 */
017public interface JSFParameter
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 isJSFParameterMetaType();
026
027    /**
028     * All the annotations for this parameter.
029     * @return Collection
030     */
031    public Collection getAnnotations();
032
033    /**
034     * All attributes belonging to this parameter's type.
035     * @return Collection
036     */
037    public Collection getAttributes();
038
039    /**
040     * The backing list name for this parameter. This is useful if you want to be able to select the
041     * parameter value from a list (i.e. a drop-down select input type).
042     * @return String
043     */
044    public String getBackingListName();
045
046    /**
047     * The name of the backing value for this parameter (only used with collections and arrays that
048     * are input type table).
049     * @return String
050     */
051    public String getBackingValueName();
052
053    /**
054     * The name of the date formatter for this parameter (if this parameter represents a date).
055     * @return String
056     */
057    public String getDateFormatter();
058
059    /**
060     * A resource message key suited for the parameter's documentation.
061     * @return String
062     */
063    public String getDocumentationKey();
064
065    /**
066     * A resource message value suited for the parameter's documentation.
067     * @return String
068     */
069    public String getDocumentationValue();
070
071    /**
072     * The dummy value for this parameter. The dummy value is used for setting the dummy information
073     * when dummyData is enabled.
074     * @return String
075     */
076    public String getDummyValue();
077
078    /**
079     * The name of the property used for indicating whether or not a form attribute has been set at
080     * least once.
081     * @return String
082     */
083    public String getFormAttributeSetProperty();
084
085    /**
086     * If this parameter represents a date or time this method will return the format in which it
087     * must be represented. In the event this format has not been specified by the any tagged value
088     * the default will be used.
089     * @return String
090     */
091    public String getFormat();
092
093    /**
094     * A comma separated list of the input table identifier columns (these are the columns that
095     * uniquely define a row in an input table).
096     * @return String
097     */
098    public String getInputTableIdentifierColumns();
099
100    /**
101     * The name of the label list for this parameter. The label list name is the name of the list
102     * storing the labels for the possible values of this parameter (typically used for the labels
103     * of a drop-down select lists).
104     * @return String
105     */
106    public String getLabelListName();
107
108    /**
109     * The max length allowed in the input component
110     * @return String
111     */
112    public String getMaxLength();
113
114    /**
115     * The default message key for this parameter.
116     * @return String
117     */
118    public String getMessageKey();
119
120    /**
121     * The default message value for this parameter.
122     * @return String
123     */
124    public String getMessageValue();
125
126    /**
127     * All navigation association ends belonging to this parameter's type.
128     * @return Collection<AssociationEndFacade>
129     */
130    public Collection<AssociationEndFacade> getNavigableAssociationEnds();
131
132    /**
133     * Actions used when submitting forms for this table. It only makes sense to call this property
134     * on parameters that represent a table page-variable.
135     * @return List<JSFAction>
136     */
137    public List<JSFAction> getTableActions();
138
139    /**
140     * Those actions that are targetting the given column, only makes sense when this parameter
141     * represents a table view-variable.
142     * @param columnName String
143     * @return List
144     */
145    public List getTableColumnActions(String columnName);
146
147    /**
148     * TODO: Model Documentation for
149     * org.andromda.cartridges.jsf2.metafacades.JSFParameter.getTableColumnMessageKey
150     * @param columnName String
151     * @return String
152     */
153    public String getTableColumnMessageKey(String columnName);
154
155    /**
156     * TODO: Model Documentation for
157     * org.andromda.cartridges.jsf2.metafacades.JSFParameter.getTableColumnMessageValue
158     * @param columnName String
159     * @return String
160     */
161    public String getTableColumnMessageValue(String columnName);
162
163    /**
164     * Actions used when submitting forms for this table. Table actions that are hyperlinks are not
165     * included. It only makes sense to call this property on parameters that represent a table
166     * page-variable.
167     * @return List<JSFAction>
168     */
169    public List<JSFAction> getTableFormActions();
170
171    /**
172     * Actions that are working with this table and are to be represented as hyperlinks. This only
173     * makes sense on a parameter that represents a table page variable.
174     * @return List<JSFAction>
175     */
176    public List<JSFAction> getTableHyperlinkActions();
177
178    /**
179     * The name of the property that Indicates whether or not the table should be sorted ascending
180     * (if this parameter represents a table).
181     * @return String
182     */
183    public String getTableSortAscendingProperty();
184
185    /**
186     * The name of the property storing the column to sort by if this parameter represents a table.
187     * @return String
188     */
189    public String getTableSortColumnProperty();
190
191    /**
192     * The name of the time formatter (if this parameter represents a time).
193     * @return String
194     */
195    public String getTimeFormatter();
196
197    /**
198     * The validator's 'validwhen' value, this is useful when the validation of a parameter depends
199     * on the validation of others. See the apache commons-validator documentation for more
200     * information.
201     * @return String
202     */
203    public String getValidWhen();
204
205    /**
206     * Gets the arguments for this parameter's validators.
207     * @param validatorType String
208     * @return Collection
209     */
210    public Collection getValidatorArgs(String validatorType);
211
212    /**
213     * All the validator types for this parameter.
214     * @return Collection
215     */
216    public Collection getValidatorTypes();
217
218    /**
219     * The validator variables.
220     * @return Collection
221     */
222    public Collection getValidatorVars();
223
224    /**
225     * The dummy value for a value list.
226     * @return String
227     */
228    public String getValueListDummyValue();
229
230    /**
231     * Stores the name of the value list for this parameter; this list stores the possible values
232     * that this parameter may be (typically used for the values of a drop-down select list).
233     * @return String
234     */
235    public String getValueListName();
236
237    /**
238     * Indicates if a backing value is required for this parameter.
239     * @return boolean
240     */
241    public boolean isBackingValueRequired();
242
243    /**
244     * Indicates if this parameter is 'complex', that is: its of a complex type (has at least one
245     * attribute or association).
246     * @return boolean
247     */
248    public boolean isComplex();
249
250    /**
251     * Indicates whether or not this parameter uses the equal validator.
252     * @return boolean
253     */
254    public boolean isEqualValidator();
255
256    /**
257     * Indicates if this parameter represents a checkbox widget.
258     * @return boolean
259     */
260    public boolean isInputCheckbox();
261
262    /**
263     * Indicates whether or not this is a file input type.
264     * @return boolean
265     */
266    public boolean isInputFile();
267
268    /**
269     * Indicates whether or not this parameter represents a hidden input widget.
270     * @return boolean
271     */
272    public boolean isInputHidden();
273
274    /**
275     * Indicates whether or not this type represents an input multibox.
276     * @return boolean
277     */
278    public boolean isInputMultibox();
279
280    /**
281     * Indicates whether or not this parameter should be rendered as an input radio widget.
282     * @return boolean
283     */
284    public boolean isInputRadio();
285
286    /**
287     * Indicates whether or not this parameter represents an input "secret" widget (i.e. password).
288     * @return boolean
289     */
290    public boolean isInputSecret();
291
292    /**
293     * Indicates whether or not this parameter represents an input select widget.
294     * @return boolean
295     */
296    public boolean isInputSelect();
297
298    /**
299     * Indicates whether or not this is an table input type.
300     * @return boolean
301     */
302    public boolean isInputTable();
303
304    /**
305     * Indicates whether or not this parameter should be rendered as a text input widget.
306     * @return boolean
307     */
308    public boolean isInputText();
309
310    /**
311     * Indicates if this parameter represents as an input text area widget.
312     * @return boolean
313     */
314    public boolean isInputTextarea();
315
316    /**
317     * Whether or not the parameter is a "pageable table", that is a table that supports paging
318     * (i.e. DB paging).
319     * @return boolean
320     */
321    public boolean isPageableTable();
322
323    /**
324     * Indicates whether or not this field should be rendered as plain text (not as a widget).
325     * @return boolean
326     */
327    public boolean isPlaintext();
328
329    /**
330     * Indicates if this parameter can only be read and not modified.
331     * @return boolean
332     */
333    public boolean isReadOnly();
334
335    /**
336     * Indicates if this parameter's value should be reset or not after an action has been performed
337     * with this parameter.
338     * @return boolean
339     */
340    public boolean isReset();
341
342    /**
343     * Indicates whether or not this parameter is selectable or not (that is: it can be selected
344     * from a list of values).
345     * @return boolean
346     */
347    public boolean isSelectable();
348
349    /**
350     * Indicates where or not the date format is to be strictly respected. Otherwise the date
351     * formatter used for the representation of this date is to be set to lenient.
352     * @return boolean
353     */
354    public boolean isStrictDateFormat();
355
356    /**
357     * Indicates whether or not this parameter requires some kind of validation (the collection of
358     * validator types is not empty).
359     * @return boolean
360     */
361    public boolean isValidationRequired();
362}