/**
* <copyright>
* </copyright>
*
* $Id$
*/
package orgomg.cwm.foundation.expressions;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import orgomg.cwm.objectmodel.core.CorePackage;
/**
* <!-- begin-user-doc -->
* The <b>Package</b> for the model.
* It contains accessors for the meta objects to represent
* <ul>
* <li>each class,</li>
* <li>each feature of each class,</li>
* <li>each enum,</li>
* <li>and each data type</li>
* </ul>
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The Expressions package depends on the following packages:
*
* org.omg::CWM::ObjectModel::Core
*
* The CWM Expressions metamodel provides basic support for the definition of expression trees within the CWM. The intent of the Expressions metamodel is to provide a place for other CWM packages (such as Transformation) and CWM compliant tools to record shared expressions in a common form that can be used for interchange and lineage tracking.
*
* The expression concept in the CWM Foundation takes a functional view of expression trees, resulting in the ability of relatively few expression types to represent a broad range of expressions. Every function or traditional mathematical operator that appears in an expression hierarchy is represented as a FeatureNode. For example, the arithmetic plus operation �a + b� can be thought of as the function �sum(a, b).� The semantics of a particular function or operation are left to specific tool implementations and are not captured by the CWM.
*
* The hierarchical nature of the CWM�s representation of expressions is achieved by the recursive nature of the OperationArgument association. This association allows the sub-hierarchies within an expression to be treated as actual parameters of their parent nodes.
*
* OCL Representation of Expressions Constraints
*
* [C-5-1] A FeatureNode that has parameters other than the"this" parameter represents a Feature that is also an Operation.
* context FeatureNode inv:
* if self.feature.ownerScope = #instance
* then self.argument->size > 1 implies
* self.feature.oclIsKindOf(Operation)
* else self.argument->size > 0 implies
* self.feature.oclIsKindOf(Operation)
* endif
*
* [C-5-2] If the FeatureNode represents an instance-scope feature, the first argument is a "this" or "self" argument; that is, the object invoking the feature. The convention is enforced by checking that the type of the first argument is the same as the type of the feature.
* context FeatureNode inv:
* self.feature.ownerScope = #instance implies
* self.argument->first.type.allFeatures->includes(self.feature)
*
* [C-5-3] If the FeatureNode represents a BehavioralFeature, the number of arguments must be equal to the number of the BehavioralFeature�s parameters, plus one for the �this� parameter if the BehavioralFeature is of instance scope.
* context FeatureNode inv:
* self.feature.oclIsKindOf(BehavioralFeature) implies
* (if self.feature.ownerScope = #instance
* then self.argument->size =
* self.feature.oclAsType(BehavioralFeature).parameters->size + 1
* else self.argument->size =
* self.feature.oclAsType(BehavioralFeature).parameters->size
* endif)
* <!-- end-model-doc -->
* @see orgomg.cwm.foundation.expressions.ExpressionsFactory
* @model kind="package"
* @generated
*/
public interface ExpressionsPackage extends EPackage {
/**
* The package name.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
String eNAME = "expressions";
/**
* The package namespace URI.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
String eNS_URI = "http:///orgomg/cwm/foundation/expressions.ecore";
/**
* The package namespace name.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
String eNS_PREFIX = "orgomg.cwm.foundation.expressions";
/**
* The singleton instance of the package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
ExpressionsPackage eINSTANCE = orgomg.cwm.foundation.expressions.impl.ExpressionsPackageImpl.init();
/**
* The meta object id for the '{@link orgomg.cwm.foundation.expressions.impl.ExpressionNodeImpl <em>Expression Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see orgomg.cwm.foundation.expressions.impl.ExpressionNodeImpl
* @see orgomg.cwm.foundation.expressions.impl.ExpressionsPackageImpl#getExpressionNode()
* @generated
*/
int EXPRESSION_NODE = 0;
/**
* The feature id for the '<em><b>Expression</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int EXPRESSION_NODE__EXPRESSION = CorePackage.ELEMENT_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Type</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int EXPRESSION_NODE__TYPE = CorePackage.ELEMENT_FEATURE_COUNT + 1;
/**
* The feature id for the '<em><b>Feature Node</b></em>' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int EXPRESSION_NODE__FEATURE_NODE = CorePackage.ELEMENT_FEATURE_COUNT + 2;
/**
* The number of structural features of the '<em>Expression Node</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int EXPRESSION_NODE_FEATURE_COUNT = CorePackage.ELEMENT_FEATURE_COUNT + 3;
/**
* The meta object id for the '{@link orgomg.cwm.foundation.expressions.impl.ConstantNodeImpl <em>Constant Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see orgomg.cwm.foundation.expressions.impl.ConstantNodeImpl
* @see orgomg.cwm.foundation.expressions.impl.ExpressionsPackageImpl#getConstantNode()
* @generated
*/
int CONSTANT_NODE = 1;
/**
* The feature id for the '<em><b>Expression</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int CONSTANT_NODE__EXPRESSION = EXPRESSION_NODE__EXPRESSION;
/**
* The feature id for the '<em><b>Type</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int CONSTANT_NODE__TYPE = EXPRESSION_NODE__TYPE;
/**
* The feature id for the '<em><b>Feature Node</b></em>' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int CONSTANT_NODE__FEATURE_NODE = EXPRESSION_NODE__FEATURE_NODE;
/**
* The feature id for the '<em><b>Value</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int CONSTANT_NODE__VALUE = EXPRESSION_NODE_FEATURE_COUNT + 0;
/**
* The number of structural features of the '<em>Constant Node</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int CONSTANT_NODE_FEATURE_COUNT = EXPRESSION_NODE_FEATURE_COUNT + 1;
/**
* The meta object id for the '{@link orgomg.cwm.foundation.expressions.impl.ElementNodeImpl <em>Element Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see orgomg.cwm.foundation.expressions.impl.ElementNodeImpl
* @see orgomg.cwm.foundation.expressions.impl.ExpressionsPackageImpl#getElementNode()
* @generated
*/
int ELEMENT_NODE = 2;
/**
* The feature id for the '<em><b>Expression</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int ELEMENT_NODE__EXPRESSION = EXPRESSION_NODE__EXPRESSION;
/**
* The feature id for the '<em><b>Type</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int ELEMENT_NODE__TYPE = EXPRESSION_NODE__TYPE;
/**
* The feature id for the '<em><b>Feature Node</b></em>' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int ELEMENT_NODE__FEATURE_NODE = EXPRESSION_NODE__FEATURE_NODE;
/**
* The feature id for the '<em><b>Model Element</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int ELEMENT_NODE__MODEL_ELEMENT = EXPRESSION_NODE_FEATURE_COUNT + 0;
/**
* The number of structural features of the '<em>Element Node</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int ELEMENT_NODE_FEATURE_COUNT = EXPRESSION_NODE_FEATURE_COUNT + 1;
/**
* The meta object id for the '{@link orgomg.cwm.foundation.expressions.impl.FeatureNodeImpl <em>Feature Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see orgomg.cwm.foundation.expressions.impl.FeatureNodeImpl
* @see orgomg.cwm.foundation.expressions.impl.ExpressionsPackageImpl#getFeatureNode()
* @generated
*/
int FEATURE_NODE = 3;
/**
* The feature id for the '<em><b>Expression</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int FEATURE_NODE__EXPRESSION = EXPRESSION_NODE__EXPRESSION;
/**
* The feature id for the '<em><b>Type</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int FEATURE_NODE__TYPE = EXPRESSION_NODE__TYPE;
/**
* The feature id for the '<em><b>Feature Node</b></em>' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int FEATURE_NODE__FEATURE_NODE = EXPRESSION_NODE__FEATURE_NODE;
/**
* The feature id for the '<em><b>Feature</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int FEATURE_NODE__FEATURE = EXPRESSION_NODE_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Argument</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int FEATURE_NODE__ARGUMENT = EXPRESSION_NODE_FEATURE_COUNT + 1;
/**
* The number of structural features of the '<em>Feature Node</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int FEATURE_NODE_FEATURE_COUNT = EXPRESSION_NODE_FEATURE_COUNT + 2;
/**
* Returns the meta object for class '{@link orgomg.cwm.foundation.expressions.ExpressionNode <em>Expression Node</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for class '<em>Expression Node</em>'.
* @see orgomg.cwm.foundation.expressions.ExpressionNode
* @generated
*/
EClass getExpressionNode();
/**
* Returns the meta object for the containment reference '{@link orgomg.cwm.foundation.expressions.ExpressionNode#getExpression <em>Expression</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the containment reference '<em>Expression</em>'.
* @see orgomg.cwm.foundation.expressions.ExpressionNode#getExpression()
* @see #getExpressionNode()
* @generated
*/
EReference getExpressionNode_Expression();
/**
* Returns the meta object for the reference '{@link orgomg.cwm.foundation.expressions.ExpressionNode#getType <em>Type</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the reference '<em>Type</em>'.
* @see orgomg.cwm.foundation.expressions.ExpressionNode#getType()
* @see #getExpressionNode()
* @generated
*/
EReference getExpressionNode_Type();
/**
* Returns the meta object for the container reference '{@link orgomg.cwm.foundation.expressions.ExpressionNode#getFeatureNode <em>Feature Node</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the container reference '<em>Feature Node</em>'.
* @see orgomg.cwm.foundation.expressions.ExpressionNode#getFeatureNode()
* @see #getExpressionNode()
* @generated
*/
EReference getExpressionNode_FeatureNode();
/**
* Returns the meta object for class '{@link orgomg.cwm.foundation.expressions.ConstantNode <em>Constant Node</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for class '<em>Constant Node</em>'.
* @see orgomg.cwm.foundation.expressions.ConstantNode
* @generated
*/
EClass getConstantNode();
/**
* Returns the meta object for the attribute '{@link orgomg.cwm.foundation.expressions.ConstantNode#getValue <em>Value</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the attribute '<em>Value</em>'.
* @see orgomg.cwm.foundation.expressions.ConstantNode#getValue()
* @see #getConstantNode()
* @generated
*/
EAttribute getConstantNode_Value();
/**
* Returns the meta object for class '{@link orgomg.cwm.foundation.expressions.ElementNode <em>Element Node</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for class '<em>Element Node</em>'.
* @see orgomg.cwm.foundation.expressions.ElementNode
* @generated
*/
EClass getElementNode();
/**
* Returns the meta object for the reference '{@link orgomg.cwm.foundation.expressions.ElementNode#getModelElement <em>Model Element</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the reference '<em>Model Element</em>'.
* @see orgomg.cwm.foundation.expressions.ElementNode#getModelElement()
* @see #getElementNode()
* @generated
*/
EReference getElementNode_ModelElement();
/**
* Returns the meta object for class '{@link orgomg.cwm.foundation.expressions.FeatureNode <em>Feature Node</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for class '<em>Feature Node</em>'.
* @see orgomg.cwm.foundation.expressions.FeatureNode
* @generated
*/
EClass getFeatureNode();
/**
* Returns the meta object for the reference '{@link orgomg.cwm.foundation.expressions.FeatureNode#getFeature <em>Feature</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the reference '<em>Feature</em>'.
* @see orgomg.cwm.foundation.expressions.FeatureNode#getFeature()
* @see #getFeatureNode()
* @generated
*/
EReference getFeatureNode_Feature();
/**
* Returns the meta object for the containment reference list '{@link orgomg.cwm.foundation.expressions.FeatureNode#getArgument <em>Argument</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the containment reference list '<em>Argument</em>'.
* @see orgomg.cwm.foundation.expressions.FeatureNode#getArgument()
* @see #getFeatureNode()
* @generated
*/
EReference getFeatureNode_Argument();
/**
* Returns the factory that creates the instances of the model.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the factory that creates the instances of the model.
* @generated
*/
ExpressionsFactory getExpressionsFactory();
/**
* <!-- begin-user-doc -->
* Defines literals for the meta objects that represent
* <ul>
* <li>each class,</li>
* <li>each feature of each class,</li>
* <li>each enum,</li>
* <li>and each data type</li>
* </ul>
* <!-- end-user-doc -->
* @generated
*/
interface Literals {
/**
* The meta object literal for the '{@link orgomg.cwm.foundation.expressions.impl.ExpressionNodeImpl <em>Expression Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see orgomg.cwm.foundation.expressions.impl.ExpressionNodeImpl
* @see orgomg.cwm.foundation.expressions.impl.ExpressionsPackageImpl#getExpressionNode()
* @generated
*/
EClass EXPRESSION_NODE = eINSTANCE.getExpressionNode();
/**
* The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EReference EXPRESSION_NODE__EXPRESSION = eINSTANCE.getExpressionNode_Expression();
/**
* The meta object literal for the '<em><b>Type</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EReference EXPRESSION_NODE__TYPE = eINSTANCE.getExpressionNode_Type();
/**
* The meta object literal for the '<em><b>Feature Node</b></em>' container reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EReference EXPRESSION_NODE__FEATURE_NODE = eINSTANCE.getExpressionNode_FeatureNode();
/**
* The meta object literal for the '{@link orgomg.cwm.foundation.expressions.impl.ConstantNodeImpl <em>Constant Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see orgomg.cwm.foundation.expressions.impl.ConstantNodeImpl
* @see orgomg.cwm.foundation.expressions.impl.ExpressionsPackageImpl#getConstantNode()
* @generated
*/
EClass CONSTANT_NODE = eINSTANCE.getConstantNode();
/**
* The meta object literal for the '<em><b>Value</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EAttribute CONSTANT_NODE__VALUE = eINSTANCE.getConstantNode_Value();
/**
* The meta object literal for the '{@link orgomg.cwm.foundation.expressions.impl.ElementNodeImpl <em>Element Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see orgomg.cwm.foundation.expressions.impl.ElementNodeImpl
* @see orgomg.cwm.foundation.expressions.impl.ExpressionsPackageImpl#getElementNode()
* @generated
*/
EClass ELEMENT_NODE = eINSTANCE.getElementNode();
/**
* The meta object literal for the '<em><b>Model Element</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EReference ELEMENT_NODE__MODEL_ELEMENT = eINSTANCE.getElementNode_ModelElement();
/**
* The meta object literal for the '{@link orgomg.cwm.foundation.expressions.impl.FeatureNodeImpl <em>Feature Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see orgomg.cwm.foundation.expressions.impl.FeatureNodeImpl
* @see orgomg.cwm.foundation.expressions.impl.ExpressionsPackageImpl#getFeatureNode()
* @generated
*/
EClass FEATURE_NODE = eINSTANCE.getFeatureNode();
/**
* The meta object literal for the '<em><b>Feature</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EReference FEATURE_NODE__FEATURE = eINSTANCE.getFeatureNode_Feature();
/**
* The meta object literal for the '<em><b>Argument</b></em>' containment reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EReference FEATURE_NODE__ARGUMENT = eINSTANCE.getFeatureNode_Argument();
}
} //ExpressionsPackage