001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.metafacades.uml;
006
007import java.util.List;
008
009/**
010 * Represents a "front-end" action. An action is some action that is taken when a front-end even
011 * occurs.
012 *
013 * Metafacade interface to be used by AndroMDA cartridges.
014 */
015public interface FrontEndAction
016    extends FrontEndForward
017{
018    /**
019     * Indicates the metafacade type (used for metafacade mappings).
020     *
021     * @return boolean always <code>true</code>
022     */
023    public boolean isFrontEndActionMetaType();
024
025    /**
026     * Finds the parameter on this action having the given name, if no parameter is found, null is
027     * returned instead.
028     * @param name String
029     * @return ParameterFacade
030     */
031    public ParameterFacade findParameter(String name);
032
033    /**
034     * All action forwards for this foward. Each action forward either calls a view or another
035     * use-case (which is essentially an action).
036     * @return List<FrontEndForward>
037     */
038    public List<FrontEndForward> getActionForwards();
039
040    /**
041     * All action states visited by this action.
042     * @return List<FrontEndActionState>
043     */
044    public List<FrontEndActionState> getActionStates();
045
046    /**
047     * The controller that will handle the execution of this front-end action. This controller is
048     * set as the context of the activity graph (and therefore also of the use-case).
049     * @return FrontEndController
050     */
051    public FrontEndController getController();
052
053    /**
054     * All the transitions coming out of decision points. These transitions should all carry guards.
055     * @return List<FrontEndForward>
056     */
057    public List<FrontEndForward> getDecisionTransitions();
058
059    /**
060     * The controller operations to which this action defers, the order is preserved.
061     * @return List<FrontEndControllerOperation>
062     */
063    public List<FrontEndControllerOperation> getDeferredOperations();
064
065    /**
066     * Form fields for this action. Form fields are those parameters that can be altered by the user
067     * on a corresponding view at runtime.
068     * @return List<FrontEndParameter>
069     */
070    public List<FrontEndParameter> getFormFields();
071
072    /**
073     * The StateVertex (FrontEndView or PseudostateFacade) on which this action can be triggered.
074     * @return StateVertexFacade
075     */
076    public StateVertexFacade getInput();
077
078    /**
079     * All parameters sent by this "front-end" action.
080     * @return List<FrontEndParameter>
081     */
082    public List<FrontEndParameter> getParameters();
083
084    /**
085     * All views that can be possibly targetted by triggering this action.
086     * @return List<FrontEndView>
087     */
088    public List<FrontEndView> getTargetViews();
089
090    /**
091     * All the transitions that make up this action, this directly maps onto the forwards.
092     * @return List<FrontEndForward>
093     */
094    public List<FrontEndForward> getTransitions();
095
096    /**
097     * Indicates if this action represents the beginning of the front-end use case or not.
098     * @return boolean
099     */
100    public boolean isUseCaseStart();
101}