| <?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.

An Imperative QVT trabsformation is expected to be created by an autogenerator that observes the following run-time restrictions:

A mapping that my be re-invoked must have MappingCall.isInfinite set for every possible invocation.

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.

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.

All reads by Functions/Queries must be guaranteed to succeed; i.e. the invoking mapping must check readiness before calling the query.

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
explicit nested invocation of mappings with bindings for the invoked mapping's
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
of the bound variables of the referredMapping to values provided in the invocation.
Where Collections of values are provided for isLoop bindings, a distinct invocation
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
a MappingCall. A value is bound to the variable. OPtionally isLoop may be true
to indicate that the value is a collection of values, each of which is to
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
of the bound variables of the referredMapping to values provided in the invocation.
Where Collections of values are provided for isLoop bindings, a distinct invocation
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> |