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.Collection;
008
009/**
010 * A front-end parameter is a parameter passed between front-end action states.
011 *
012 * Metafacade interface to be used by AndroMDA cartridges.
013 */
014public interface FrontEndParameter
015    extends ParameterFacade
016{
017    /**
018     * Indicates the metafacade type (used for metafacade mappings).
019     *
020     * @return boolean always <code>true</code>
021     */
022    public boolean isFrontEndParameterMetaType();
023
024    /**
025     * The action to which this parameter belongs (if it belongs to an action), otherwise it returns
026     * null.
027     * @return FrontEndAction
028     */
029    public FrontEndAction getAction();
030
031    /**
032     * Gets the controller operation to which this parameter belongs.
033     * @return FrontEndControllerOperation
034     */
035    public FrontEndControllerOperation getControllerOperation();
036
037    /**
038     * A collection of all possible attribute names of a table (this will only work when your table
039     * is modeled as an array..not a collection).
040     * @return Collection<String>
041     */
042    public Collection<String> getTableAttributeNames();
043
044    /**
045     * All the columns for this parameter if it represents a table variable. If a column is linked
046     * by an event (action) a FrontEndParameter instance is included in the return value, otherwise
047     * a plain String representing the column name.
048     * @return Collection<String>
049     */
050    public Collection<String> getTableColumnNames();
051
052    /**
053     * A list of all attributes which make up the table columns of this table (this only contains
054     * attributes when the table is represented by an array).
055     * @return Collection<String>
056     */
057    public Collection<String> getTableColumns();
058
059    /**
060     * Represents the view in which this parameter will be used.
061     * @return FrontEndView
062     */
063    public FrontEndView getView();
064
065    /**
066     * Indicates whether or not this is an action parameter or not.
067     * @return boolean
068     */
069    public boolean isActionParameter();
070
071    /**
072     * Indicates if this parameter is contained in a "front-end" use case.
073     * @return boolean
074     */
075    public boolean isContainedInFrontEndUseCase();
076
077    /**
078     * Indicates whether or not this parameter is an argument of a controller operation.
079     * @return boolean
080     */
081    public boolean isControllerOperationArgument();
082
083    /**
084     * Indicates whether or not this parameter represents a table.
085     * @return boolean
086     */
087    public boolean isTable();
088}