001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.metafacades.uml;
006
007/**
008 * Specification of an argument used to pass information into or out of an invocation of a
009 * behavioral feature. Parameters are allowed to be treated as connectable elements. Parameters have
010 * support for streaming, exceptions, and parameter sets.
011 *
012 * Metafacade interface to be used by AndroMDA cartridges.
013 */
014public interface ParameterFacade
015    extends ModelElementFacade
016{
017    /**
018     * Indicates the metafacade type (used for metafacade mappings).
019     *
020     * @return boolean always <code>true</code>
021     */
022    public boolean isParameterFacadeMetaType();
023
024    /**
025     * TODO: Model Documentation for org.andromda.metafacades.uml.ParameterFacade.defaultValue
026     * @return String
027     */
028    public String getDefaultValue();
029
030    /**
031     * UML2: A representation of the literals of the enumeration 'Parameter Effect Kind': CREATE,
032     * READ, UPDATE, DELETE. The datatype ParameterEffectKind is an enumeration that indicates the
033     * effect of a behavior on values passed in or out of its parameters.
034     * @return String
035     */
036    public String getEffect();
037
038    /**
039     * If this parameter is located on an event, this will represent that event.
040     * @return EventFacade
041     */
042    public EventFacade getEvent();
043
044    /**
045     * The name to use for accessors getting this parameter from a bean.
046     * @return String
047     */
048    public String getGetterName();
049
050    /**
051     * Fully Qualified TypeName, determined in part by multiplicity (for UML2). For UML14, same as
052     * getterName.
053     * @return String
054     */
055    public String getGetterSetterTypeName();
056
057    /**
058     * Fully Qualified implementation class of TypeName, determined in part by multiplicity (for
059     * UML2). If upper multiplicity =1, same as getterSetterTypeName.
060     * @return String
061     */
062    public String getGetterSetterTypeNameImpl();
063
064    /**
065     * the lower value for the multiplicity
066     * -only applicable for UML2
067     * @return int
068     */
069    public int getLower();
070
071    /**
072     * If this parameter is located on an operation, this will represent that operation.
073     * @return OperationFacade
074     */
075    public OperationFacade getOperation();
076
077    /**
078     * The name to use for accessors getting this parameter in a bean.
079     * @return String
080     */
081    public String getSetterName();
082
083    /**
084     * A Classifier is a classification of instances - it describes a set of instances that have
085     * features
086     * in common. Can specify a generalization hierarchy by referencing its general classifiers. It
087     * may be
088     * a Class, DataType, PrimitiveType, Association, Collaboration, UseCase, etc. Can specify a
089     * generalization hierarchy by referencing its general classifiers. Has the capability to own
090     * collaboration uses. These collaboration uses link a collaboration with the classifier to give
091     * a
092     * description of the workings of the classifier. Classifier is defined to be a kind of
093     * templateable
094     * element so that a classifier can be parameterized. It is also defined to be a kind of
095     * parameterable
096     * element so that a classifier can be a formal template parameter.
097     * @return ClassifierFacade
098     */
099    public ClassifierFacade getType();
100
101    /**
102     * the upper value of the multiplicity (will be -1 for *)
103     * -only applicable for UML2
104     * @return int
105     */
106    public int getUpper();
107
108    /**
109     * Indicates if the default value is present.
110     * @return boolean
111     */
112    public boolean isDefaultValuePresent();
113
114    /**
115     * UML2: Returns the value of the 'Is Exception' attribute. The default value is "false". Tells
116     * whether an output parameter may emit a value to the exclusion of the other outputs.
117     * @return boolean
118     */
119    public boolean isException();
120
121    /**
122     * True if this parameter is an 'in' parameter.
123     * @return boolean
124     */
125    public boolean isInParameter();
126
127    /**
128     * True if this parameter is an inout parameter.
129     * @return boolean
130     */
131    public boolean isInoutParameter();
132
133    /**
134     * If upper>1 or upper==unlimited. Only applies to UML2. For UML14, always false.
135     * @return boolean
136     */
137    public boolean isMany();
138
139    /**
140     * UML2 Only: Is parameter ordered within the Collection type. Ordered+Unique determines the
141     * implementation Collection Type. For UML14, always false.
142     * @return boolean
143     */
144    public boolean isOrdered();
145
146    /**
147     * True if this parameter is an 'out' parameter.
148     * @return boolean
149     */
150    public boolean isOutParameter();
151
152    /**
153     * True if this parameter is readable, aka an in-parameter, or this feature is unspecified.
154     * @return boolean
155     */
156    public boolean isReadable();
157
158    /**
159     * Whether or not this parameter is considered required (i.e must a non-empty value).
160     * @return boolean
161     */
162    public boolean isRequired();
163
164    /**
165     * Whether or not this parameter represents a return parameter.
166     * @return boolean
167     */
168    public boolean isReturn();
169
170    /**
171     * If Parameter type isMany (UML2), is the parameter unique within the Collection. Unique+Sorted
172     * determines pareter implementation type. For UML14, always false.
173     * @return boolean
174     */
175    public boolean isUnique();
176
177    /**
178     * True if this parameter is writable, aka an out-parameter, or this feature is unspecified.
179     * @return boolean
180     */
181    public boolean isWritable();
182}