/**
* <copyright>
* </copyright>
*
* $Id$
*/
package orgomg.cwm.objectmodel.behavioral;
import orgomg.cwm.objectmodel.core.Classifier;
import orgomg.cwm.objectmodel.core.Expression;
import orgomg.cwm.objectmodel.core.ModelElement;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Parameter</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* Parameters are used in the specification of operations, methods and events. A Parameter may include a name, type, and direction of communication.
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link orgomg.cwm.objectmodel.behavioral.Parameter#getDefaultValue <em>Default Value</em>}</li>
* <li>{@link orgomg.cwm.objectmodel.behavioral.Parameter#getKind <em>Kind</em>}</li>
* <li>{@link orgomg.cwm.objectmodel.behavioral.Parameter#getBehavioralFeature <em>Behavioral Feature</em>}</li>
* <li>{@link orgomg.cwm.objectmodel.behavioral.Parameter#getEvent <em>Event</em>}</li>
* <li>{@link orgomg.cwm.objectmodel.behavioral.Parameter#getType <em>Type</em>}</li>
* </ul>
* </p>
*
* @see orgomg.cwm.objectmodel.behavioral.BehavioralPackage#getParameter()
* @model
* @generated
*/
public interface Parameter extends ModelElement {
/**
* Returns the value of the '<em><b>Default Value</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* An Expression whose evaluation yields a value to be used when no argument is supplied for the Parameter.
* <!-- end-model-doc -->
* @return the value of the '<em>Default Value</em>' containment reference.
* @see #setDefaultValue(Expression)
* @see orgomg.cwm.objectmodel.behavioral.BehavioralPackage#getParameter_DefaultValue()
* @model containment="true"
* @generated
*/
Expression getDefaultValue();
/**
* Sets the value of the '{@link orgomg.cwm.objectmodel.behavioral.Parameter#getDefaultValue <em>Default Value</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Default Value</em>' containment reference.
* @see #getDefaultValue()
* @generated
*/
void setDefaultValue(Expression value);
/**
* Returns the value of the '<em><b>Kind</b></em>' attribute.
* The literals are from the enumeration {@link orgomg.cwm.objectmodel.behavioral.ParameterDirectionKind}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Specifies what kind of a Parameter is required.
* <!-- end-model-doc -->
* @return the value of the '<em>Kind</em>' attribute.
* @see orgomg.cwm.objectmodel.behavioral.ParameterDirectionKind
* @see #setKind(ParameterDirectionKind)
* @see orgomg.cwm.objectmodel.behavioral.BehavioralPackage#getParameter_Kind()
* @model
* @generated
*/
ParameterDirectionKind getKind();
/**
* Sets the value of the '{@link orgomg.cwm.objectmodel.behavioral.Parameter#getKind <em>Kind</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Kind</em>' attribute.
* @see orgomg.cwm.objectmodel.behavioral.ParameterDirectionKind
* @see #getKind()
* @generated
*/
void setKind(ParameterDirectionKind value);
/**
* Returns the value of the '<em><b>Behavioral Feature</b></em>' container reference.
* It is bidirectional and its opposite is '{@link orgomg.cwm.objectmodel.behavioral.BehavioralFeature#getParameter <em>Parameter</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Identifies the BehavioralFeature instance owner of a Parameter instance.
* <!-- end-model-doc -->
* @return the value of the '<em>Behavioral Feature</em>' container reference.
* @see #setBehavioralFeature(BehavioralFeature)
* @see orgomg.cwm.objectmodel.behavioral.BehavioralPackage#getParameter_BehavioralFeature()
* @see orgomg.cwm.objectmodel.behavioral.BehavioralFeature#getParameter
* @model opposite="parameter"
* @generated
*/
BehavioralFeature getBehavioralFeature();
/**
* Sets the value of the '{@link orgomg.cwm.objectmodel.behavioral.Parameter#getBehavioralFeature <em>Behavioral Feature</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Behavioral Feature</em>' container reference.
* @see #getBehavioralFeature()
* @generated
*/
void setBehavioralFeature(BehavioralFeature value);
/**
* Returns the value of the '<em><b>Event</b></em>' container reference.
* It is bidirectional and its opposite is '{@link orgomg.cwm.objectmodel.behavioral.Event#getParameter <em>Parameter</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Identifies the Event owning a set of Parameter instances.
* <!-- end-model-doc -->
* @return the value of the '<em>Event</em>' container reference.
* @see #setEvent(Event)
* @see orgomg.cwm.objectmodel.behavioral.BehavioralPackage#getParameter_Event()
* @see orgomg.cwm.objectmodel.behavioral.Event#getParameter
* @model opposite="parameter"
* @generated
*/
Event getEvent();
/**
* Sets the value of the '{@link orgomg.cwm.objectmodel.behavioral.Parameter#getEvent <em>Event</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Event</em>' container reference.
* @see #getEvent()
* @generated
*/
void setEvent(Event value);
/**
* Returns the value of the '<em><b>Type</b></em>' reference.
* It is bidirectional and its opposite is '{@link orgomg.cwm.objectmodel.core.Classifier#getParameter <em>Parameter</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Identifies the Classifier instance the defines the type of a Parameter.
* <!-- end-model-doc -->
* @return the value of the '<em>Type</em>' reference.
* @see #setType(Classifier)
* @see orgomg.cwm.objectmodel.behavioral.BehavioralPackage#getParameter_Type()
* @see orgomg.cwm.objectmodel.core.Classifier#getParameter
* @model opposite="parameter" required="true"
* @generated
*/
Classifier getType();
/**
* Sets the value of the '{@link orgomg.cwm.objectmodel.behavioral.Parameter#getType <em>Type</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Type</em>' reference.
* @see #getType()
* @generated
*/
void setType(Classifier value);
} // Parameter