blob: e1d38c133555f9184cb36315c0d538fb33c0105f [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmi:id="P-pivot" name="pivot" nsURI="http://www.eclipse.org/ocl/2015/Pivot"
nsPrefix="pivot">
<eAnnotations source="http://www.eclipse.org/OCL/ASMetamodel"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EDataType" xmi:id="T-pivot-Boolean" name="Boolean"
instanceClassName="boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Boolean is used for logical expressions, consisting of the predefined values true and false."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" xmi:id="T-pivot-Integer" name="Integer"
instanceClassName="java.lang.Number">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Integer is a primitive type representing integer values."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" xmi:id="T-pivot-LibraryFeature" name="LibraryFeature"
instanceClassName="org.eclipse.ocl.pivot.library.LibraryFeature"/>
<eClassifiers xsi:type="ecore:EDataType" xmi:id="T-pivot-Object" name="Object" instanceClassName="java.lang.Object"/>
<eClassifiers xsi:type="ecore:EDataType" xmi:id="T-pivot-Real" name="Real" instanceClassName="java.lang.Number">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Real is a primitive type representing the mathematical concept of real."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" xmi:id="T-pivot-String" name="String" instanceClassName="java.lang.String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="String is a sequence of characters in some suitable character set used to display information about the model. Character sets may include non-Roman alphabets and characters."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" xmi:id="T-pivot-Throwable" name="Throwable"
instanceClassName="java.lang.Throwable"/>
<eClassifiers xsi:type="ecore:EDataType" xmi:id="T-pivot-UnlimitedNatural" name="UnlimitedNatural"
instanceClassName="java.lang.Number">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="UnlimitedNatural is a primitive type representing unlimited natural values."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" xmi:id="T-pivot-AssociativityKind" name="AssociativityKind">
<eLiterals xmi:id="L-pivot-AssociativityKind-left" name="left"/>
<eLiterals xmi:id="L-pivot-AssociativityKind-right" name="right" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" xmi:id="T-pivot-CollectionKind" name="CollectionKind">
<eLiterals xmi:id="L-pivot-CollectionKind-Collection" name="Collection"/>
<eLiterals xmi:id="L-pivot-CollectionKind-Set" name="Set" value="1"/>
<eLiterals xmi:id="L-pivot-CollectionKind-OrderedSet" name="OrderedSet" value="2"/>
<eLiterals xmi:id="L-pivot-CollectionKind-Bag" name="Bag" value="3"/>
<eLiterals xmi:id="L-pivot-CollectionKind-Sequence" name="Sequence" value="4"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" xmi:id="T-pivot-PseudostateKind" name="PseudostateKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="PseudostateKind is an Enumeration type that is used to differentiate various kinds of Pseudostates."/>
</eAnnotations>
<eLiterals xmi:id="L-pivot-PseudostateKind-initial" name="initial"/>
<eLiterals xmi:id="L-pivot-PseudostateKind-deepHistory" name="deepHistory" value="1"/>
<eLiterals xmi:id="L-pivot-PseudostateKind-shallowHistory" name="shallowHistory"
value="2"/>
<eLiterals xmi:id="L-pivot-PseudostateKind-join" name="join" value="3"/>
<eLiterals xmi:id="L-pivot-PseudostateKind-fork" name="fork" value="4"/>
<eLiterals xmi:id="L-pivot-PseudostateKind-junction" name="junction" value="5"/>
<eLiterals xmi:id="L-pivot-PseudostateKind-choice" name="choice" value="6"/>
<eLiterals xmi:id="L-pivot-PseudostateKind-entryPoint" name="entryPoint" value="7"/>
<eLiterals xmi:id="L-pivot-PseudostateKind-exitPoint" name="exitPoint" value="8"/>
<eLiterals xmi:id="L-pivot-PseudostateKind-terminate" name="terminate" value="9"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" xmi:id="T-pivot-TransitionKind" name="TransitionKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="TransitionKind is an Enumeration type used to differentiate the various kinds of Transitions."/>
</eAnnotations>
<eLiterals xmi:id="L-pivot-TransitionKind-internal" name="internal">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Implies that the Transition, if triggered, occurs without exiting or entering the source State (i.e., it does not cause a state change). This means that the entry or exit condition of the source State will not be invoked. An internal Transition can be taken even if the SateMachine is in one or more Regions nested within the associated State."/>
</eAnnotations>
</eLiterals>
<eLiterals xmi:id="L-pivot-TransitionKind-local" name="local" value="1">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Implies that the Transition, if triggered, will not exit the composite (source) State, but it will exit and re-enter any state within the composite State that is in the current state configuration."/>
</eAnnotations>
</eLiterals>
<eLiterals xmi:id="L-pivot-TransitionKind-external" name="external" value="2">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Implies that the Transition, if triggered, will exit the composite (source) State."/>
</eAnnotations>
</eLiterals>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Annotation" name="Annotation"
eSuperTypes="#T-pivot-NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Annotation-ownedContents"
name="ownedContents" upperBound="-1" eType="#T-pivot-Element" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Annotation-ownedDetails"
name="ownedDetails" upperBound="-1" eType="#T-pivot-Detail" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Annotation-references"
name="references" upperBound="-1" eType="#T-pivot-Element"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-AnyType" name="AnyType" eSuperTypes="#T-pivot-Class"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-AssociationClass" name="AssociationClass"
eSuperTypes="#T-pivot-Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A link is a tuple of values that refer to typed objects. An Association classifies a set of links, each of which is an instance of the Association. Each value in the link refers to an instance of the type of the corresponding end of the Association.&#xA;&#xA;A model element that has both Association and Class properties. An AssociationClass can be seen as an Association that also has Class properties, or as a Class that also has Association properties. It not only connects a set of Classifiers but also defines a set of Features that belong to the Association itself and not to any of the associated Classifiers."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-AssociationClass-unownedAttributes"
name="unownedAttributes" ordered="false" upperBound="-1" eType="#T-pivot-Property"
eOpposite="#F-pivot-Property-associationClass"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-AssociationClassCallExp" name="AssociationClassCallExp"
eSuperTypes="#T-pivot-NavigationCallExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-AssociationClassCallExp-referredAssociationClass"
name="referredAssociationClass" eType="#T-pivot-AssociationClass"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-BagType" name="BagType" eSuperTypes="#T-pivot-CollectionType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Behavior" name="Behavior"
abstract="true" eSuperTypes="#T-pivot-Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Behavior is a specification of how its context BehavioredClassifier changes state over time. This specification may be either a definition of possible behavior execution or emergent behavior, or a selective illustration of an interesting subset of possible executions. The latter form is typically used for capturing examples, such as a trace of a particular execution."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Behavior-owningTransition"
name="owningTransition" eType="#T-pivot-Transition" eOpposite="#F-pivot-Transition-ownedEffect"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-BooleanLiteralExp" name="BooleanLiteralExp"
eSuperTypes="#T-pivot-PrimitiveLiteralExp">
<eOperations name="validateTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self.type = Boolean&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsBoolean"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-BooleanLiteralExp-booleanSymbol"
name="booleanSymbol" lowerBound="1" eType="#T-pivot-Boolean" unsettable="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-CallExp" name="CallExp" abstract="true"
eSuperTypes="#T-pivot-OCLExpression">
<eOperations name="validateSafeSourceCanBeNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="isSafe implies not ownedSource?.type.oclAsType(CollectionType).isNullFree&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SafeSourceCanBeNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSafeSourceCannotBeMap" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="isSafe implies let sourceType = ownedSource?.type in sourceType &lt;> null implies not sourceType.oclIsKindOf(MapType)&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SafeSourceCannotBeMap"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateTypeIsNotInvalid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="type &lt;> OclInvalid&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsNotInvalid"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-CallExp-isImplicit"
name="isImplicit" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-CallExp-isSafe"
name="isSafe" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CallExp-ownedSource"
name="ownedSource" eType="#T-pivot-OCLExpression" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-CallOperationAction" name="CallOperationAction"
eSuperTypes="#T-pivot-NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CallOperationAction-operation"
name="operation" lowerBound="1" eType="#T-pivot-Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Class" name="Class" eSuperTypes="#T-pivot-Type #T-pivot-Namespace #T-pivot-TemplateableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Class classifies a set of objects and specifies the features that characterize the structure and behavior of those objects. A Class may have an internal structure and Ports.&#xA;&#xA;A Classifier represents a classification of instances according to their Features.&#xA;&#xA;StructuredClassifiers may contain an internal structure of connected elements each of which plays a role in the overall Behavior modeled by the StructuredClassifier."/>
</eAnnotations>
<eOperations name="validateNameIsNotNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="name &lt;> null&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="NameIsNotNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateUniqueInvariantName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedInvariants->isUnique(name)&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="UniqueInvariantName"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Class-extenders"
name="extenders" ordered="false" upperBound="-1" eType="#T-pivot-StereotypeExtender"
eOpposite="#F-pivot-StereotypeExtender-class"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Class-instanceClassName"
name="instanceClassName" eType="#T-pivot-String"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Class-isAbstract"
name="isAbstract" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If true, the Class does not provide a complete declaration and cannot be instantiated. An abstract Class is typically used as a target of Associations or Generalizations.&#xA;&#xA;If true, the Classifier can only be instantiated by instantiating one of its specializations. An abstract Classifier is intended to be used by other Classifiers e.g., as the target of Associations or Generalizations."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Class-isActive"
name="isActive" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines whether an object specified by this Class is active or not. If true, then the owning Class is referred to as an active Class. If false, then such a Class is referred to as a passive Class."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Class-isInterface"
name="isInterface" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Class-ownedBehaviors"
name="ownedBehaviors" ordered="false" upperBound="-1" eType="#T-pivot-Behavior"
containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Behaviors owned by a BehavioredClassifier."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Class-ownedInvariants"
name="ownedInvariants" ordered="false" upperBound="-1" eType="#T-pivot-Constraint"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Class-ownedOperations"
name="ownedOperations" upperBound="-1" eType="#T-pivot-Operation" containment="true"
eOpposite="#F-pivot-Operation-owningClass">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Operations owned by the Class."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Class-ownedProperties"
name="ownedProperties" upperBound="-1" eType="#T-pivot-Property" containment="true"
eOpposite="#F-pivot-Property-owningClass">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Properties owned by the StructuredClassifier.&#xA;&#xA;The attributes (i.e., the Properties) owned by the Class."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Class-owningPackage"
name="owningPackage" eType="#T-pivot-Package" eOpposite="#F-pivot-Package-ownedClasses"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Class-superClasses"
name="superClasses" ordered="false" upperBound="-1" eType="#T-pivot-Class"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-CollectionItem" name="CollectionItem"
eSuperTypes="#T-pivot-CollectionLiteralPart">
<eOperations name="validateTypeIsItemType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="type = ownedItem.type&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsItemType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CollectionItem-ownedItem"
name="ownedItem" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-CollectionLiteralExp" name="CollectionLiteralExp"
eSuperTypes="#T-pivot-LiteralExp">
<eOperations name="validateBagKindIsBag" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="kind = CollectionKind::Bag implies type.oclIsKindOf(BagType)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="BagKindIsBag"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateCollectionKindIsConcrete" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="kind &lt;> CollectionKind::Collection&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CollectionKindIsConcrete"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateOrderedSetKindIsOrderedSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="kind = CollectionKind::OrderedSet implies type.oclIsKindOf(OrderedSetType)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="OrderedSetKindIsOrderedSet"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSequenceKindIsSequence" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="kind = CollectionKind::Sequence implies type.oclIsKindOf(SequenceType)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SequenceKindIsSequence"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSetKindIsSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="kind = CollectionKind::Set implies type.oclIsKindOf(SetType)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SetKindIsSet"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-CollectionLiteralExp-kind"
name="kind" lowerBound="1" eType="#T-pivot-CollectionKind"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CollectionLiteralExp-ownedParts"
name="ownedParts" upperBound="-1" eType="#T-pivot-CollectionLiteralPart" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-CollectionLiteralPart" name="CollectionLiteralPart"
abstract="true" eSuperTypes="#T-pivot-TypedElement">
<eOperations name="validateTypeIsNotInvalid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="type &lt;> OclInvalid&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsNotInvalid"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-CollectionRange" name="CollectionRange"
eSuperTypes="#T-pivot-CollectionLiteralPart">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CollectionRange-ownedFirst"
name="ownedFirst" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CollectionRange-ownedLast"
name="ownedLast" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-CollectionType" name="CollectionType"
eSuperTypes="#T-pivot-IterableType">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CollectionType-elementType"
name="elementType" lowerBound="1" eType="#T-pivot-Type" volatile="true" transient="true"
derived="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-CollectionType-isNullFree"
name="isNullFree" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-CollectionType-lower"
name="lower" lowerBound="1" eType="#T-pivot-Integer" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-CollectionType-upper"
name="upper" lowerBound="1" eType="#T-pivot-UnlimitedNatural" defaultValueLiteral="*"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Comment" name="Comment" eSuperTypes="#T-pivot-Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Comment is a textual annotation that can be attached to a set of Elements."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Comment-annotatedElements"
name="annotatedElements" ordered="false" upperBound="-1" eType="#T-pivot-Element"
eOpposite="#F-pivot-Element-annotatingComments">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Element(s) being commented."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Comment-body"
name="body" eType="#T-pivot-String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies a string that is the comment."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Comment-owningElement"
name="owningElement" eType="#T-pivot-Element" eOpposite="#F-pivot-Element-ownedComments"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-CompleteClass" name="CompleteClass"
eSuperTypes="#T-pivot-NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompleteClass-owningCompletePackage"
name="owningCompletePackage" eType="#T-pivot-CompletePackage" eOpposite="#F-pivot-CompletePackage-ownedCompleteClasses"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompleteClass-partialClasses"
name="partialClasses" ordered="false" upperBound="-1" eType="#T-pivot-Class"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-CompleteEnvironment" name="CompleteEnvironment"
eSuperTypes="#T-pivot-Element">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompleteEnvironment-ownedCompleteModel"
name="ownedCompleteModel" lowerBound="1" eType="#T-pivot-CompleteModel" containment="true"
eOpposite="#F-pivot-CompleteModel-owningCompleteEnvironment"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompleteEnvironment-ownedStandardLibrary"
name="ownedStandardLibrary" lowerBound="1" eType="#T-pivot-StandardLibrary"
containment="true" eOpposite="#F-pivot-StandardLibrary-owningCompleteEnvironment"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-CompleteModel" name="CompleteModel"
eSuperTypes="#T-pivot-NamedElement">
<eOperations name="getOwnedCompletePackage" eType="#T-pivot-CompletePackage">
<eParameters name="name" eType="#T-pivot-String"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompleteModel-orphanCompletePackage"
name="orphanCompletePackage" eType="#T-pivot-OrphanCompletePackage" changeable="false"
transient="true" derived="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompleteModel-ownedCompletePackages"
name="ownedCompletePackages" ordered="false" upperBound="-1" eType="#T-pivot-CompletePackage"
containment="true" eOpposite="#F-pivot-CompletePackage-owningCompleteModel"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompleteModel-owningCompleteEnvironment"
name="owningCompleteEnvironment" eType="#T-pivot-CompleteEnvironment" eOpposite="#F-pivot-CompleteEnvironment-ownedCompleteModel"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompleteModel-partialModels"
name="partialModels" ordered="false" upperBound="-1" eType="#T-pivot-Model"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompleteModel-primitiveCompletePackage"
name="primitiveCompletePackage" eType="#T-pivot-PrimitiveCompletePackage"
changeable="false" transient="true" derived="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-CompletePackage" name="CompletePackage"
eSuperTypes="#T-pivot-NamedElement">
<eOperations name="getOwnedCompleteClass" eType="#T-pivot-CompleteClass">
<eParameters name="name" eType="#T-pivot-String"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompletePackage-ownedCompleteClasses"
name="ownedCompleteClasses" ordered="false" upperBound="-1" eType="#T-pivot-CompleteClass"
containment="true" eOpposite="#F-pivot-CompleteClass-owningCompletePackage"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompletePackage-ownedCompletePackages"
name="ownedCompletePackages" ordered="false" upperBound="-1" eType="#T-pivot-CompletePackage"
containment="true" eOpposite="#F-pivot-CompletePackage-owningCompletePackage"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompletePackage-owningCompleteModel"
name="owningCompleteModel" eType="#T-pivot-CompleteModel" eOpposite="#F-pivot-CompleteModel-ownedCompletePackages"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompletePackage-owningCompletePackage"
name="owningCompletePackage" eType="#T-pivot-CompletePackage" eOpposite="#F-pivot-CompletePackage-ownedCompletePackages"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-CompletePackage-partialPackages"
name="partialPackages" ordered="false" upperBound="-1" eType="#T-pivot-Package"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-ConnectionPointReference"
name="ConnectionPointReference" eSuperTypes="#T-pivot-Vertex">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A ConnectionPointReference represents a usage (as part of a submachine State) of an entry/exit point Pseudostate defined in the StateMachine referenced by the submachine State."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ConnectionPointReference-entries"
name="entries" ordered="false" upperBound="-1" eType="#T-pivot-Pseudostate">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The entryPoint Pseudostates corresponding to this connection point."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ConnectionPointReference-exits"
name="exits" ordered="false" upperBound="-1" eType="#T-pivot-Pseudostate">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The exitPoints kind Pseudostates corresponding to this connection point."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ConnectionPointReference-owningState"
name="owningState" eType="#T-pivot-State" eOpposite="#F-pivot-State-ownedConnections">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The State in which the ConnectionPointReference is defined."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Constraint" name="Constraint"
eSuperTypes="#T-pivot-NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an Element or set of Elements."/>
</eAnnotations>
<eOperations name="validateBooleanValued" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedSpecification &lt;> null and ownedSpecification.type &lt;> null implies ownedSpecification.type = Boolean or ownedSpecification.type = OclVoid&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="BooleanValued"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateUniqueName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="true "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="UniqueName"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Constraint-constrainedElements"
name="constrainedElements" upperBound="-1" eType="#T-pivot-Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The ordered set of Elements referenced by this Constraint."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Constraint-context"
name="context" eType="#T-pivot-Namespace" changeable="false" volatile="true"
transient="true" derived="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Constraint-isCallable"
name="isCallable" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Constraint-ownedSpecification"
name="ownedSpecification" lowerBound="1" eType="#T-pivot-LanguageExpression"
containment="true" eOpposite="#F-pivot-LanguageExpression-owningConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A condition that must be true when evaluated in order for the Constraint to be satisfied."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Constraint-owningPostContext"
name="owningPostContext" eType="#T-pivot-Operation" eOpposite="#F-pivot-Operation-ownedPostconditions"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Constraint-owningPreContext"
name="owningPreContext" eType="#T-pivot-Operation" eOpposite="#F-pivot-Operation-ownedPreconditions"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Constraint-owningState"
name="owningState" eType="#T-pivot-State" eOpposite="#F-pivot-State-ownedStateInvariant"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Constraint-owningTransition"
name="owningTransition" eType="#T-pivot-Transition" eOpposite="#F-pivot-Transition-ownedGuard"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Constraint-redefinedConstraints"
name="redefinedConstraints" ordered="false" upperBound="-1" eType="#T-pivot-Constraint"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-DataType" name="DataType"
eSuperTypes="#T-pivot-Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A DataType is a type whose instances are identified only by their value."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-DataType-behavioralClass"
name="behavioralClass" eType="#T-pivot-Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An equivalent type, such as a PrimitiveType, that defines the conformance and evaluation behavior."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-DataType-isSerializable"
name="isSerializable" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-DataType-value"
name="value" lowerBound="1" eType="#T-pivot-String" changeable="false" volatile="true"
transient="true" defaultValueLiteral="" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The value pseudo-property accesses a String-valued representation of the DataType."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Detail" name="Detail" eSuperTypes="#T-pivot-NamedElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Detail-values"
name="values" ordered="false" lowerBound="1" upperBound="-1" eType="#T-pivot-String"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-DynamicBehavior" name="DynamicBehavior"
eSuperTypes="#T-pivot-Behavior #T-pivot-DynamicType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-DynamicElement" name="DynamicElement"
eSuperTypes="#T-pivot-Element">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-DynamicElement-metaType"
name="metaType" lowerBound="1" eType="#T-pivot-Type"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-DynamicProperty" name="DynamicProperty"
eSuperTypes="#T-pivot-Element">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-DynamicProperty-default"
name="default" eType="#T-pivot-String"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-DynamicProperty-referredProperty"
name="referredProperty" lowerBound="1" eType="#T-pivot-Property"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-DynamicType" name="DynamicType"
eSuperTypes="#T-pivot-Class #T-pivot-DynamicElement">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-DynamicType-ownedDynamicProperties"
name="ownedDynamicProperties" ordered="false" upperBound="-1" eType="#T-pivot-DynamicProperty"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-DynamicValueSpecification"
name="DynamicValueSpecification" eSuperTypes="#T-pivot-ValueSpecification"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Element" name="Element" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An Element is a constituent of a model. As such, it has the capability of owning other Elements."/>
</eAnnotations>
<eOperations name="allOwnedElements" ordered="false" upperBound="-1" eType="#T-pivot-Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="&#xA;&#x9;self->closure(oclContents()->selectByKind(Element))&#xA;&#x9;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query allOwnedElements() gives all of the direct and indirect ownedElements of an Element."/>
</eAnnotations>
</eOperations>
<eOperations name="getValue" eType="#T-pivot-Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="null&#xA;&#xA;"/>
</eAnnotations>
<eParameters name="stereotype" lowerBound="1" eType="#T-pivot-Type"/>
<eParameters name="propertyName" lowerBound="1" eType="#T-pivot-String"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Element-annotatingComments"
name="annotatingComments" ordered="false" upperBound="-1" eType="#T-pivot-Comment"
eOpposite="#F-pivot-Comment-annotatedElements"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Element-ownedAnnotations"
name="ownedAnnotations" upperBound="-1" eType="#T-pivot-Element" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Element-ownedComments"
name="ownedComments" ordered="false" upperBound="-1" eType="#T-pivot-Comment"
containment="true" eOpposite="#F-pivot-Comment-owningElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Comments owned by this Element."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Element-ownedExtensions"
name="ownedExtensions" ordered="false" upperBound="-1" eType="#T-pivot-ElementExtension"
containment="true" eOpposite="#F-pivot-ElementExtension-base"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-ElementExtension" name="ElementExtension"
eSuperTypes="#T-pivot-Class">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ElementExtension-base"
name="base" lowerBound="1" eType="#T-pivot-Element" eOpposite="#F-pivot-Element-ownedExtensions"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-ElementExtension-isApplied"
name="isApplied" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-ElementExtension-isRequired"
name="isRequired" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ElementExtension-stereotype"
name="stereotype" lowerBound="1" eType="#T-pivot-Stereotype"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-EnumLiteralExp" name="EnumLiteralExp"
eSuperTypes="#T-pivot-LiteralExp">
<eOperations name="validateTypeIsEnumerationType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self.type = referredLiteral?.owningEnumeration&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsEnumerationType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-EnumLiteralExp-referredLiteral"
name="referredLiteral" eType="#T-pivot-EnumerationLiteral"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Enumeration" name="Enumeration"
eSuperTypes="#T-pivot-DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An Enumeration is a DataType whose values are enumerated in the model as EnumerationLiterals."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Enumeration-ownedLiterals"
name="ownedLiterals" upperBound="-1" eType="#T-pivot-EnumerationLiteral" containment="true"
eOpposite="#F-pivot-EnumerationLiteral-owningEnumeration">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The ordered set of literals owned by this Enumeration."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-EnumerationLiteral" name="EnumerationLiteral"
eSuperTypes="#T-pivot-InstanceSpecification">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An EnumerationLiteral is a user-defined data value for an Enumeration."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-EnumerationLiteral-literal"
name="literal" eType="#T-pivot-String" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-EnumerationLiteral-owningEnumeration"
name="owningEnumeration" lowerBound="1" eType="#T-pivot-Enumeration" eOpposite="#F-pivot-Enumeration-ownedLiterals">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Enumeration that this EnumerationLiteral is a member of."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-EnumerationLiteral-value"
name="value" eType="#T-pivot-Integer" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-ExpressionInOCL" name="ExpressionInOCL"
eSuperTypes="#T-pivot-LanguageExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ExpressionInOCL-ownedBody"
name="ownedBody" eType="#T-pivot-OCLExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ExpressionInOCL-ownedContext"
name="ownedContext" eType="#T-pivot-Variable" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ExpressionInOCL-ownedParameters"
name="ownedParameters" upperBound="-1" eType="#T-pivot-Variable" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ExpressionInOCL-ownedResult"
name="ownedResult" eType="#T-pivot-Variable" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Feature" name="Feature" abstract="true"
eSuperTypes="#T-pivot-TypedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Feature declares a behavioral or structural characteristic of Classifiers."/>
</eAnnotations>
<eOperations name="validateNameIsNotNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="name &lt;> null&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="NameIsNotNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateTypeIsNotInvalid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="type &lt;> OclInvalid&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsNotInvalid"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateTypeIsNotNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="type &lt;> null&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsNotNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Feature-implementation"
name="implementation" eType="#T-pivot-LibraryFeature" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Feature-implementationClass"
name="implementationClass" eType="#T-pivot-String"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Feature-isStatic"
name="isStatic" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies whether this Feature characterizes individual instances classified by the Classifier (false) or the Classifier itself (true)."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-FeatureCallExp" name="FeatureCallExp"
abstract="true" eSuperTypes="#T-pivot-CallExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-FeatureCallExp-isPre"
name="isPre" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-FinalState" name="FinalState"
eSuperTypes="#T-pivot-State">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A special kind of State, which, when entered, signifies that the enclosing Region has completed. If the enclosing Region is directly contained in a StateMachine and all other Regions in that StateMachine also are completed, then it means that the entire StateMachine behavior is completed."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-IfExp" name="IfExp" eSuperTypes="#T-pivot-OCLExpression">
<eOperations name="validateConditionTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self.ownedCondition.type = Boolean&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="ConditionTypeIsBoolean"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateTypeIsNotInvalid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="type &lt;> OclInvalid&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsNotInvalid"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-IfExp-isElseIf"
name="isElseIf" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="True if this IfExp corresponds to an 'elseif' in the OCL source, false if it corresponds to an 'if'. This attribute has no semantic significance; it merely supports more faithful reconstruction of the OCL source by a pretty printer."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-IfExp-ownedCondition"
name="ownedCondition" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-IfExp-ownedElse"
name="ownedElse" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-IfExp-ownedThen"
name="ownedThen" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Import" name="Import" eSuperTypes="#T-pivot-NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Import-importedNamespace"
name="importedNamespace" lowerBound="1" eType="#T-pivot-Namespace"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Import-xmiidVersion"
name="xmiidVersion" lowerBound="1" eType="#T-pivot-Integer" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-InstanceSpecification" name="InstanceSpecification"
eSuperTypes="#T-pivot-NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An InstanceSpecification is a model element that represents an instance in a modeled system. An InstanceSpecification can act as a DeploymentTarget in a Deployment relationship, in the case that it represents an instance of a Node. It can also act as a DeployedArtifact, if it represents an instance of an Artifact."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-InstanceSpecification-classes"
name="classes" ordered="false" upperBound="-1" eType="#T-pivot-Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Classifier or Classifiers of the represented instance. If multiple Classifiers are specified, the instance is classified by all of them."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-InstanceSpecification-ownedSlots"
name="ownedSlots" ordered="false" upperBound="-1" eType="#T-pivot-Slot" containment="true"
eOpposite="#F-pivot-Slot-owningInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Slot giving the value or values of a StructuralFeature of the instance. An InstanceSpecification can have one Slot per StructuralFeature of its Classifiers, including inherited features. It is not necessary to model a Slot for every StructuralFeature, in which case the InstanceSpecification is a partial description."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-InstanceSpecification-ownedSpecification"
name="ownedSpecification" eType="#T-pivot-LanguageExpression" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A specification of how to compute, derive, or construct the instance."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-InstanceSpecification-owningPackage"
name="owningPackage" eType="#T-pivot-Package" eOpposite="#F-pivot-Package-ownedInstances"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-IntegerLiteralExp" name="IntegerLiteralExp"
eSuperTypes="#T-pivot-NumericLiteralExp">
<eOperations name="validateTypeIsInteger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self.type = Integer&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsInteger"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-IntegerLiteralExp-integerSymbol"
name="integerSymbol" lowerBound="1" eType="#T-pivot-Integer"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-InvalidLiteralExp" name="InvalidLiteralExp"
eSuperTypes="#T-pivot-LiteralExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-InvalidType" name="InvalidType"
eSuperTypes="#T-pivot-Class"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-IterableType" name="IterableType"
abstract="true" eSuperTypes="#T-pivot-DataType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-IterateExp" name="IterateExp"
eSuperTypes="#T-pivot-LoopExp #T-pivot-ReferringElement">
<eOperations name="validateBodyTypeConformsToResultType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="true "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="BodyTypeConformsToResultType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateOneInitializer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="true "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="OneInitializer"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSafeIteratorIsRequired" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="isSafe implies ownedIterators->forAll(isRequired)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SafeIteratorIsRequired"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSafeSourceCanBeNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="isSafe implies not&#xA;&#x9;let sourceType = ownedSource?.type in&#xA;&#x9;if sourceType.oclIsKindOf(MapType) then sourceType.oclAsType(MapType).keysAreNullFree else sourceType.oclAsType(CollectionType).isNullFree endif&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SafeSourceCanBeNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateTypeIsResultType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="true "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsResultType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateUnsafeSourceCanNotBeNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="(not isSafe and ownedIterators->exists(isRequired)) implies&#xA;&#x9;let sourceType = ownedSource?.type in&#xA;&#x9;if sourceType.oclIsKindOf(MapType) then sourceType.oclAsType(MapType).keysAreNullFree else sourceType.oclAsType(CollectionType).isNullFree endif&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="UnsafeSourceCanNotBeNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-IterateExp-ownedResult"
name="ownedResult" eType="#T-pivot-Variable" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Iteration" name="Iteration"
eSuperTypes="#T-pivot-Operation">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Iteration-ownedAccumulators"
name="ownedAccumulators" upperBound="-1" eType="#T-pivot-Parameter" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Iteration-ownedIterators"
name="ownedIterators" upperBound="-1" eType="#T-pivot-Parameter" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-IteratorExp" name="IteratorExp"
eSuperTypes="#T-pivot-LoopExp #T-pivot-ReferringElement">
<eOperations name="validateAnyBodyTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="true "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="AnyBodyTypeIsBoolean"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateAnyHasOneIterator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="true "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="AnyHasOneIterator"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateAnyTypeIsSourceElementType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="true "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="AnyTypeIsSourceElementType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateClosureBodyElementTypeIsIteratorType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="name = 'closure' implies&#xA;&#x9;let bodyElementType = if ownedBody.type.oclIsKindOf(CollectionType) then ownedBody.type.oclAsType(CollectionType).elementType elseif ownedBody.type.oclIsKindOf(MapType) then ownedBody.type.oclAsType(MapType).keyType else ownedBody.type endif in &#xA;&#x9;let iteratorType = ownedIterators->at(1).type in&#xA;&#x9;bodyElementType?.conformsTo(iteratorType)&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="ClosureBodyElementTypeIsIteratorType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateClosureBodyTypeIsConformanttoIteratorType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="&#xA;&#x9;true "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="ClosureBodyTypeIsConformanttoIteratorType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateClosureElementTypeIsSourceElementType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value=" true "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="ClosureElementTypeIsSourceElementType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateClosureHasOneIterator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="true "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="ClosureHasOneIterator"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateClosureResultElementTypeIsIteratorType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="&#xA;&#x9;name = 'closure' implies&#xA;&#x9;&#x9;let resultElementType = type.oclAsType(CollectionType).elementType in &#xA;&#x9;&#x9;let iteratorType = ownedIterators->at(1).type in&#xA;&#x9;&#x9;iteratorType?.conformsTo(resultElementType)&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="ClosureResultElementTypeIsIteratorType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateClosureSourceElementTypeIsBodyElementType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="true "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="ClosureSourceElementTypeIsBodyElementType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateClosureTypeIsUniqueCollection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="name = 'closure' implies&#xA;if ownedSource?.type?.oclIsKindOf(SequenceType) or ownedSource?.type.oclIsKindOf(OrderedSetType) then&#xA;type.oclIsKindOf(OrderedSetType)&#xA;else&#xA;type.oclIsKindOf(SetType)&#xA;endif&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="ClosureTypeIsUniqueCollection"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateCollectElementTypeIsFlattenedBodyType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="name = 'collect' implies&#xA;type.oclAsType(CollectionType).elementType = ownedBody.type?.flattenedType()&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CollectElementTypeIsFlattenedBodyType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateCollectTypeIsUnordered" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="name = 'collect' implies&#xA;if ownedSource?.type.oclIsKindOf(SequenceType) or ownedSource?.type.oclIsKindOf(OrderedSetType) then&#xA;type.oclIsKindOf(SequenceType)&#xA;else&#xA;type.oclIsKindOf(BagType)&#xA;endif&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CollectTypeIsUnordered"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateIteratorTypeIsSourceElementType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="let sourceType = ownedSource?.type in sourceType.oclIsKindOf(CollectionType) implies&#xA; let sourceElementType = sourceType.oclAsType(CollectionType).elementType in&#xA; self.ownedIterators->forAll(p | sourceElementType.conformsTo(p.type))&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="IteratorTypeIsSourceElementType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateIteratorTypeIsSourceKeyType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="let sourceType = ownedSource?.type in sourceType.oclIsKindOf(MapType) implies&#xA; let sourceKeyType = sourceType.oclAsType(MapType).keyType in&#xA; self.ownedIterators->forAll(p | sourceKeyType.conformsTo(p.type))&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="IteratorTypeIsSourceKeyType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSafeIteratorIsRequired" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="isSafe implies ownedIterators->forAll(isRequired)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SafeIteratorIsRequired"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSafeSourceCanBeNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="isSafe implies not&#xA;&#x9;let sourceType = ownedSource?.type in&#xA;&#x9;if sourceType.oclIsKindOf(MapType) then sourceType.oclAsType(MapType).keysAreNullFree else sourceType.oclAsType(CollectionType).isNullFree endif&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SafeSourceCanBeNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSortedByElementTypeIsSourceElementType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="name = 'sortedBy' implies&#xA;type.oclAsType(CollectionType).elementType =&#xA;ownedSource?.type.oclAsType(CollectionType).elementType&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SortedByElementTypeIsSourceElementType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSortedByIsOrderedIfSourceIsOrdered" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="name = 'sortedBy' implies&#xA;if ownedSource?.type.oclIsKindOf(SequenceType) or ownedSource?.type.oclIsKindOf(BagType) then&#xA;type.oclIsKindOf(SequenceType)&#xA;else&#xA;type.oclIsKindOf(OrderedSetType)&#xA;endif&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SortedByIsOrderedIfSourceIsOrdered"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSortedByIteratorTypeIsComparable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="&#xA;&#x9;true&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SortedByIteratorTypeIsComparable"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateUnsafeSourceCanNotBeNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="(not isSafe and ownedIterators->exists(isRequired)) implies&#xA;&#x9;let sourceType = ownedSource?.type in&#xA;&#x9;if sourceType.oclIsKindOf(MapType) then sourceType.oclAsType(MapType).keysAreNullFree else sourceType.oclAsType(CollectionType).isNullFree endif&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="UnsafeSourceCanNotBeNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-IteratorVariable" name="IteratorVariable"
eSuperTypes="#T-pivot-Variable">
<eOperations name="validateHasNoInitializer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedInit = null&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="HasNoInitializer"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-LambdaType" name="LambdaType"
eSuperTypes="#T-pivot-DataType">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-LambdaType-contextType"
name="contextType" lowerBound="1" eType="#T-pivot-Type"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-LambdaType-parameterType"
name="parameterType" unique="false" upperBound="-1" eType="#T-pivot-Type"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-LambdaType-resultType"
name="resultType" lowerBound="1" eType="#T-pivot-Type"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-LanguageExpression" name="LanguageExpression"
abstract="true" eSuperTypes="#T-pivot-ValueSpecification">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-LanguageExpression-body"
name="body" eType="#T-pivot-String"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-LanguageExpression-language"
name="language" lowerBound="1" eType="#T-pivot-String" changeable="false"
volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-LanguageExpression-owningConstraint"
name="owningConstraint" eType="#T-pivot-Constraint" eOpposite="#F-pivot-Constraint-ownedSpecification"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-LetExp" name="LetExp" eSuperTypes="#T-pivot-OCLExpression">
<eOperations name="validateCompatibleNullityForIn" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="isRequired = ownedIn.isRequired&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CompatibleNullityForIn"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateTypeIsInType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="type = ownedIn.type&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsInType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateTypeIsNotInvalid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="type &lt;> OclInvalid&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsNotInvalid"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-LetExp-ownedIn"
name="ownedIn" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-LetExp-ownedVariable"
name="ownedVariable" lowerBound="1" eType="#T-pivot-Variable" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-LetVariable" name="LetVariable"
eSuperTypes="#T-pivot-Variable">
<eOperations name="validateCompatibleNullityForInitializer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedInit?.isRequired = isRequired&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CompatibleNullityForInitializer"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateCompatibleTypeForInitializer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedInit &lt;> null implies ownedInit.type?.conformsTo(type)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CompatibleTypeForInitializer"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateHasInitializer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedInit &lt;> null&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="HasInitializer"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Library" name="Library" eSuperTypes="#T-pivot-Package">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Library-ownedPrecedences"
name="ownedPrecedences" upperBound="-1" eType="#T-pivot-Precedence" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-LiteralExp" name="LiteralExp"
abstract="true" eSuperTypes="#T-pivot-OCLExpression"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-LoopExp" name="LoopExp" abstract="true"
eSuperTypes="#T-pivot-CallExp">
<eOperations name="validateMatchingMapCoIterators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedSource?.type.oclIsKindOf(MapType) implies self.ownedCoIterators->size() = self.ownedIterators->size()&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="MatchingMapCoIterators"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateNoCoInitializers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self.ownedCoIterators->forAll(ownedInit->isEmpty())&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="NoCoInitializers"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateNoCollectionCoIterators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedSource?.type.oclIsKindOf(CollectionType) implies self.ownedCoIterators->isEmpty()&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="NoCollectionCoIterators"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateNoInitializers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self.ownedIterators->forAll(ownedInit->isEmpty())&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="NoInitializers"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSourceIsCollection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="true&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SourceIsCollection"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSourceIsIterable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedSource?.type.oclIsKindOf(IterableType)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SourceIsIterable"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-LoopExp-ownedBody"
name="ownedBody" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-LoopExp-ownedCoIterators"
name="ownedCoIterators" upperBound="-1" eType="#T-pivot-Variable" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-LoopExp-ownedIterators"
name="ownedIterators" upperBound="-1" eType="#T-pivot-Variable" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-LoopExp-referredIteration"
name="referredIteration" eType="#T-pivot-Iteration"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-MapLiteralExp" name="MapLiteralExp"
eSuperTypes="#T-pivot-LiteralExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MapLiteralExp-ownedParts"
name="ownedParts" upperBound="-1" eType="#T-pivot-MapLiteralPart" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-MapLiteralPart" name="MapLiteralPart"
eSuperTypes="#T-pivot-Element">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MapLiteralPart-ownedKey"
name="ownedKey" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MapLiteralPart-ownedValue"
name="ownedValue" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-MapType" name="MapType" eSuperTypes="#T-pivot-IterableType">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MapType-entryClass"
name="entryClass" eType="#T-pivot-Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A type for an entry that may allow an external syntax serialization as a set-of-entryClass."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MapType-keyType"
name="keyType" lowerBound="1" eType="#T-pivot-Type" volatile="true" transient="true"
derived="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-MapType-keysAreNullFree"
name="keysAreNullFree" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MapType-valueType"
name="valueType" lowerBound="1" eType="#T-pivot-Type" volatile="true" transient="true"
derived="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-MapType-valuesAreNullFree"
name="valuesAreNullFree" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-MessageExp" name="MessageExp"
eSuperTypes="#T-pivot-OCLExpression">
<eOperations name="validateOneCallOrOneSend" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedCalledOperation->size() + ownedSentSignal->size() = 1&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="OneCallOrOneSend"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateTargetIsNotACollection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="not ownedTarget.type.oclIsKindOf(CollectionType)&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TargetIsNotACollection"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MessageExp-ownedArguments"
name="ownedArguments" upperBound="-1" eType="#T-pivot-OCLExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MessageExp-ownedCalledOperation"
name="ownedCalledOperation" eType="#T-pivot-CallOperationAction" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MessageExp-ownedSentSignal"
name="ownedSentSignal" eType="#T-pivot-SendSignalAction" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MessageExp-ownedTarget"
name="ownedTarget" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-MessageType" name="MessageType"
eSuperTypes="#T-pivot-Class">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MessageType-referredOperation"
name="referredOperation" eType="#T-pivot-Operation"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-MessageType-referredSignal"
name="referredSignal" eType="#T-pivot-Signal"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Model" name="Model" eSuperTypes="#T-pivot-Namespace">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A model captures a view of a physical system. It is an abstraction of the physical system, with a certain purpose. This purpose determines what is to be included in the model and what is irrelevant. Thus the model completely describes those aspects of the physical system that are relevant to the purpose of the model, at the appropriate level of detail."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Model-externalURI"
name="externalURI" eType="#T-pivot-String"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Model-ownedImports"
name="ownedImports" upperBound="-1" eType="#T-pivot-Import" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Model-ownedPackages"
name="ownedPackages" ordered="false" upperBound="-1" eType="#T-pivot-Package"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Model-xmiidVersion"
name="xmiidVersion" lowerBound="1" eType="#T-pivot-Integer" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-MorePivotable" name="MorePivotable"
instanceClassName="org.eclipse.ocl.pivot.utilities.MorePivotable" abstract="true"
interface="true"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Nameable" name="Nameable"
instanceClassName="org.eclipse.ocl.pivot.utilities.Nameable" abstract="true"
interface="true"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-NamedElement" name="NamedElement"
abstract="true" eSuperTypes="#T-pivot-Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A NamedElement is an Element in a model that may have a name. The name may be given directly and/or via the use of a StringExpression."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-NamedElement-name"
name="name" eType="#T-pivot-String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name of the NamedElement."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Namespace" name="Namespace"
abstract="true" eSuperTypes="#T-pivot-NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Namespace is an Element in a model that owns and/or imports a set of NamedElements that can be identified by name."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Namespace-ownedConstraints"
name="ownedConstraints" ordered="false" upperBound="-1" eType="#T-pivot-Constraint"
containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies a set of Constraints owned by this Namespace."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-NavigationCallExp" name="NavigationCallExp"
abstract="true" eSuperTypes="#T-pivot-FeatureCallExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-NavigationCallExp-navigationSource"
name="navigationSource" eType="#T-pivot-Property"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-NavigationCallExp-qualifiers"
name="qualifiers" upperBound="-1" eType="#T-pivot-OCLExpression"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-NullLiteralExp" name="NullLiteralExp"
eSuperTypes="#T-pivot-PrimitiveLiteralExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-NumericLiteralExp" name="NumericLiteralExp"
abstract="true" eSuperTypes="#T-pivot-PrimitiveLiteralExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-OCLExpression" name="OCLExpression"
abstract="true" eSuperTypes="#T-pivot-TypedElement">
<eOperations name="isNonNull" lowerBound="1" eType="#T-pivot-Boolean"/>
<eOperations name="isNull" lowerBound="1" eType="#T-pivot-Boolean"/>
<eOperations name="validateTypeIsNotNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="type &lt;> null&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="TypeIsNotNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-OCLExpression-typeValue"
name="typeValue" eType="#T-pivot-Type" transient="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Operation" name="Operation"
eSuperTypes="#T-pivot-Feature #T-pivot-Namespace #T-pivot-TemplateableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An Operation is a BehavioralFeature of a Classifier that specifies the name, type, parameters, and constraints for invoking an associated Behavior. An Operation may invoke both the execution of method behaviors as well as other behavioral responses. Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template."/>
</eAnnotations>
<eOperations name="validateCompatibleReturn" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="bodyExpression &lt;> null and bodyExpression.oclAsType(ExpressionInOCL).ownedBody &lt;> null implies CompatibleBody(bodyExpression)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CompatibleReturn"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateLoadableImplementation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="&#xA;&#x9;true&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="LoadableImplementation"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateUniquePostconditionName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedPostconditions->isUnique(name)&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="UniquePostconditionName"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateUniquePreconditionName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedPreconditions->isUnique(name)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="UniquePreconditionName"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Operation-bodyExpression"
name="bodyExpression" eType="#T-pivot-LanguageExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Operation-isInvalidating"
name="isInvalidating" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Whether this operation may return an invalid result for non-invalid (or invalid if also validating) inputs."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Operation-isTransient"
name="isTransient" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Operation-isTypeof"
name="isTypeof" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Operation-isValidating"
name="isValidating" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Whether this operation may return a non-invalid result for invalid inputs."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Operation-ownedParameters"
name="ownedParameters" upperBound="-1" eType="#T-pivot-Parameter" containment="true"
eOpposite="#F-pivot-Parameter-owningOperation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The ordered set of formal Parameters of this BehavioralFeature.&#xA;&#xA;The parameters owned by this Operation."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Operation-ownedPostconditions"
name="ownedPostconditions" ordered="false" upperBound="-1" eType="#T-pivot-Constraint"
containment="true" eOpposite="#F-pivot-Constraint-owningPostContext">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional set of Constraints specifying the state of the system when the Operation is completed."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Operation-ownedPreconditions"
name="ownedPreconditions" ordered="false" upperBound="-1" eType="#T-pivot-Constraint"
containment="true" eOpposite="#F-pivot-Constraint-owningPreContext">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional set of Constraints on the state of the system when the Operation is invoked."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Operation-owningClass"
name="owningClass" eType="#T-pivot-Class" eOpposite="#F-pivot-Class-ownedOperations">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Class that owns this operation, if any."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Operation-precedence"
name="precedence" eType="#T-pivot-Precedence"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Operation-raisedExceptions"
name="raisedExceptions" ordered="false" upperBound="-1" eType="#T-pivot-Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Types representing exceptions that may be raised during an invocation of this BehavioralFeature.&#xA;&#xA;The Types representing exceptions that may be raised during an invocation of this operation."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Operation-redefinedOperations"
name="redefinedOperations" ordered="false" upperBound="-1" eType="#T-pivot-Operation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Operations that are redefined by this Operation."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-OperationCallExp" name="OperationCallExp"
eSuperTypes="#T-pivot-FeatureCallExp #T-pivot-ReferringElement">
<eOperations name="hasOclVoidOverload" lowerBound="1" eType="#T-pivot-Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="false "/>
</eAnnotations>
</eOperations>
<eOperations name="validateArgumentCount" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedArguments->size() = referredOperation?.ownedParameters?->size()&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="ArgumentCount"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateArgumentTypeIsConformant" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="&#xA;&#x9;let operation : Operation = self.referredOperation in&#xA;&#x9;let parameters : OrderedSet(Parameter) = operation?.ownedParameters in&#xA;&#x9;let selfType : Type = operation?.owningClass in&#xA;&#x9;Sequence{1..ownedArguments->size()}->forAll (i | &#xA;&#x9;&#x9;let argument : OCLExpression = ownedArguments->at(i) in&#xA;&#x9;&#x9;let parameter : Parameter = parameters?->at(i) in&#xA;&#x9;&#x9;let parameterType : Type = parameter.type in&#xA;&#x9;&#x9;let requiredType : Type = if parameter.isTypeof then Class else parameterType?.specializeIn(self, selfType) endif in&#xA;&#x9;&#x9;argument.type?.conformsTo(requiredType))&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="ArgumentTypeIsConformant"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateSafeSourceCanBeNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="(ownedSource &lt;> null) and isSafe implies not ownedSource.isNonNull()&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SafeSourceCanBeNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateUnsafeSourceCanNotBeNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="(not hasOclVoidOverload()) implies ((ownedSource &lt;> null) and not isSafe implies ownedSource.isNonNull())&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="UnsafeSourceCanNotBeNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-OperationCallExp-isVirtual"
name="isVirtual" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-OperationCallExp-ownedArguments"
name="ownedArguments" upperBound="-1" eType="#T-pivot-OCLExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-OperationCallExp-referredOperation"
name="referredOperation" eType="#T-pivot-Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-OppositePropertyCallExp" name="OppositePropertyCallExp"
eSuperTypes="#T-pivot-NavigationCallExp">
<eOperations name="validateSafeSourceCanBeNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="(ownedSource &lt;> null) and isSafe implies not ownedSource.isNonNull()&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="SafeSourceCanBeNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateUnsafeSourceCanNotBeNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="(ownedSource &lt;> null) and not isSafe implies ownedSource.isNonNull()&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="UnsafeSourceCanNotBeNull"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-OppositePropertyCallExp-referredProperty"
name="referredProperty" eType="#T-pivot-Property"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-OrderedSetType" name="OrderedSetType"
eSuperTypes="#T-pivot-CollectionType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-OrphanCompletePackage" name="OrphanCompletePackage"
eSuperTypes="#T-pivot-CompletePackage"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Package" name="Package" eSuperTypes="#T-pivot-Namespace">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A package can have one or more profile applications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles.&#xA;Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter.&#xA;A package is used to group elements, and provides a namespace for the grouped elements."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Package-URI"
name="URI" eType="#T-pivot-String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Package-importedPackages"
name="importedPackages" ordered="false" upperBound="-1" eType="#T-pivot-Package"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Package-nsPrefix"
name="nsPrefix" eType="#T-pivot-String"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Package-ownedClasses"
name="ownedClasses" ordered="false" upperBound="-1" eType="#T-pivot-Class"
containment="true" eOpposite="#F-pivot-Class-owningPackage">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the packaged elements that are Types."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Package-ownedInstances"
name="ownedInstances" ordered="false" upperBound="-1" eType="#T-pivot-InstanceSpecification"
containment="true" eOpposite="#F-pivot-InstanceSpecification-owningPackage">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The instance specification that owns this slot."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Package-ownedPackages"
name="ownedPackages" ordered="false" upperBound="-1" eType="#T-pivot-Package"
containment="true" eOpposite="#F-pivot-Package-owningPackage">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the packaged elements that are Packages."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Package-ownedProfileApplications"
name="ownedProfileApplications" ordered="false" upperBound="-1" eType="#T-pivot-ProfileApplication"
containment="true" eOpposite="#F-pivot-ProfileApplication-owningPackage">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the ProfileApplications that indicate which profiles have been applied to the Package."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Package-owningPackage"
name="owningPackage" eType="#T-pivot-Package" eOpposite="#F-pivot-Package-ownedPackages">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Package that owns this Package."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Parameter" name="Parameter"
eSuperTypes="#T-pivot-VariableDeclaration">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Parameter is a specification of an argument used to pass information into or out of an invocation of a BehavioralFeature. Parameters can be treated as ConnectableElements within Collaborations."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Parameter-isTypeof"
name="isTypeof" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Parameter-owningOperation"
name="owningOperation" eType="#T-pivot-Operation" eOpposite="#F-pivot-Operation-ownedParameters">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Operation owning this parameter."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-ParameterVariable" name="ParameterVariable"
eSuperTypes="#T-pivot-Variable">
<eOperations name="validateHasNoInitializer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedInit = null&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="HasNoInitializer"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Pivotable" name="Pivotable"
instanceClassName="org.eclipse.ocl.pivot.utilities.Pivotable" abstract="true"
interface="true"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Precedence" name="Precedence"
eSuperTypes="#T-pivot-NamedElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Precedence-associativity"
name="associativity" eType="#T-pivot-AssociativityKind" defaultValueLiteral="left"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Precedence-order"
name="order" lowerBound="1" eType="#T-pivot-Integer" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-PrimitiveCompletePackage"
name="PrimitiveCompletePackage" eSuperTypes="#T-pivot-CompletePackage"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-PrimitiveLiteralExp" name="PrimitiveLiteralExp"
abstract="true" eSuperTypes="#T-pivot-LiteralExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-PrimitiveType" name="PrimitiveType"
eSuperTypes="#T-pivot-DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A PrimitiveType defines a predefined DataType, without any substructure. A PrimitiveType may have an algebra and operations defined outside of UML, for example, mathematically."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-PrimitiveType-coercions"
name="coercions" upperBound="-1" eType="#T-pivot-Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Profile" name="Profile" eSuperTypes="#T-pivot-Package">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A profile defines limited extensions to a reference metamodel with the purpose of adapting the metamodel to a specific platform or domain."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Profile-profileApplications"
name="profileApplications" ordered="false" upperBound="-1" eType="#T-pivot-ProfileApplication"
eOpposite="#F-pivot-ProfileApplication-appliedProfile"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-ProfileApplication" name="ProfileApplication"
eSuperTypes="#T-pivot-Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A profile application is used to show which profiles have been applied to a package."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ProfileApplication-appliedProfile"
name="appliedProfile" lowerBound="1" eType="#T-pivot-Profile" eOpposite="#F-pivot-Profile-profileApplications">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Profiles that are applied to a Package through this ProfileApplication."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-ProfileApplication-isStrict"
name="isStrict" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ProfileApplication-owningPackage"
name="owningPackage" lowerBound="1" eType="#T-pivot-Package" eOpposite="#F-pivot-Package-ownedProfileApplications">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The package that owns the profile application."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Property" name="Property"
eSuperTypes="#T-pivot-Feature">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Property is a StructuralFeature. A Property related by ownedAttribute to a Classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the Classifier to a value or set of values of the type of the attribute. A Property related by memberEnd to an Association represents an end of the Association. The type of the Property is the type of the end of the Association. A Property has the capability of being a DeploymentTarget in a Deployment relationship. This enables modeling the deployment to hierarchical nodes that have Properties functioning as internal parts. Property specializes ParameterableElement to specify that a Property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template."/>
</eAnnotations>
<eOperations name="isAttribute" lowerBound="1" eType="#T-pivot-Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="&#xA;--Type.allInstances()->exists(c| c.ownedAttribute->includes(p))&#xA;let container : ocl::OclElement = oclContainer() in container.oclIsKindOf(Class) and container.oclAsType(Class).ownedProperties->includes(self)&#xA;&#xA;"/>
</eAnnotations>
<eParameters name="p" lowerBound="1" eType="#T-pivot-Property"/>
</eOperations>
<eOperations name="validateCompatibleDefaultExpression" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="ownedExpression &lt;> null and ownedExpression.oclAsType(ExpressionInOCL).ownedBody &lt;> null implies CompatibleBody(ownedExpression)&#xA;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CompatibleDefaultExpression"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Property-associationClass"
name="associationClass" eType="#T-pivot-AssociationClass" eOpposite="#F-pivot-AssociationClass-unownedAttributes"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Property-defaultValue"
name="defaultValue" eType="#T-pivot-Object" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Property-defaultValueString"
name="defaultValueString" eType="#T-pivot-String"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Property-isComposite"
name="isComposite" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Property-isDerived"
name="isDerived" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Property-isID"
name="isID" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="True indicates this property can be used to uniquely identify an instance of the containing Class."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Property-isImplicit"
name="isImplicit" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Property-isReadOnly"
name="isReadOnly" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If isReadOnly is true, the StructuralFeature may not be written to after initialization."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Property-isResolveProxies"
name="isResolveProxies" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Property-isTransient"
name="isTransient" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Property-isUnsettable"
name="isUnsettable" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Property-isVolatile"
name="isVolatile" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Property-keys"
name="keys" ordered="false" upperBound="-1" eType="#T-pivot-Property"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Property-opposite"
name="opposite" eType="#T-pivot-Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="In the case where the Property is one end of a binary association this gives the other end."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Property-ownedExpression"
name="ownedExpression" eType="#T-pivot-LanguageExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Property-owningClass"
name="owningClass" eType="#T-pivot-Class" eOpposite="#F-pivot-Class-ownedProperties">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Class that owns this Property, if any."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Property-redefinedProperties"
name="redefinedProperties" ordered="false" upperBound="-1" eType="#T-pivot-Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The properties that are redefined by this property, if any."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Property-referredProperty"
name="referredProperty" eType="#T-pivot-Property"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Property-subsettedProperty"
name="subsettedProperty" ordered="false" upperBound="-1" eType="#T-pivot-Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The properties of which this Property is constrained to be a subset, if any."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-PropertyCallExp" name="PropertyCallExp"
eSuperTypes="#T-pivot-NavigationCallExp #T-pivot-ReferringElement">
<eOperations name="getSpecializedReferredPropertyOwningType" lowerBound="1" eType="#T-pivot-Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="referredProperty?.owningClass "/>
</eAnnotations>
</eOperations>
<eOperations name="getSpecializedReferredPropertyType" lowerBound="1" eType="#T-pivot-Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="referredProperty?.type.oclAsType(Class) "/>
</eAnnotations>
</eOperations>
<eOperations name="validateCompatibleResultType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="type = getSpecializedReferredPropertyType()&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CompatibleResultType"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="validateNonStaticSourceTypeIsConformant" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoo