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 an operation modeled on a controller.
011 *
012 * Metafacade interface to be used by AndroMDA cartridges.
013 */
014public interface FrontEndControllerOperation
015    extends OperationFacade
016{
017    /**
018     * Indicates the metafacade type (used for metafacade mappings).
019     *
020     * @return boolean always <code>true</code>
021     */
022    public boolean isFrontEndControllerOperationMetaType();
023
024    /**
025     * The activity graph in which this controller operation is used.
026     * @return FrontEndActivityGraph
027     */
028    public FrontEndActivityGraph getActivityGraph();
029
030    /**
031     * All those actions that contain at least one front-end action state that is deferring to this
032     * operation.
033     * @return List<FrontEndAction>
034     */
035    public List<FrontEndAction> getDeferringActions();
036
037    /**
038     * The set of fields in the form made up form this controller operation's parameters.
039     * @return List<FrontEndParameter>
040     */
041    public List<FrontEndParameter> getFormFields();
042
043    /**
044     * For each front-end controller operation argument there must exist a form field for each
045     * action deferring to that operation. This form field must carry the same name and must be of
046     * the same type. True if this is the case, false otherwise.
047     * @return boolean
048     */
049    public boolean isAllArgumentsHaveFormFields();
050
051    /**
052     * Indicates if the owner of this operation is a controller.
053     * @return boolean
054     */
055    public boolean isOwnerIsController();
056}