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#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="not referredProperty?.isStatic implies &#xA;&#x9;ownedSource?.type?.conformsTo(getSpecializedReferredPropertyOwningType())&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="NonStaticSourceTypeIsConformant"/>
</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="(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-PropertyCallExp-referredProperty"
name="referredProperty" eType="#T-pivot-Property"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Pseudostate" name="Pseudostate"
eSuperTypes="#T-pivot-Vertex">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Pseudostate is an abstraction that encompasses different types of transient Vertices in the StateMachine graph. A StateMachine instance never comes to rest in a Pseudostate, instead, it will exit and enter the Pseudostate within a single run-to-completion step."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Pseudostate-kind"
name="kind" lowerBound="1" eType="#T-pivot-PseudostateKind" defaultValueLiteral="initial">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Pseudostate-owningState"
name="owningState" eType="#T-pivot-State" eOpposite="#F-pivot-State-ownedConnectionPoints">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The State that owns this Pseudostate and in which it appears."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Pseudostate-owningStateMachine"
name="owningStateMachine" eType="#T-pivot-StateMachine" eOpposite="#F-pivot-StateMachine-ownedConnectionPoints">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-RealLiteralExp" name="RealLiteralExp"
eSuperTypes="#T-pivot-NumericLiteralExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-RealLiteralExp-realSymbol"
name="realSymbol" lowerBound="1" eType="#T-pivot-Real"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-ReferringElement" name="ReferringElement"
abstract="true" interface="true">
<eOperations name="getReferredElement" lowerBound="1" eType="#T-pivot-Element"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Region" name="Region" eSuperTypes="#T-pivot-Namespace">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Region is a top-level part of a StateMachine or a composite State, that serves as a container for the Vertices and Transitions of the StateMachine. A StateMachine or composite State may contain multiple Regions representing behaviors that may occur in parallel."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Region-extendedRegion"
name="extendedRegion" eType="#T-pivot-Region">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The region of which this region is an extension."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Region-ownedSubvertexes"
name="ownedSubvertexes" ordered="false" upperBound="-1" eType="#T-pivot-Vertex"
containment="true" eOpposite="#F-pivot-Vertex-owningRegion">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The set of Vertices that are owned by this Region."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Region-ownedTransitions"
name="ownedTransitions" ordered="false" upperBound="-1" eType="#T-pivot-Transition"
containment="true" eOpposite="#F-pivot-Transition-owningRegion">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The set of Transitions owned by the Region."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Region-owningState"
name="owningState" eType="#T-pivot-State" eOpposite="#F-pivot-State-ownedRegions">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Region-owningStateMachine"
name="owningStateMachine" eType="#T-pivot-StateMachine" eOpposite="#F-pivot-StateMachine-ownedRegions">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-ResultVariable" name="ResultVariable"
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="not ownedInit?.isRequired implies not 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-SelfType" name="SelfType"
eSuperTypes="#T-pivot-Class">
<eOperations name="specializeIn" lowerBound="1" eType="#T-pivot-Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="selfType&#xA;&#xA;"/>
</eAnnotations>
<eParameters name="expr" lowerBound="1" eType="#T-pivot-CallExp"/>
<eParameters name="selfType" lowerBound="1" eType="#T-pivot-Type"/>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-SendSignalAction" name="SendSignalAction"
eSuperTypes="#T-pivot-NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-SendSignalAction-signal"
name="signal" lowerBound="1" eType="#T-pivot-Signal"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-SequenceType" name="SequenceType"
eSuperTypes="#T-pivot-CollectionType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-SetType" name="SetType" eSuperTypes="#T-pivot-CollectionType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-ShadowExp" name="ShadowExp"
eSuperTypes="#T-pivot-OCLExpression">
<eOperations name="validateClassHasNoStringValueInitializer" 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="ClassHasNoStringValueInitializer"/>
</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="validateDataTypeHasNoPartInitializers" 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="DataTypeHasNoPartInitializers"/>
</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="validateDataTypeHasOnePartInitializer" 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.oclIsKindOf(DataType) implies ownedParts->size() = 1&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="DataTypeHasOnePartInitializer"/>
</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="validateDataTypeHasStringValueInitializer" 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="DataTypeHasStringValueInitializer"/>
</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="validateInitializesAllClassProperties" 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="if type.oclIsKindOf(DataType) then Tuple{status:Boolean[1]=true, message:String[1]=''}.status else &#xA;&#x9;let partProperties = ownedParts.referredProperty->asSet() in&#xA;&#x9;let allProperties = type.oclAsType(Class)->closure(superClasses).ownedProperties->asSet() in&#xA;&#x9;let classProperties = allProperties->reject(isDerived or isImplicit or isStatic or isTransient)->reject(name?.startsWith('ocl')) in&#xA;&#x9;let requiredClassProperties = classProperties->reject(defaultValueString &lt;> null)->reject(isVolatile or not isRequired)->reject(type.oclIsKindOf(CollectionType))->reject((opposite&lt;>null) and opposite.isComposite) in&#xA;&#x9;let extraProperties : Set(NamedElement[*|1]) = partProperties->excludingAll(classProperties) in&#xA;&#x9;let missingProperties : Set(NamedElement[*|1]) = requiredClassProperties->excludingAll(partProperties) in&#xA;&#x9;if extraProperties->notEmpty() then Tuple{status:Boolean[1]=false, message:String[1]=extraProperties->sortedBy(name)->iterate(p; acc:String='Unexpected initializers:'|acc +' ' + p.name)}.status&#xA;&#x9;else if missingProperties->notEmpty() then Tuple{status:Boolean[1]=false, message:String[1]=missingProperties->sortedBy(name)->iterate(p; acc:String='Missing initializers:'|acc +' ' + p.name)}.status&#xA;&#x9;else Tuple{status:Boolean[1]=true, message:String[1]=''}.status&#xA;&#x9;endif endif endif&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="InitializesAllClassProperties"/>
</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-ShadowExp-ownedParts"
name="ownedParts" upperBound="-1" eType="#T-pivot-ShadowPart" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-ShadowExp-value"
name="value" eType="#T-pivot-String"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-ShadowPart" name="ShadowPart"
eSuperTypes="#T-pivot-TypedElement">
<eOperations name="validateCompatibleInitialiserType" 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.type?.conformsTo(type)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CompatibleInitialiserType"/>
</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:EReference" xmi:id="F-pivot-ShadowPart-ownedInit"
name="ownedInit" lowerBound="1" eType="#T-pivot-OCLExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-ShadowPart-referredProperty"
name="referredProperty" lowerBound="1" eType="#T-pivot-Property"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Signal" name="Signal" eSuperTypes="#T-pivot-Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Signal is a specification of a kind of communication between objects in which a reaction is asynchronously triggered in the receiver without a reply."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Slot" name="Slot" eSuperTypes="#T-pivot-Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Slot designates that an entity modeled by an InstanceSpecification has a value or values for a specific StructuralFeature."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Slot-definingProperty"
name="definingProperty" lowerBound="1" eType="#T-pivot-Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The StructuralFeature that specifies the values that may be held by the Slot."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Slot-ownedValues"
name="ownedValues" upperBound="-1" eType="#T-pivot-ValueSpecification" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The value or values held by the Slot."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Slot-owningInstance"
name="owningInstance" lowerBound="1" eType="#T-pivot-InstanceSpecification"
eOpposite="#F-pivot-InstanceSpecification-ownedSlots">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The InstanceSpecification that owns this Slot."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-StandardLibrary" name="StandardLibrary"
eSuperTypes="#T-pivot-Element">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-StandardLibrary-owningCompleteEnvironment"
name="owningCompleteEnvironment" eType="#T-pivot-CompleteEnvironment" eOpposite="#F-pivot-CompleteEnvironment-ownedStandardLibrary"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-State" name="State" eSuperTypes="#T-pivot-Namespace #T-pivot-Vertex">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A State models a situation during which some (usually implicit) invariant condition holds."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-State-isComposite"
name="isComposite" lowerBound="1" eType="#T-pivot-Boolean" changeable="false"
volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A state with isComposite=true is said to be a composite State. A composite State is a State that contains at least one Region."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-State-isOrthogonal"
name="isOrthogonal" lowerBound="1" eType="#T-pivot-Boolean" changeable="false"
volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A State with isOrthogonal=true is said to be an orthogonal composite State An orthogonal composite State contains two or more Regions."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-State-isSimple"
name="isSimple" lowerBound="1" eType="#T-pivot-Boolean" changeable="false"
volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A State with isSimple=true is said to be a simple State A simple State does not have any Regions and it does not refer to any submachine StateMachine."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-State-isSubmachineState"
name="isSubmachineState" lowerBound="1" eType="#T-pivot-Boolean" changeable="false"
volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A State with isSubmachineState=true is said to be a submachine State Such a State refers to another StateMachine(submachine)."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-State-ownedConnectionPoints"
name="ownedConnectionPoints" ordered="false" upperBound="-1" eType="#T-pivot-Pseudostate"
containment="true" eOpposite="#F-pivot-Pseudostate-owningState">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The entry and exit Pseudostates of a composite State. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite States."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-State-ownedConnections"
name="ownedConnections" ordered="false" upperBound="-1" eType="#T-pivot-ConnectionPointReference"
containment="true" eOpposite="#F-pivot-ConnectionPointReference-owningState">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The entry and exit connection points used in conjunction with this (submachine) State, i.e., as targets and sources, respectively, in the Region with the submachine State. A connection point reference references the corresponding definition of a connection point Pseudostate in the StateMachine referenced by the submachine State."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-State-ownedDeferrableTriggers"
name="ownedDeferrableTriggers" ordered="false" upperBound="-1" eType="#T-pivot-Trigger"
containment="true" eOpposite="#F-pivot-Trigger-owningState">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A list of Triggers that are candidates to be retained by the StateMachine if they trigger no Transitions out of the State (not consumed). A deferred Trigger is retained until the StateMachine reaches a State configuration where it is no longer deferred."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-State-ownedDoActivity"
name="ownedDoActivity" eType="#T-pivot-Behavior" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional Behavior that is executed while being in the State. The execution starts when this State is entered, and ceases either by itself when done, or when the State is exited, whichever comes first."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-State-ownedEntry"
name="ownedEntry" eType="#T-pivot-Behavior" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional Behavior that is executed whenever this State is entered regardless of the Transition taken to reach the State. If defined, entry Behaviors are always executed to completion prior to any internal Behavior or Transitions performed within the State."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-State-ownedExit"
name="ownedExit" eType="#T-pivot-Behavior" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional Behavior that is executed whenever this State is exited regardless of which Transition was taken out of the State. If defined, exit Behaviors are always executed to completion only after all internal and transition Behaviors have completed execution."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-State-ownedRegions"
name="ownedRegions" ordered="false" upperBound="-1" eType="#T-pivot-Region"
containment="true" eOpposite="#F-pivot-Region-owningState">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Regions owned directly by the State."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-State-ownedStateInvariant"
name="ownedStateInvariant" eType="#T-pivot-Constraint" containment="true"
eOpposite="#F-pivot-Constraint-owningState">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies conditions that are always true when this State is the current State. In ProtocolStateMachines state invariants are additional conditions to the preconditions of the outgoing Transitions, and to the postcondition of the incoming Transitions."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-State-redefinedState"
name="redefinedState" eType="#T-pivot-State">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The State of which this State is a redefinition."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-State-submachines"
name="submachines" eType="#T-pivot-StateMachine" eOpposite="#F-pivot-StateMachine-submachineStates">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The StateMachine that is to be inserted in place of the (submachine) State."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-StateExp" name="StateExp"
eSuperTypes="#T-pivot-OCLExpression">
<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-StateExp-referredState"
name="referredState" eType="#T-pivot-State"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-StateMachine" name="StateMachine"
eSuperTypes="#T-pivot-Behavior">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="StateMachines can be used to express event-driven behaviors of parts of a system. Behavior is modeled as a traversal of a graph of Vertices interconnected by one or more joined Transition arcs that are triggered by the dispatching of successive Event occurrences. During this traversal, the StateMachine may execute a sequence of Behaviors associated with various elements of the StateMachine."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-StateMachine-extendedStateMachines"
name="extendedStateMachines" ordered="false" upperBound="-1" eType="#T-pivot-StateMachine">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The StateMachines of which this is an extension."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-StateMachine-ownedConnectionPoints"
name="ownedConnectionPoints" ordered="false" upperBound="-1" eType="#T-pivot-Pseudostate"
containment="true" eOpposite="#F-pivot-Pseudostate-owningStateMachine">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The connection points defined for this StateMachine. They represent the interface of the StateMachine when used as part of submachine State"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-StateMachine-ownedRegions"
name="ownedRegions" ordered="false" lowerBound="1" upperBound="-1" eType="#T-pivot-Region"
containment="true" eOpposite="#F-pivot-Region-owningStateMachine">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Regions owned directly by the StateMachine."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-StateMachine-submachineStates"
name="submachineStates" ordered="false" upperBound="-1" eType="#T-pivot-State"
eOpposite="#F-pivot-State-submachines">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the submachine(s) in case of a submachine State. Multiple machines are referenced in case of a concurrent State."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Stereotype" name="Stereotype"
eSuperTypes="#T-pivot-Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A stereotype defines how an existing metaclass may be extended, and enables the use of platform or domain specific terminology or notation in place of, or in addition to, the ones used for the extended metaclass."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Stereotype-ownedExtenders"
name="ownedExtenders" ordered="false" upperBound="-1" eType="#T-pivot-StereotypeExtender"
containment="true" eOpposite="#F-pivot-StereotypeExtender-owningStereotype"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-StereotypeExtender" name="StereotypeExtender"
eSuperTypes="#T-pivot-Element">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-StereotypeExtender-class"
name="class" lowerBound="1" eType="#T-pivot-Class" eOpposite="#F-pivot-Class-extenders"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-StereotypeExtender-isRequired"
name="isRequired" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-StereotypeExtender-owningStereotype"
name="owningStereotype" lowerBound="1" eType="#T-pivot-Stereotype" eOpposite="#F-pivot-Stereotype-ownedExtenders"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-StringLiteralExp" name="StringLiteralExp"
eSuperTypes="#T-pivot-PrimitiveLiteralExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-StringLiteralExp-stringSymbol"
name="stringSymbol" lowerBound="1" eType="#T-pivot-String"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-TemplateBinding" name="TemplateBinding"
eSuperTypes="#T-pivot-Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A TemplateBinding is a DirectedRelationship between a TemplateableElement and a template. A TemplateBinding specifies the TemplateParameterSubstitutions of actual parameters for the formal parameters of the template."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateBinding-ownedSubstitutions"
name="ownedSubstitutions" ordered="false" lowerBound="1" upperBound="-1" eType="#T-pivot-TemplateParameterSubstitution"
containment="true" eOpposite="#F-pivot-TemplateParameterSubstitution-owningBinding">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The TemplateParameterSubstitutions owned by this TemplateBinding."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateBinding-owningElement"
name="owningElement" lowerBound="1" eType="#T-pivot-TemplateableElement" eOpposite="#F-pivot-TemplateableElement-ownedBindings">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The TemplateableElement that is bound by this TemplateBinding."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateBinding-templateSignature"
name="templateSignature" lowerBound="1" eType="#T-pivot-TemplateSignature"
changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The TemplateSignature for the template that is the target of this TemplateBinding."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-TemplateParameter" name="TemplateParameter"
eSuperTypes="#T-pivot-Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A TemplateParameter exposes a ParameterableElement as a formal parameter of a template."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateParameter-constrainingClasses"
name="constrainingClasses" ordered="false" upperBound="-1" eType="#T-pivot-Class"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateParameter-owningSignature"
name="owningSignature" lowerBound="1" eType="#T-pivot-TemplateSignature" eOpposite="#F-pivot-TemplateSignature-ownedParameters">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The TemplateSignature that owns this TemplateParameter."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-TemplateParameterSubstitution"
name="TemplateParameterSubstitution" eSuperTypes="#T-pivot-Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A TemplateParameterSubstitution relates the actual parameter to a formal TemplateParameter as part of a template binding."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateParameterSubstitution-actual"
name="actual" lowerBound="1" eType="#T-pivot-Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The ParameterableElement that is the actual parameter for this TemplateParameterSubstitution."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateParameterSubstitution-formal"
name="formal" lowerBound="1" eType="#T-pivot-TemplateParameter">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The formal TemplateParameter that is associated with this TemplateParameterSubstitution."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateParameterSubstitution-ownedWildcard"
name="ownedWildcard" eType="#T-pivot-WildcardType" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateParameterSubstitution-owningBinding"
name="owningBinding" lowerBound="1" eType="#T-pivot-TemplateBinding" eOpposite="#F-pivot-TemplateBinding-ownedSubstitutions">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The TemplateBinding that owns this TemplateParameterSubstitution."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-TemplateSignature" name="TemplateSignature"
eSuperTypes="#T-pivot-Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Template Signature bundles the set of formal TemplateParameters for a template."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateSignature-ownedParameters"
name="ownedParameters" lowerBound="1" upperBound="-1" eType="#T-pivot-TemplateParameter"
containment="true" eOpposite="#F-pivot-TemplateParameter-owningSignature">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The formal parameters that are owned by this TemplateSignature."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateSignature-owningElement"
name="owningElement" lowerBound="1" eType="#T-pivot-TemplateableElement" eOpposite="#F-pivot-TemplateableElement-ownedSignature">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The TemplateableElement that owns this TemplateSignature."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-TemplateableElement" name="TemplateableElement"
abstract="true" eSuperTypes="#T-pivot-Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A TemplateableElement is an Element that can optionally be defined as a template and bound to other templates."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateableElement-ownedBindings"
name="ownedBindings" ordered="false" upperBound="-1" eType="#T-pivot-TemplateBinding"
containment="true" eOpposite="#F-pivot-TemplateBinding-owningElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The optional TemplateBindings from this TemplateableElement to one or more templates."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateableElement-ownedSignature"
name="ownedSignature" eType="#T-pivot-TemplateSignature" containment="true"
eOpposite="#F-pivot-TemplateSignature-owningElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The optional TemplateSignature specifying the formal TemplateParameters for this TemplateableElement. If a TemplateableElement has a TemplateSignature, then it is a template."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TemplateableElement-unspecializedElement"
name="unspecializedElement" eType="#T-pivot-TemplateableElement" transient="true"
resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Transition" name="Transition"
eSuperTypes="#T-pivot-Namespace">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Transition represents an arc between exactly one source Vertex and exactly one Target vertex (the source and targets may be the same Vertex). It may form part of a compound transition, which takes the StateMachine from one steady State configuration to another, representing the full response of the StateMachine to an occurrence of an Event that triggered it."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-Transition-kind"
name="kind" lowerBound="1" eType="#T-pivot-TransitionKind" defaultValueLiteral="external">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Indicates the precise type of the Transition."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Transition-ownedEffect"
name="ownedEffect" eType="#T-pivot-Behavior" containment="true" eOpposite="#F-pivot-Behavior-owningTransition">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies an optional behavior to be performed when the Transition fires."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Transition-ownedGuard"
name="ownedGuard" eType="#T-pivot-Constraint" containment="true" eOpposite="#F-pivot-Constraint-owningTransition">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A guard is a Constraint that provides a fine-grained control over the firing of the Transition. The guard is evaluated when an Event occurrence is dispatched by the StateMachine. If the guard is true at that time, the Transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Transition-ownedTriggers"
name="ownedTriggers" ordered="false" upperBound="-1" eType="#T-pivot-Trigger"
containment="true" eOpposite="#F-pivot-Trigger-owningTransition">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the Triggers that may fire the transition."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Transition-owningRegion"
name="owningRegion" lowerBound="1" eType="#T-pivot-Region" eOpposite="#F-pivot-Region-ownedTransitions">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Designates the Region that owns this Transition."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Transition-source"
name="source" lowerBound="1" eType="#T-pivot-Vertex" eOpposite="#F-pivot-Vertex-outgoingTransitions">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Designates the originating Vertex (State or Pseudostate) of the Transition."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Transition-target"
name="target" lowerBound="1" eType="#T-pivot-Vertex" eOpposite="#F-pivot-Vertex-incomingTransitions">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Designates the target Vertex that is reached when the Transition is taken."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Trigger" name="Trigger" eSuperTypes="#T-pivot-NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Trigger specifies a specific point at which an Event occurrence may trigger an effect in a Behavior. A Trigger may be qualified by the Port on which the Event occurred."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Trigger-owningState"
name="owningState" eType="#T-pivot-State" eOpposite="#F-pivot-State-ownedDeferrableTriggers"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Trigger-owningTransition"
name="owningTransition" eType="#T-pivot-Transition" eOpposite="#F-pivot-Transition-ownedTriggers"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-TupleLiteralExp" name="TupleLiteralExp"
eSuperTypes="#T-pivot-LiteralExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TupleLiteralExp-ownedParts"
name="ownedParts" upperBound="-1" eType="#T-pivot-TupleLiteralPart" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-TupleLiteralPart" name="TupleLiteralPart"
eSuperTypes="#T-pivot-VariableDeclaration">
<eOperations name="validateCompatibleInitialiserType" 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 and ownedInit.type &lt;> null implies ownedInit.type.conformsTo(type)&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CompatibleInitialiserType"/>
</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-TupleLiteralPart-ownedInit"
name="ownedInit" eType="#T-pivot-OCLExpression" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-TupleType" name="TupleType"
eSuperTypes="#T-pivot-DataType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Type" name="Type" abstract="true"
eSuperTypes="#T-pivot-NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Type constrains the values represented by a TypedElement."/>
</eAnnotations>
<eOperations name="flattenedType" eType="#T-pivot-Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self&#xA;&#xA;"/>
</eAnnotations>
</eOperations>
<eOperations name="isClass" eType="#T-pivot-Class"/>
<eOperations name="isTemplateParameter" eType="#T-pivot-TemplateParameter"/>
<eOperations name="specializeIn" lowerBound="1" eType="#T-pivot-Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self&#xA;&#xA;"/>
</eAnnotations>
<eParameters name="expr" lowerBound="1" eType="#T-pivot-CallExp"/>
<eParameters name="selfType" lowerBound="1" eType="#T-pivot-Type"/>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-TypeExp" name="TypeExp" eSuperTypes="#T-pivot-OCLExpression #T-pivot-ReferringElement">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TypeExp-referredType"
name="referredType" eType="#T-pivot-Type"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-TypedElement" name="TypedElement"
abstract="true" eSuperTypes="#T-pivot-NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A TypedElement is a NamedElement that may have a Type specified for it."/>
</eAnnotations>
<eOperations name="CompatibleBody" lowerBound="1" eType="#T-pivot-Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="&#xA;&#x9;bodySpecification.type?.conformsTo(self.type)&#xA;&#xA;"/>
</eAnnotations>
<eParameters name="bodySpecification" lowerBound="1" eType="#T-pivot-ValueSpecification"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-TypedElement-isMany"
name="isMany" lowerBound="1" eType="#T-pivot-Boolean" changeable="false" volatile="true"
transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-TypedElement-isRequired"
name="isRequired" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-TypedElement-type"
name="type" eType="#T-pivot-Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The type of the TypedElement."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-UnlimitedNaturalLiteralExp"
name="UnlimitedNaturalLiteralExp" eSuperTypes="#T-pivot-NumericLiteralExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="F-pivot-UnlimitedNaturalLiteralExp-unlimitedNaturalSymbol"
name="unlimitedNaturalSymbol" lowerBound="1" eType="#T-pivot-UnlimitedNatural"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-UnspecifiedValueExp" name="UnspecifiedValueExp"
eSuperTypes="#T-pivot-OCLExpression"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-ValueSpecification" name="ValueSpecification"
abstract="true" eSuperTypes="#T-pivot-TypedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A ValueSpecification is the specification of a (possibly empty) set of values. A ValueSpecification is a ParameterableElement that may be exposed as a formal TemplateParameter and provided as the actual parameter in the binding of a template."/>
</eAnnotations>
<eOperations name="booleanValue" lowerBound="1" eType="#T-pivot-Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query booleanValue() gives a single Boolean value when one can be computed."/>
</eAnnotations>
</eOperations>
<eOperations name="integerValue" eType="#T-pivot-Integer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query integerValue() gives a single Integer value when one can be computed."/>
</eAnnotations>
</eOperations>
<eOperations name="isComputable" lowerBound="1" eType="#T-pivot-Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all ValueSpecifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute at least the value of all LiteralSpecifications."/>
</eAnnotations>
</eOperations>
<eOperations name="isNull" lowerBound="1" eType="#T-pivot-Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query isNull() returns true when it can be computed that the value is null."/>
</eAnnotations>
</eOperations>
<eOperations name="stringValue" eType="#T-pivot-String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query stringValue() gives a single String value when one can be computed."/>
</eAnnotations>
</eOperations>
<eOperations name="unlimitedValue" eType="#T-pivot-UnlimitedNatural">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed."/>
</eAnnotations>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Variable" name="Variable"
eSuperTypes="#T-pivot-VariableDeclaration">
<eOperations name="validateCompatibleInitialiserType" 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;&#xA;"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
<details key="originalName" value="CompatibleInitialiserType"/>
</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-Variable-isImplicit"
name="isImplicit" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Variable-ownedInit"
name="ownedInit" eType="#T-pivot-OCLExpression" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Variable-representedParameter"
name="representedParameter" eType="#T-pivot-Parameter"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-VariableDeclaration" name="VariableDeclaration"
abstract="true" eSuperTypes="#T-pivot-TypedElement">
<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:EReference" xmi:id="F-pivot-VariableDeclaration-typeValue"
name="typeValue" eType="#T-pivot-Type" transient="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-VariableExp" name="VariableExp"
eSuperTypes="#T-pivot-OCLExpression #T-pivot-ReferringElement">
<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-VariableExp-isImplicit"
name="isImplicit" lowerBound="1" eType="#T-pivot-Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-VariableExp-referredVariable"
name="referredVariable" eType="#T-pivot-VariableDeclaration"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Vertex" name="Vertex" abstract="true"
eSuperTypes="#T-pivot-NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Vertex is an abstraction of a node in a StateMachine graph. It can be the source or destination of any number of Transitions."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Vertex-incomingTransitions"
name="incomingTransitions" ordered="false" upperBound="-1" eType="#T-pivot-Transition"
changeable="false" eOpposite="#F-pivot-Transition-target">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the Transitions entering this Vertex."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Vertex-outgoingTransitions"
name="outgoingTransitions" ordered="false" upperBound="-1" eType="#T-pivot-Transition"
changeable="false" eOpposite="#F-pivot-Transition-source">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the Transitions departing from this Vertex."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-Vertex-owningRegion"
name="owningRegion" eType="#T-pivot-Region" eOpposite="#F-pivot-Region-ownedSubvertexes">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Region that contains this Vertex."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-Visitable" name="Visitable"
instanceClassName="org.eclipse.ocl.pivot.util.Visitable" abstract="true" interface="true"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-VoidType" name="VoidType"
eSuperTypes="#T-pivot-Class"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="T-pivot-WildcardType" name="WildcardType"
eSuperTypes="#T-pivot-Class">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-WildcardType-lowerBound"
name="lowerBound" eType="#T-pivot-Type"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-pivot-WildcardType-upperBound"
name="upperBound" eType="#T-pivot-Type"/>
</eClassifiers>
</ecore:EPackage>