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