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 java.util.Map;
010import org.andromda.metafacades.uml.FrontEndUseCase;
011
012/**
013 * Represents a JSF use case.
014 *
015 * Metafacade interface to be used by AndroMDA cartridges.
016 */
017public interface JSFUseCase
018    extends FrontEndUseCase
019{
020    /**
021     * Indicates the metafacade type (used for metafacade mappings).
022     *
023     * @return boolean always <code>true</code>
024     */
025    public boolean isJSFUseCaseMetaType();
026
027    /**
028     * The name of the action class that forwards to this use case.
029     * @return String
030     */
031    public String getActionClassName();
032
033    /**
034     * All forwards in this use case that are represented as actions.
035     * @return List<JSFAction>
036     */
037    public List<JSFAction> getActionForwards();
038
039    /**
040     * TODO: Model Documentation for
041     * JSFUseCase.getActionRoles
042     * @return String
043     */
044    public String getActionRoles();
045
046    /**
047     * Constains all forwards includes regular FrontEndForwards and all actiion forwards.
048     * @return List
049     */
050    public List getAllForwards();
051
052    /**
053     * A map with keys sorted alphabetically, normalized across all different use-cases, views, etc.
054     * @return Map
055     */
056    public Map getAllMessages();
057
058    /**
059     * All views for the application (not just the ones belonging to this use case).
060     * @return Collection<JSFView>
061     */
062    public Collection<JSFView> getAllViews();
063
064    /**
065     * The name of the action on the controller that executions this use case.
066     * @return String
067     */
068    public String getControllerAction();
069
070    /**
071     * The key under which to store the action form passed along in this in this use-case.
072     * @return String
073     */
074    public String getFormKey();
075
076    /**
077     * The name that will cause a forward to use case.
078     * @return String
079     */
080    public String getForwardName();
081
082    /**
083     * All forwards contained in this use case.
084     * @return List<JSFForward>
085     */
086    public List<JSFForward> getForwards();
087
088    /**
089     * The name of the class that stores all the forwards paths.
090     * @return String
091     */
092    public String getForwardsClassName();
093
094    /**
095     * The fully qualified name of the action class that forwards to this use case.
096     * @return String
097     */
098    public String getFullyQualifiedActionClassName();
099
100    /**
101     * The fully qualified path to the action class that forwards to this use case.
102     * @return String
103     */
104    public String getFullyQualifiedActionClassPath();
105
106    /**
107     * The path of the initial target going into this use case.
108     * @return String
109     */
110    public String getInitialTargetPath();
111
112    /**
113     * TODO: Model Documentation for
114     * JSFUseCase.getNavigationChildren
115     * @return Collection
116     */
117    public Collection getNavigationChildren();
118
119    /**
120     * TODO: Model Documentation for
121     * JSFUseCase.getNavigationParents
122     * @return Collection
123     */
124    public Collection getNavigationParents();
125
126    /**
127     * Retrieves all navigation rules for the faces-config.xml
128     * @return Collection
129     */
130    public Collection getNavigationRules();
131
132    /**
133     * The path to which this use case points.
134     * @return String
135     */
136    public String getPath();
137
138    /**
139     * The root path for this use case (this is the path the directory containing the use case's
140     * resources).
141     * @return String
142     */
143    public String getPathRoot();
144
145    /**
146     * The forward name for the portlet 'edit' page.
147     * @return String
148     */
149    public String getPortletEditForwardName();
150
151    /**
152     * The path to the portlet 'edit' page.
153     * @return String
154     */
155    public String getPortletEditPath();
156
157    /**
158     * The forward name for the portlet 'help' page.
159     * @return String
160     */
161    public String getPortletHelpForwardName();
162
163    /**
164     * The path to the 'help' page of the portlet.
165     * @return String
166     */
167    public String getPortletHelpPath();
168
169    /**
170     * The forward name for the portlet 'view' page.
171     * @return String
172     */
173    public String getPortletViewForwardName();
174
175    /**
176     * The path to the portlet 'view' page.
177     * @return String
178     */
179    public String getPortletViewPath();
180
181    /**
182     * Any portlet preferences associated to this use case.
183     * @return JSFPortletPreferences
184     */
185    public JSFPortletPreferences getPreferences();
186
187    /**
188     * All use cases that are labled as registration use cases.
189     * @return List<JSFUseCase>
190     */
191    public List<JSFUseCase> getRegistrationUseCases();
192
193    /**
194     * The title message key for this use-case.
195     * @return String
196     */
197    public String getTitleKey();
198
199    /**
200     * The title message value for this use-case.
201     * @return String
202     */
203    public String getTitleValue();
204
205    /**
206     * Indicates that at least one client/server parameter found in the collection of existing
207     * use-cases requires validation.
208     * @return boolean
209     */
210    public boolean isApplicationValidationRequired();
211
212    /**
213     * Indicates whether or not the initial target of this use case is a view or not.
214     * @return boolean
215     */
216    public boolean isInitialTargetView();
217
218    /**
219     * Indicates whether or not this is a front-end registration use case.  Only one use case can be
220     * labeled as a 'registration' use case.
221     * @return boolean
222     */
223    public boolean isRegistrationUseCase();
224
225    /**
226     * Indicates whether or not at least one parameter in this use-case require validation.
227     * @return boolean
228     */
229    public boolean isValidationRequired();
230
231    /**
232     * Indicates whether or not at least one view in the use case has the same name as this use
233     * case.
234     * @return boolean
235     */
236    public boolean isViewHasNameOfUseCase();
237}