001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.cartridges.bpm4struts.metafacades;
006
007import java.util.List;
008import java.util.Map;
009import javax.swing.tree.TreeNode;
010import org.andromda.metafacades.uml.FrontEndUseCase;
011
012/**
013 * A Struts use-case represents a set of related client/server requests and communication.
014 *
015 * Metafacade interface to be used by AndroMDA cartridges.
016 */
017public interface StrutsUseCase
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 isStrutsUseCaseMetaType();
026
027    /**
028     * This use-case's action path.
029     * @return String
030     */
031    public String getActionPath();
032
033    /**
034     * The root of the action path.
035     * @return String
036     */
037    public String getActionPathRoot();
038
039    /**
040     * Returns the action roles corresponding to this use-case's action, as found in the struts
041     * deployment descriptor. The action roles specifiy the roles in which the user must be in order
042     * to be authorized to call the action. One of the roles must be satisfied.
043     * @return String
044     */
045    public String getActionRoles();
046
047    /**
048     * A map with keys sorted alphabetically, normalized across all different use-cases and pages
049     * etc..
050     * @return Map
051     */
052    public Map getAllMessages();
053
054    /**
055     * This method returns all pages in the application. A page is an action state with the
056     * FrontEndView stereotype.
057     * @return List<StrutsJsp>
058     */
059    public List<StrutsJsp> getAllPages();
060
061    /**
062     * The root node of the application usecase hierarchy. Only makes sense when this usecase is an
063     * application usecase. Each usecase is only listed once in it's subtree, meaning when cycles ar
064     * edetected in the applicaion usecase graph the usecase will not be added when it already
065     * exists as an ancestor.
066     * @return TreeNode
067     */
068    public TreeNode getApplicationHierarchyRoot();
069
070    /**
071     * The name of the file containing specific styles for this use-case only.
072     * @return String
073     */
074    public String getCssFileName();
075
076    /**
077     * Returns the form fields used in this use-case, in fact these are all the parameters used in
078     * client/server communication for this use-case.
079     * @return List<StrutsParameter>
080     */
081    public List<StrutsParameter> getFormFields();
082
083    /**
084     * The key under which to store the forms contained in this use-case.
085     * @return String
086     */
087    public String getFormKey();
088
089    /**
090     * The root of the hierarchy of application usecases where this usecase is at the top. It is
091     * possible not all usecases are included in the descendants, they can be found in the
092     * collection of ancestor nodes.
093     * @return TreeNode
094     */
095    public TreeNode getHierarchyRoot();
096
097    /**
098     * The full path to this use-case's online help action. The returned String does not have a
099     * suffix such as '.do'.
100     * @return String
101     */
102    public String getOnlineHelpActionPath();
103
104    /**
105     * The key to lookup the online help documentation. This documentation is gathered from the
106     * documentation entered by the user, as well as analyzing the model.
107     * @return String
108     */
109    public String getOnlineHelpKey();
110
111    /**
112     * The full path to this use-case's online help page. The returned String does not have a suffix
113     * such as '.jsp'.
114     * @return String
115     */
116    public String getOnlineHelpPagePath();
117
118    /**
119     * The online help documentation. This documentation is gathered from the documentation entered
120     * by the user, as well as analyzing the model. The format is HTML without any style.
121     * @return String
122     */
123    public String getOnlineHelpValue();
124
125    /**
126     * The variables for all pages in this use-case. A parameter qualifies to be a variable when it
127     * explicitly and directly receives it via an action.
128     * @return List<StrutsParameter>
129     */
130    public List<StrutsParameter> getPageVariables();
131
132    /**
133     * This method returns all pages in the use-case. A page is an action state with the
134     * FrontEndView stereotype.
135     * @return List<StrutsJsp>
136     */
137    public List<StrutsJsp> getPages();
138
139    /**
140     * The title message key for this use-case.
141     * @return String
142     */
143    public String getTitleKey();
144
145    /**
146     * The title message value for this use-case.
147     * @return String
148     */
149    public String getTitleValue();
150
151    /**
152     * True if this use-case is where the application starts.
153     * @return boolean
154     */
155    public boolean isApplicationUseCase();
156
157    /**
158     * True if at least one client/server parameter found in the collection of existing use-cases
159     * requires validation.
160     * @return boolean
161     */
162    public boolean isApplicationValidationRequired();
163
164    /**
165     * TODO: Model Documentation for
166     * org.andromda.cartridges.bpm4struts.metafacades.StrutsUseCase.cyclic
167     * @return boolean
168     */
169    public boolean isCyclic();
170
171    /**
172     * True if some client/server parameters require validation for this use-case.
173     * @return boolean
174     */
175    public boolean isValidationRequired();
176}