blob: c21e404b2d75597a0e09f8e9b9f7e37d948b21ff [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" name="qvtimperative" nsURI="http://www.eclipse.org/qvt/2015/QVTimperative"
nsPrefix="qvti">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Package for an Imperative QVT transformation.&#xD;&#xA;&#xD;&#xA;An Imperative QVT trabsformation is expected to be created by an autogenerator that observes the following run-time restrictions:&#xD;&#xA;&#xD;&#xA;A mapping that my be re-invoked must have MappingCall.isInfinite set for every possible invocation.&#xD;&#xA;&#xD;&#xA;A mapping that reads object slots before they are guaranteed to have been assigned must declare the slots property in a corresponding ImperativeArea.checkedProperties entry.&#xD;&#xA;&#xD;&#xA;A mapping that assigns an object slot that any mapping may access before assignment is guaranteed must declare declare the slots property in a corresponding ImperativeArea.enforcedProperties entry.&#xD;&#xA;&#xD;&#xA;All reads by Functions/Queries must be guaranteed to succeed; i.e. the invoking mapping must check readiness before calling the query.&#xD;&#xA;&#xD;&#xA;All writes to multi-valued properties must be guaranteed to occur before any read of the property. "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Import">
<details key="qvtb" value="../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore#/"/>
<details key="qvtcb" value="../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore#/"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EClass" name="ConnectionAssignment" eSuperTypes="../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore#//Assignment">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A ConnectionAssignment assigns initial values to a ConnectionVariable."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="targetVariable" lowerBound="1"
eType="#//ConnectionVariable">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="assignment"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConnectionStatement" eSuperTypes="#//MappingStatement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A ConnectionStatement assigns results to a ConnectionVariable."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="targetVariable" lowerBound="1"
eType="#//ConnectionVariable">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="assignment"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
containment="true">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="valueAssignment"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConnectionVariable" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Variable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A ConnectionVariable accumulates one or more assignments."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ImperativeArea" abstract="true" interface="true"
eSuperTypes="../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore#//Area">
<eStructuralFeatures xsi:type="ecore:EReference" name="checkedProperties" ordered="false"
upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The properties whose accesses must be polled for readiness prior to use here."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="enforcedProperties" ordered="false"
upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The properties whose assignments may be polled for readiness prior to use elsewhere."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ImperativeBottomPattern" eSuperTypes="../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore#//BottomPattern">
<eStructuralFeatures xsi:type="ecore:EReference" name="orderedAssignment" upperBound="-1"
eType="ecore:EClass ../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore#//Assignment"
volatile="true" derived="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ImperativeDomain" eSuperTypes="../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore#//CoreDomain #//ImperativeArea"/>
<eClassifiers xsi:type="ecore:EClass" name="ImperativeModel" eSuperTypes="../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore#//BaseModel">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Model of an Imperative QVT transformation."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Mapping" eSuperTypes="../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore#//AbstractMapping #//ImperativeArea">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An Imperative Mapping extends the abstract declarative mapping to support&#xA;explicit nested invocation of mappings with bindings for the invoked mapping's&#xA;bound variables."/>
</eAnnotations>
<eOperations name="getAllMappings" ordered="false" upperBound="-1" eType="#//Mapping"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappingStatement" eType="#//MappingStatement"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="polledClasses" upperBound="-1"
eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The classes whse instances must be polled for readiness prior to use."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedKeyExpression" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MappingCall" eSuperTypes="#//MappingStatement ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//ReferringElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A MappingCall specifies the invocation of a referredMapping with a set of bindings&#xA;of the bound variables of the referredMapping to values provided in the invocation.&#xA;Where Collections of values are provided for isLoop bindings, a distinct invocation&#xA;is performed for each distinct permutation of Collection elements."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="binding" upperBound="-1"
eType="#//MappingCallBinding" containment="true" eOpposite="#//MappingCallBinding/mappingCall">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Set of value to bound variable bindings."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isInfinite" eType="ecore:EDataType ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Boolean"
defaultValueLiteral="false" unsettable="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An infinite MappingCall requires re-invocation of the called mapping to be suppressed to avoid an infinite loop."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="referredMapping" lowerBound="1"
eType="#//Mapping">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Mapping invoked by the MappingCall."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MappingCallBinding" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A MappingCallBinding specifies the binding of a single variable as part of&#xA;a MappingCall. A value is bound to the variable. OPtionally isLoop may be true&#xA;to indicate that the value is a collection of values, each of which is to&#xA;be used as part of a distinct invocation."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="boundVariable" lowerBound="1"
eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Variable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The variable with the mappingCall.referredMapping bound to the/a value"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isPolled" eType="ecore:EDataType ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Boolean"
defaultValueLiteral="false" unsettable="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A polled MappingCallBinding requires invocation of the mapping to be deverred until all relevant properties are available."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappingCall" eType="#//MappingCall"
eOpposite="#//MappingCall/binding">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The containing MappingCall."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The value or collection of values to bind to boundVariable"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MappingLoop" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//CallExp #//MappingStatement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An Imperative MappingLoop support an iterated nested mapping call."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedBody" lowerBound="1"
eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedIterators" upperBound="-1"
eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Variable"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MappingSequence" eSuperTypes="#//MappingStatement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A MappingSequence specifies a sequence of mapping statements"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappingStatements" upperBound="-1"
eType="#//MappingStatement" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MappingStatement" abstract="true" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A MappingCall specifies the invocation of a referredMapping with a set of bindings&#xA;of the bound variables of the referredMapping to values provided in the invocation.&#xA;Where Collections of values are provided for isLoop bindings, a distinct invocation&#xA;is performed for each distinct permutation of Collection elements."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="VariablePredicate" eSuperTypes="../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore#//Predicate">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A VariablePredicate validates the initialization of a guard pattern variable."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="targetVariable" lowerBound="1"
eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Variable">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="predicate"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
</ecore:EPackage>