blob: c4765ecdecc1719e2c0953e0ff8fb0adb672096a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2022 Willink Transformations and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v2.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v20.html
Contributors:
E.D.Willink - initial API and implementation
-->
<emof:Package xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:emof="http://schema.omg.org/spec/MOF/2.0/emof.xml" xmi:id="FlatQVT"
name="FlatQVT" uri="http://schema.omg.org/spec/QVT/1.1/flatqvt.xml">
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.AltExp" name="AltExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.AltExp.body" name="body" isOrdered="true" type="FlatQVT.OclExpression"
isComposite="true">
<ownedComment body="altBodyOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.AltExp.condition" name="condition" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="altCondOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.AnyType" name="AnyType" superClass="FlatQVT.Type"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Area" name="Area" isAbstract="true">
<ownedAttribute xmi:id="FlatQVT.Area.bottomPattern" name="bottomPattern" isOrdered="true"
type="FlatQVT.BottomPattern" isComposite="true" opposite="FlatQVT.BottomPattern.area">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Area.guardPattern" name="guardPattern" isOrdered="true"
type="FlatQVT.GuardPattern" isComposite="true" opposite="FlatQVT.GuardPattern.area">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.AssertExp" name="AssertExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.AssertExp.assertion" name="assertion" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="assertOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.AssertExp.log" name="log" isOrdered="true" lower="0"
type="FlatQVT.LogExp" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.AssertExp.severity" name="severity" isOrdered="true"
lower="0" type="FlatQVT.SeverityKind" default="error"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.AssignExp" name="AssignExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.AssignExp.defaultValue" name="defaultValue" isOrdered="true"
lower="0" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="defaultOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.AssignExp.isReset" name="isReset" isOrdered="true"
lower="0" type="FlatQVT.Boolean"/>
<ownedAttribute xmi:id="FlatQVT.AssignExp.left" name="left" isOrdered="true" type="FlatQVT.OclExpression"
isComposite="true">
<ownedComment body="leftOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.AssignExp.value" name="value" isOrdered="true"
lower="0" upper="*" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="valueOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Assignment" name="Assignment" isAbstract="true"
superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.Assignment.bottomPattern" name="bottomPattern"
isOrdered="true" type="FlatQVT.BottomPattern" opposite="FlatQVT.BottomPattern.assignment">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Assignment.isDefault" name="isDefault" isOrdered="true"
lower="0" type="FlatQVT.Boolean"/>
<ownedAttribute xmi:id="FlatQVT.Assignment.value" name="value" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="valueAssignment">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.BagType" name="BagType" superClass="FlatQVT.CollectionType"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.BlockExp" name="BlockExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.BlockExp.body" name="body" isOrdered="true" lower="0"
upper="*" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="blockOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:PrimitiveType" xmi:id="FlatQVT.Boolean" name="Boolean">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<instanceClassName>java.lang.Boolean</instanceClassName>
</xmi:Extension>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.BooleanLiteralExp" name="BooleanLiteralExp"
superClass="FlatQVT.PrimitiveLiteralExp">
<ownedAttribute xmi:id="FlatQVT.BooleanLiteralExp.booleanSymbol" name="booleanSymbol"
isOrdered="true" lower="0" type="FlatQVT.Boolean"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.BottomPattern" name="BottomPattern"
superClass="FlatQVT.CorePattern">
<ownedAttribute xmi:id="FlatQVT.BottomPattern.area" name="area" isOrdered="true"
type="FlatQVT.Area" opposite="FlatQVT.Area.bottomPattern">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.BottomPattern.assignment" name="assignment" lower="0"
upper="*" type="FlatQVT.Assignment" isComposite="true" opposite="FlatQVT.Assignment.bottomPattern">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.BottomPattern.enforcementOperation" name="enforcementOperation"
lower="0" upper="*" type="FlatQVT.EnforcementOperation" isComposite="true"
opposite="FlatQVT.EnforcementOperation.bottomPattern">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.BottomPattern.realizedVariable" name="realizedVariable"
lower="0" upper="*" type="FlatQVT.RealizedVariable" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.BreakExp" name="BreakExp" superClass="FlatQVT.ImperativeExpression"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.CallExp" name="CallExp" isAbstract="true"
superClass="FlatQVT.OclExpression">
<ownedAttribute xmi:id="FlatQVT.CallExp.source" name="source" isOrdered="true"
lower="0" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="appliedElement">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.CatchExp" name="CatchExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.CatchExp.body" name="body" isOrdered="true" lower="0"
upper="*" type="FlatQVT.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.CatchExp.exception" name="exception" isOrdered="true"
lower="0" upper="*" type="FlatQVT.Type">
<ownedComment body="tryExpression">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Class" name="Class" superClass="FlatQVT.Type">
<ownedAttribute xmi:id="FlatQVT.Class.isAbstract" name="isAbstract" isOrdered="true"
lower="0" type="FlatQVT.Boolean" default="false"/>
<ownedAttribute xmi:id="FlatQVT.Class.ownedAttribute" name="ownedAttribute" isOrdered="true"
lower="0" upper="*" type="FlatQVT.Property" isComposite="true" opposite="FlatQVT.Property.class">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Class.ownedOperation" name="ownedOperation" isOrdered="true"
lower="0" upper="*" type="FlatQVT.Operation" isComposite="true" opposite="FlatQVT.Operation.class">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Class.superClass" name="superClass" lower="0"
upper="*" type="FlatQVT.Class"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.CollectionItem" name="CollectionItem"
superClass="FlatQVT.CollectionLiteralPart">
<ownedAttribute xmi:id="FlatQVT.CollectionItem.item" name="item" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Enumeration" xmi:id="FlatQVT.CollectionKind" name="CollectionKind">
<ownedLiteral xmi:id="FlatQVT.CollectionKind.Set" name="Set"/>
<ownedLiteral xmi:id="FlatQVT.CollectionKind.OrderedSet" name="OrderedSet">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>1</value>
</xmi:Extension>
</ownedLiteral>
<ownedLiteral xmi:id="FlatQVT.CollectionKind.Bag" name="Bag">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>2</value>
</xmi:Extension>
</ownedLiteral>
<ownedLiteral xmi:id="FlatQVT.CollectionKind.Sequence" name="Sequence">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>3</value>
</xmi:Extension>
</ownedLiteral>
<ownedLiteral xmi:id="FlatQVT.CollectionKind.Collection" name="Collection">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>4</value>
</xmi:Extension>
</ownedLiteral>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.CollectionLiteralExp" name="CollectionLiteralExp"
superClass="FlatQVT.LiteralExp">
<ownedAttribute xmi:id="FlatQVT.CollectionLiteralExp.kind" name="kind" isOrdered="true"
lower="0" type="FlatQVT.CollectionKind"/>
<ownedAttribute xmi:id="FlatQVT.CollectionLiteralExp.part" name="part" lower="0"
upper="*" type="FlatQVT.CollectionLiteralPart" isComposite="true" opposite="FlatQVT.CollectionLiteralPart.collectionLiteralExp">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.CollectionLiteralPart" name="CollectionLiteralPart"
isAbstract="true" superClass="FlatQVT.TypedElement">
<ownedAttribute xmi:id="FlatQVT.CollectionLiteralPart.collectionLiteralExp" name="collectionLiteralExp"
isOrdered="true" type="FlatQVT.CollectionLiteralExp" opposite="FlatQVT.CollectionLiteralExp.part">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.CollectionRange" name="CollectionRange"
superClass="FlatQVT.CollectionLiteralPart">
<ownedAttribute xmi:id="FlatQVT.CollectionRange.first" name="first" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="firstOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.CollectionRange.last" name="last" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="lastOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.CollectionTemplateExp" name="CollectionTemplateExp"
superClass="FlatQVT.TemplateExp">
<ownedAttribute xmi:id="FlatQVT.CollectionTemplateExp.member" name="member" lower="0"
upper="*" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="listContainer">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.CollectionTemplateExp.referredCollectionType"
name="referredCollectionType" isOrdered="true" type="FlatQVT.CollectionType"/>
<ownedAttribute xmi:id="FlatQVT.CollectionTemplateExp.rest" name="rest" isOrdered="true"
lower="0" type="FlatQVT.Variable">
<ownedComment body="matchingExp">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.CollectionType" name="CollectionType"
superClass="FlatQVT.DataType">
<ownedAttribute xmi:id="FlatQVT.CollectionType.elementType" name="elementType"
isOrdered="true" type="FlatQVT.Type"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Comment" name="Comment" superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.Comment.annotatedElement" name="annotatedElement"
lower="0" upper="*" type="FlatQVT.NamedElement"/>
<ownedAttribute xmi:id="FlatQVT.Comment.body" name="body" isOrdered="true" lower="0"
type="FlatQVT.String"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ComputeExp" name="ComputeExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.ComputeExp.body" name="body" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="computeOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ComputeExp.returnedElement" name="returnedElement"
isOrdered="true" type="FlatQVT.Variable" isComposite="true">
<ownedComment body="computeOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Constructor" name="Constructor"
superClass="FlatQVT.ImperativeOperation"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ConstructorBody" name="ConstructorBody"
superClass="FlatQVT.OperationBody"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ContextualProperty" name="ContextualProperty"
superClass="FlatQVT.Property">
<ownedAttribute xmi:id="FlatQVT.ContextualProperty.context" name="context" isOrdered="true"
type="FlatQVT.Class"/>
<ownedAttribute xmi:id="FlatQVT.ContextualProperty.initExpression" name="initExpression"
isOrdered="true" lower="0" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="ownerProperty">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ContextualProperty.overridden" name="overridden"
isOrdered="true" lower="0" type="FlatQVT.Property">
<ownedComment body="overriding">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ContinueExp" name="ContinueExp"
superClass="FlatQVT.ImperativeExpression"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.CoreDomain" name="CoreDomain" superClass="FlatQVT.Domain FlatQVT.Area"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.CorePattern" name="CorePattern"
superClass="FlatQVT.Pattern">
<ownedAttribute xmi:id="FlatQVT.CorePattern.variable" name="variable" lower="0"
upper="*" type="FlatQVT.Variable" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.DataType" name="DataType" superClass="FlatQVT.Type"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.DictLiteralExp" name="DictLiteralExp"
superClass="FlatQVT.LiteralExp">
<ownedAttribute xmi:id="FlatQVT.DictLiteralExp.part" name="part" lower="0" upper="*"
type="FlatQVT.DictLiteralPart" isComposite="true">
<ownedComment body="partOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.DictLiteralPart" name="DictLiteralPart"
superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.DictLiteralPart.key" name="key" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="keyOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.DictLiteralPart.value" name="value" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="valOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.DictionaryType" name="DictionaryType"
superClass="FlatQVT.CollectionType">
<ownedAttribute xmi:id="FlatQVT.DictionaryType.keyType" name="keyType" isOrdered="true"
lower="0" type="FlatQVT.Type">
<ownedComment body="keyDict">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Enumeration" xmi:id="FlatQVT.DirectionKind" name="DirectionKind">
<ownedLiteral xmi:id="FlatQVT.DirectionKind.in" name="in"/>
<ownedLiteral xmi:id="FlatQVT.DirectionKind.inout" name="inout">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>1</value>
</xmi:Extension>
</ownedLiteral>
<ownedLiteral xmi:id="FlatQVT.DirectionKind.out" name="out">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>2</value>
</xmi:Extension>
</ownedLiteral>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Domain" name="Domain" isAbstract="true"
superClass="FlatQVT.NamedElement">
<ownedAttribute xmi:id="FlatQVT.Domain.isCheckable" name="isCheckable" isOrdered="true"
lower="0" type="FlatQVT.Boolean"/>
<ownedAttribute xmi:id="FlatQVT.Domain.isEnforceable" name="isEnforceable" isOrdered="true"
lower="0" type="FlatQVT.Boolean"/>
<ownedAttribute xmi:id="FlatQVT.Domain.rule" name="rule" isOrdered="true" type="FlatQVT.Rule"
opposite="FlatQVT.Rule.domain">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Domain.typedModel" name="typedModel" isOrdered="true"
lower="0" type="FlatQVT.TypedModel"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.DomainPattern" name="DomainPattern"
superClass="FlatQVT.Pattern">
<ownedAttribute xmi:id="FlatQVT.DomainPattern.templateExpression" name="templateExpression"
isOrdered="true" lower="0" type="FlatQVT.TemplateExp" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Element" name="Element" isAbstract="true"
superClass="FlatQVT.Object">
<ownedOperation xmi:id="FlatQVT.Element.container" name="container" isOrdered="true"
lower="0" type="FlatQVT.Element"/>
<ownedOperation xmi:id="FlatQVT.Element.equals" name="equals" isOrdered="true"
lower="0" type="FlatQVT.Boolean">
<ownedParameter xmi:id="FlatQVT.Element.equals.object" name="object" isOrdered="true"
lower="0" type="FlatQVT.Object"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.Element.get" name="get" isOrdered="true" lower="0"
type="FlatQVT.Object">
<ownedParameter xmi:id="FlatQVT.Element.get.property" name="property" isOrdered="true"
lower="0" type="FlatQVT.Property"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.Element.getMetaClass" name="getMetaClass" isOrdered="true"
lower="0" type="FlatQVT.Class"/>
<ownedOperation xmi:id="FlatQVT.Element.isSet" name="isSet" isOrdered="true" lower="0"
type="FlatQVT.Boolean">
<ownedParameter xmi:id="FlatQVT.Element.isSet.property" name="property" isOrdered="true"
lower="0" type="FlatQVT.Property"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.Element.set" name="set" isOrdered="true" lower="0">
<ownedParameter xmi:id="FlatQVT.Element.set.property" name="property" isOrdered="true"
lower="0" type="FlatQVT.Property"/>
<ownedParameter xmi:id="FlatQVT.Element.set.object" name="object" isOrdered="true"
lower="0" type="FlatQVT.Object"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.Element.unset" name="unset" isOrdered="true" lower="0">
<ownedParameter xmi:id="FlatQVT.Element.unset.property" name="property" isOrdered="true"
lower="0" type="FlatQVT.Property"/>
</ownedOperation>
<ownedAttribute xmi:id="FlatQVT.Element.ownedComment" name="ownedComment" lower="0"
upper="*" type="FlatQVT.Comment" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Enumeration" xmi:id="FlatQVT.EnforcementMode" name="EnforcementMode">
<ownedLiteral xmi:id="FlatQVT.EnforcementMode.Creation" name="Creation"/>
<ownedLiteral xmi:id="FlatQVT.EnforcementMode.Deletion" name="Deletion">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>1</value>
</xmi:Extension>
</ownedLiteral>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.EnforcementOperation" name="EnforcementOperation"
superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.EnforcementOperation.bottomPattern" name="bottomPattern"
isOrdered="true" lower="0" type="FlatQVT.BottomPattern" opposite="FlatQVT.BottomPattern.enforcementOperation">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.EnforcementOperation.enforcementMode" name="enforcementMode"
isOrdered="true" lower="0" type="FlatQVT.EnforcementMode"/>
<ownedAttribute xmi:id="FlatQVT.EnforcementOperation.operationCallExp" name="operationCallExp"
isOrdered="true" type="FlatQVT.OperationCallExp" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.EntryOperation" name="EntryOperation"
superClass="FlatQVT.ImperativeOperation"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.EnumLiteralExp" name="EnumLiteralExp"
superClass="FlatQVT.LiteralExp">
<ownedAttribute xmi:id="FlatQVT.EnumLiteralExp.referredEnumLiteral" name="referredEnumLiteral"
isOrdered="true" lower="0" type="FlatQVT.EnumerationLiteral">
<ownedComment body="literalExp">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Enumeration" name="Enumeration"
superClass="FlatQVT.DataType">
<ownedAttribute xmi:id="FlatQVT.Enumeration.ownedLiteral" name="ownedLiteral"
isOrdered="true" lower="0" upper="*" type="FlatQVT.EnumerationLiteral" isComposite="true"
opposite="FlatQVT.EnumerationLiteral.enumeration">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.EnumerationLiteral" name="EnumerationLiteral"
superClass="FlatQVT.NamedElement">
<ownedAttribute xmi:id="FlatQVT.EnumerationLiteral.enumeration" name="enumeration"
isOrdered="true" lower="0" type="FlatQVT.Enumeration" opposite="FlatQVT.Enumeration.ownedLiteral">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ExpressionInOcl" name="ExpressionInOcl"
superClass="FlatQVT.TypedElement">
<ownedAttribute xmi:id="FlatQVT.ExpressionInOcl.bodyExpression" name="bodyExpression"
isOrdered="true" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="topExpression">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ExpressionInOcl.contextVariable" name="contextVariable"
isOrdered="true" lower="0" type="FlatQVT.Variable" isComposite="true">
<ownedComment body="selfOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ExpressionInOcl.generatedType" name="generatedType"
lower="0" upper="*" type="FlatQVT.Type" isComposite="true">
<ownedComment body="owningExpression">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ExpressionInOcl.parameterVariable" name="parameterVariable"
lower="0" upper="*" type="FlatQVT.Variable" isComposite="true">
<ownedComment body="varOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ExpressionInOcl.resultVariable" name="resultVariable"
isOrdered="true" lower="0" type="FlatQVT.Variable" isComposite="true">
<ownedComment body="resultOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Extent" name="Extent" superClass="FlatQVT.Object">
<ownedOperation xmi:id="FlatQVT.Extent.elements" name="elements" isOrdered="true"
lower="0" type="FlatQVT.ReflectiveSequence"/>
<ownedOperation xmi:id="FlatQVT.Extent.useContainment" name="useContainment" isOrdered="true"
lower="0" type="FlatQVT.Boolean"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Factory" name="Factory" superClass="FlatQVT.Element">
<ownedOperation xmi:id="FlatQVT.Factory.convertToString" name="convertToString"
isOrdered="true" lower="0" type="FlatQVT.String">
<ownedParameter xmi:id="FlatQVT.Factory.convertToString.dataType" name="dataType"
isOrdered="true" lower="0" type="FlatQVT.DataType"/>
<ownedParameter xmi:id="FlatQVT.Factory.convertToString.object" name="object"
isOrdered="true" lower="0" type="FlatQVT.Object"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.Factory.create" name="create" isOrdered="true"
lower="0" type="FlatQVT.Element">
<ownedParameter xmi:id="FlatQVT.Factory.create.metaClass" name="metaClass" isOrdered="true"
lower="0" type="FlatQVT.Class"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.Factory.createFromString" name="createFromString"
isOrdered="true" lower="0" type="FlatQVT.Object">
<ownedParameter xmi:id="FlatQVT.Factory.createFromString.dataType" name="dataType"
isOrdered="true" lower="0" type="FlatQVT.DataType"/>
<ownedParameter xmi:id="FlatQVT.Factory.createFromString.string" name="string"
isOrdered="true" lower="0" type="FlatQVT.String"/>
</ownedOperation>
<ownedAttribute xmi:id="FlatQVT.Factory.package" name="package" isOrdered="true"
type="FlatQVT.Package"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.FeatureCallExp" name="FeatureCallExp"
isAbstract="true" superClass="FlatQVT.CallExp"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ForExp" name="ForExp" superClass="FlatQVT.ImperativeLoopExp"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Function" name="Function" superClass="FlatQVT.Operation">
<ownedAttribute xmi:id="FlatQVT.Function.queryExpression" name="queryExpression"
isOrdered="true" lower="0" type="FlatQVT.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.FunctionParameter" name="FunctionParameter"
superClass="FlatQVT.Variable FlatQVT.Parameter"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.GuardPattern" name="GuardPattern"
superClass="FlatQVT.CorePattern">
<ownedAttribute xmi:id="FlatQVT.GuardPattern.area" name="area" isOrdered="true"
type="FlatQVT.Area" opposite="FlatQVT.Area.guardPattern">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Helper" name="Helper" superClass="FlatQVT.ImperativeOperation">
<ownedAttribute xmi:id="FlatQVT.Helper.isQuery" name="isQuery" isOrdered="true"
lower="0" type="FlatQVT.Boolean"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.IfExp" name="IfExp" superClass="FlatQVT.OclExpression">
<ownedAttribute xmi:id="FlatQVT.IfExp.condition" name="condition" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="ifOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.IfExp.elseExpression" name="elseExpression" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="elseOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.IfExp.thenExpression" name="thenExpression" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="thenOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ImperativeCallExp" name="ImperativeCallExp"
superClass="FlatQVT.OperationCallExp FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.ImperativeCallExp.isVirtual" name="isVirtual"
isOrdered="true" lower="0" type="FlatQVT.Boolean" default="true"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ImperativeExpression" name="ImperativeExpression"
isAbstract="true" superClass="FlatQVT.OclExpression"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ImperativeIterateExp" name="ImperativeIterateExp"
superClass="FlatQVT.ImperativeLoopExp">
<ownedAttribute xmi:id="FlatQVT.ImperativeIterateExp.target" name="target" isOrdered="true"
lower="0" type="FlatQVT.Variable" isComposite="true">
<ownedComment body="tgtOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ImperativeLoopExp" name="ImperativeLoopExp"
isAbstract="true" superClass="FlatQVT.LoopExp FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.ImperativeLoopExp.condition" name="condition"
isOrdered="true" lower="0" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="loopCondOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ImperativeOperation" name="ImperativeOperation"
superClass="FlatQVT.Operation">
<ownedAttribute xmi:id="FlatQVT.ImperativeOperation.body" name="body" isOrdered="true"
lower="0" type="FlatQVT.OperationBody" isComposite="true" opposite="FlatQVT.OperationBody.operation">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ImperativeOperation.context" name="context" isOrdered="true"
lower="0" type="FlatQVT.VarParameter" isComposite="true" opposite="FlatQVT.VarParameter.ctxOwner">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ImperativeOperation.isBlackbox" name="isBlackbox"
isOrdered="true" lower="0" type="FlatQVT.Boolean"/>
<ownedAttribute xmi:id="FlatQVT.ImperativeOperation.overridden" name="overridden"
isOrdered="true" lower="0" type="FlatQVT.ImperativeOperation">
<ownedComment body="overriding">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ImperativeOperation.result" name="result" isOrdered="true"
lower="0" upper="*" type="FlatQVT.VarParameter" isComposite="true" opposite="FlatQVT.VarParameter.resOwner">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Enumeration" xmi:id="FlatQVT.ImportKind" name="ImportKind">
<ownedLiteral xmi:id="FlatQVT.ImportKind.extension" name="extension"/>
<ownedLiteral xmi:id="FlatQVT.ImportKind.access" name="access">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>1</value>
</xmi:Extension>
</ownedLiteral>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.InstantiationExp" name="InstantiationExp"
superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.InstantiationExp.argument" name="argument" isOrdered="true"
lower="0" upper="*" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="argOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.InstantiationExp.extent" name="extent" isOrdered="true"
lower="0" type="FlatQVT.Variable"/>
<ownedAttribute xmi:id="FlatQVT.InstantiationExp.instantiatedClass" name="instantiatedClass"
isOrdered="true" type="FlatQVT.Class"/>
</ownedType>
<ownedType xmi:type="emof:PrimitiveType" xmi:id="FlatQVT.Integer" name="Integer">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<instanceClassName>java.lang.Integer</instanceClassName>
</xmi:Extension>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.IntegerLiteralExp" name="IntegerLiteralExp"
superClass="FlatQVT.NumericLiteralExp">
<ownedAttribute xmi:id="FlatQVT.IntegerLiteralExp.integerSymbol" name="integerSymbol"
isOrdered="true" lower="0" type="FlatQVT.Integer"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.InvalidLiteralExp" name="InvalidLiteralExp"
superClass="FlatQVT.LiteralExp"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.InvalidType" name="InvalidType"
superClass="FlatQVT.Type"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.IterateExp" name="IterateExp" superClass="FlatQVT.LoopExp">
<ownedAttribute xmi:id="FlatQVT.IterateExp.result" name="result" isOrdered="true"
lower="0" type="FlatQVT.Variable" isComposite="true">
<ownedComment body="baseExp">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.IteratorExp" name="IteratorExp"
superClass="FlatQVT.LoopExp"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Key" name="Key" superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.Key.identifies" name="identifies" isOrdered="true"
type="FlatQVT.Class"/>
<ownedAttribute xmi:id="FlatQVT.Key.oppositePart" name="oppositePart" lower="0"
upper="*" type="FlatQVT.Property">
<ownedComment body="oppositeKey">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Key.part" name="part" lower="0" upper="*" type="FlatQVT.Property"/>
<ownedAttribute xmi:id="FlatQVT.Key.transformation" name="transformation" isOrdered="true"
lower="0" type="FlatQVT.RelationalTransformation" opposite="FlatQVT.RelationalTransformation.ownedKey">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.LetExp" name="LetExp" superClass="FlatQVT.OclExpression">
<ownedAttribute xmi:id="FlatQVT.LetExp.in" name="in" isOrdered="true" type="FlatQVT.OclExpression"
isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.LetExp.variable" name="variable" isOrdered="true"
type="FlatQVT.Variable" isComposite="true" opposite="FlatQVT.Variable.letExp">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Library" name="Library" superClass="FlatQVT.Module"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ListLiteralExp" name="ListLiteralExp"
superClass="FlatQVT.LiteralExp">
<ownedAttribute xmi:id="FlatQVT.ListLiteralExp.element" name="element" isOrdered="true"
lower="0" upper="*" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="elementOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ListType" name="ListType" superClass="FlatQVT.CollectionType"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.LiteralExp" name="LiteralExp" isAbstract="true"
superClass="FlatQVT.OclExpression"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.LogExp" name="LogExp" superClass="FlatQVT.OperationCallExp FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.LogExp.condition" name="condition" isOrdered="true"
lower="0" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="logOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.LoopExp" name="LoopExp" isAbstract="true"
superClass="FlatQVT.CallExp FlatQVT.OclExpression">
<ownedAttribute xmi:id="FlatQVT.LoopExp.body" name="body" isOrdered="true" type="FlatQVT.OclExpression"
isComposite="true">
<ownedComment body="loopBodyOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.LoopExp.iterator" name="iterator" isOrdered="true"
lower="0" upper="*" type="FlatQVT.Variable" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Mapping" name="Mapping" superClass="FlatQVT.Rule FlatQVT.Area">
<ownedAttribute xmi:id="FlatQVT.Mapping.context" name="context" isOrdered="true"
lower="0" type="FlatQVT.Mapping" opposite="FlatQVT.Mapping.local">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Mapping.local" name="local" lower="0" upper="*"
type="FlatQVT.Mapping" isComposite="true" opposite="FlatQVT.Mapping.context">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Mapping.refinement" name="refinement" lower="0"
upper="*" type="FlatQVT.Mapping" opposite="FlatQVT.Mapping.specification"/>
<ownedAttribute xmi:id="FlatQVT.Mapping.specification" name="specification" lower="0"
upper="*" type="FlatQVT.Mapping" opposite="FlatQVT.Mapping.refinement"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.MappingBody" name="MappingBody"
superClass="FlatQVT.OperationBody">
<ownedAttribute xmi:id="FlatQVT.MappingBody.endSection" name="endSection" isOrdered="true"
lower="0" upper="*" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="endOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.MappingBody.initSection" name="initSection" isOrdered="true"
lower="0" upper="*" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="initOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.MappingCallExp" name="MappingCallExp"
superClass="FlatQVT.ImperativeCallExp">
<ownedAttribute xmi:id="FlatQVT.MappingCallExp.isStrict" name="isStrict" isOrdered="true"
lower="0" type="FlatQVT.Boolean"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.MappingOperation" name="MappingOperation"
superClass="FlatQVT.ImperativeOperation">
<ownedAttribute xmi:id="FlatQVT.MappingOperation.disjunct" name="disjunct" isOrdered="true"
lower="0" upper="*" type="FlatQVT.MappingOperation">
<ownedComment body="disjuncter">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.MappingOperation.inherited" name="inherited" isOrdered="true"
lower="0" upper="*" type="FlatQVT.MappingOperation">
<ownedComment body="inheriting">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.MappingOperation.merged" name="merged" isOrdered="true"
lower="0" upper="*" type="FlatQVT.MappingOperation">
<ownedComment body="merging">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.MappingOperation.refinedRelation" name="refinedRelation"
isOrdered="true" lower="0" type="FlatQVT.Relation">
<ownedComment body="refiningOperation">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.MappingOperation.when" name="when" isOrdered="true"
lower="0" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="whenOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.MappingOperation.where" name="where" isOrdered="true"
lower="0" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="whereOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.MappingParameter" name="MappingParameter"
superClass="FlatQVT.VarParameter">
<ownedAttribute xmi:id="FlatQVT.MappingParameter.extent" name="extent" isOrdered="true"
lower="0" type="FlatQVT.ModelParameter"/>
<ownedAttribute xmi:id="FlatQVT.MappingParameter.referredDomain" name="referredDomain"
isOrdered="true" lower="0" type="FlatQVT.RelationDomain">
<ownedComment body="referringParameter">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ModelParameter" name="ModelParameter"
superClass="FlatQVT.VarParameter"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ModelType" name="ModelType" superClass="FlatQVT.Class">
<ownedAttribute xmi:id="FlatQVT.ModelType.additionalCondition" name="additionalCondition"
isOrdered="true" lower="0" upper="*" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="condOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ModelType.conformanceKind" name="conformanceKind"
isOrdered="true" lower="0" type="FlatQVT.String" default="effective"/>
<ownedAttribute xmi:id="FlatQVT.ModelType.metamodel" name="metamodel" isOrdered="true"
upper="*" type="FlatQVT.Package"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Module" name="Module" superClass="FlatQVT.Class FlatQVT.Package">
<ownedAttribute xmi:id="FlatQVT.Module.configProperty" name="configProperty" isOrdered="true"
lower="0" upper="*" type="FlatQVT.Property"/>
<ownedAttribute xmi:id="FlatQVT.Module.entry" name="entry" isOrdered="true" lower="0"
type="FlatQVT.EntryOperation">
<ownedComment body="entryContext">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Module.isBlackbox" name="isBlackbox" isOrdered="true"
lower="0" type="FlatQVT.Boolean"/>
<ownedAttribute xmi:id="FlatQVT.Module.moduleImport" name="moduleImport" isOrdered="true"
lower="0" upper="*" type="FlatQVT.ModuleImport" isComposite="true" opposite="FlatQVT.ModuleImport.module">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Module.ownedTag" name="ownedTag" isOrdered="true"
lower="0" upper="*" type="FlatQVT.Tag" isComposite="true">
<ownedComment body="owner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Module.ownedVariable" name="ownedVariable" lower="0"
upper="*" type="FlatQVT.Variable" isComposite="true">
<ownedComment body="variableOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Module.usedModelType" name="usedModelType" isOrdered="true"
lower="0" upper="*" type="FlatQVT.ModelType"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ModuleImport" name="ModuleImport"
superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.ModuleImport.binding" name="binding" isOrdered="true"
lower="0" upper="*" type="FlatQVT.ModelType"/>
<ownedAttribute xmi:id="FlatQVT.ModuleImport.importedModule" name="importedModule"
isOrdered="true" type="FlatQVT.Module">
<ownedComment body="importingElement">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ModuleImport.kind" name="kind" isOrdered="true"
lower="0" type="FlatQVT.ImportKind"/>
<ownedAttribute xmi:id="FlatQVT.ModuleImport.module" name="module" isOrdered="true"
lower="0" type="FlatQVT.Module" opposite="FlatQVT.Module.moduleImport">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.MultiplicityElement" name="MultiplicityElement"
isAbstract="true">
<ownedAttribute xmi:id="FlatQVT.MultiplicityElement.isOrdered" name="isOrdered"
isOrdered="true" lower="0" type="FlatQVT.Boolean" default="false"/>
<ownedAttribute xmi:id="FlatQVT.MultiplicityElement.isUnique" name="isUnique"
isOrdered="true" lower="0" type="FlatQVT.Boolean" default="true"/>
<ownedAttribute xmi:id="FlatQVT.MultiplicityElement.lower" name="lower" isOrdered="true"
lower="0" type="FlatQVT.Integer" default="1"/>
<ownedAttribute xmi:id="FlatQVT.MultiplicityElement.upper" name="upper" isOrdered="true"
lower="0" type="FlatQVT.UnlimitedNatural" default="1"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.NamedElement" name="NamedElement"
isAbstract="true" superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.NamedElement.name" name="name" isOrdered="true"
lower="0" type="FlatQVT.String"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.NavigationCallExp" name="NavigationCallExp"
superClass="FlatQVT.FeatureCallExp"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.NullLiteralExp" name="NullLiteralExp"
superClass="FlatQVT.LiteralExp"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.NumericLiteralExp" name="NumericLiteralExp"
isAbstract="true" superClass="FlatQVT.PrimitiveLiteralExp"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Object" name="Object"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ObjectExp" name="ObjectExp" superClass="FlatQVT.InstantiationExp">
<ownedAttribute xmi:id="FlatQVT.ObjectExp.body" name="body" isOrdered="true" type="FlatQVT.ConstructorBody"
isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ObjectExp.referredObject" name="referredObject"
isOrdered="true" type="FlatQVT.Variable">
<ownedComment body="objectExpression">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ObjectTemplateExp" name="ObjectTemplateExp"
superClass="FlatQVT.TemplateExp">
<ownedAttribute xmi:id="FlatQVT.ObjectTemplateExp.part" name="part" lower="0"
upper="*" type="FlatQVT.PropertyTemplateItem" isComposite="true" opposite="FlatQVT.PropertyTemplateItem.objContainer">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ObjectTemplateExp.referredClass" name="referredClass"
isOrdered="true" type="FlatQVT.Class"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.OclExpression" name="OclExpression"
isAbstract="true" superClass="FlatQVT.TypedElement"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Operation" name="Operation" superClass="FlatQVT.TypedElement FlatQVT.MultiplicityElement">
<ownedAttribute xmi:id="FlatQVT.Operation.class" name="class" isOrdered="true"
lower="0" type="FlatQVT.Class" opposite="FlatQVT.Class.ownedOperation">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Operation.ownedParameter" name="ownedParameter"
isOrdered="true" lower="0" upper="*" type="FlatQVT.Parameter" isComposite="true"
opposite="FlatQVT.Parameter.operation">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Operation.raisedException" name="raisedException"
lower="0" upper="*" type="FlatQVT.Type"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.OperationBody" name="OperationBody"
superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.OperationBody.content" name="content" isOrdered="true"
lower="0" upper="*" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="contentOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.OperationBody.operation" name="operation" isOrdered="true"
lower="0" type="FlatQVT.ImperativeOperation" opposite="FlatQVT.ImperativeOperation.body">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.OperationBody.variable" name="variable" lower="0"
upper="*" type="FlatQVT.Variable" isComposite="true">
<ownedComment body="opBody">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.OperationCallExp" name="OperationCallExp"
superClass="FlatQVT.FeatureCallExp">
<ownedAttribute xmi:id="FlatQVT.OperationCallExp.argument" name="argument" isOrdered="true"
lower="0" upper="*" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="parentCall">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.OperationCallExp.referredOperation" name="referredOperation"
isOrdered="true" lower="0" type="FlatQVT.Operation">
<ownedComment body="referringExp">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.OperationalTransformation" name="OperationalTransformation"
superClass="FlatQVT.Module">
<ownedAttribute xmi:id="FlatQVT.OperationalTransformation.intermediateClass" name="intermediateClass"
isOrdered="true" lower="0" upper="*" type="FlatQVT.Class">
<ownedComment body="transfClient">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.OperationalTransformation.intermediateProperty"
name="intermediateProperty" isOrdered="true" lower="0" upper="*" type="FlatQVT.Property">
<ownedComment body="tranfClient">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.OperationalTransformation.modelParameter" name="modelParameter"
isOrdered="true" lower="0" upper="*" type="FlatQVT.ModelParameter" isComposite="true">
<ownedComment body="module">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.OperationalTransformation.refined" name="refined"
isOrdered="true" lower="0" type="FlatQVT.RelationalTransformation">
<ownedComment body="refinement">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.OperationalTransformation.relation" name="relation"
isOrdered="true" lower="0" upper="*" type="FlatQVT.Relation" isComposite="true">
<ownedComment body="owner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.OppositePropertyCallExp" name="OppositePropertyCallExp"
superClass="FlatQVT.PropertyCallExp"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.OrderedSetType" name="OrderedSetType"
superClass="FlatQVT.CollectionType"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.OrderedTupleLiteralExp" name="OrderedTupleLiteralExp"
superClass="FlatQVT.LiteralExp">
<ownedAttribute xmi:id="FlatQVT.OrderedTupleLiteralExp.part" name="part" isOrdered="true"
lower="0" upper="*" type="FlatQVT.OrderedTupleLiteralPart" isComposite="true">
<ownedComment body="partOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.OrderedTupleLiteralPart" name="OrderedTupleLiteralPart"
superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.OrderedTupleLiteralPart.value" name="value" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="tupValOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.OrderedTupleType" name="OrderedTupleType"
superClass="FlatQVT.Class">
<ownedAttribute xmi:id="FlatQVT.OrderedTupleType.elementType" name="elementType"
isOrdered="true" lower="0" upper="*" type="FlatQVT.Type">
<ownedComment body="eltTuple">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Package" name="Package" superClass="FlatQVT.NamedElement">
<ownedAttribute xmi:id="FlatQVT.Package.nestedPackage" name="nestedPackage" lower="0"
upper="*" type="FlatQVT.Package" isComposite="true" opposite="FlatQVT.Package.nestingPackage">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Package.nestingPackage" name="nestingPackage"
isOrdered="true" lower="0" type="FlatQVT.Package" opposite="FlatQVT.Package.nestedPackage">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Package.ownedType" name="ownedType" lower="0"
upper="*" type="FlatQVT.Type" isComposite="true" opposite="FlatQVT.Type.package">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Package.uri" name="uri" isOrdered="true" lower="0"
type="FlatQVT.String"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Parameter" name="Parameter" superClass="FlatQVT.TypedElement FlatQVT.MultiplicityElement">
<ownedAttribute xmi:id="FlatQVT.Parameter.operation" name="operation" isOrdered="true"
lower="0" type="FlatQVT.Operation" opposite="FlatQVT.Operation.ownedParameter">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Pattern" name="Pattern" superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.Pattern.bindsTo" name="bindsTo" lower="0" upper="*"
type="FlatQVT.Variable"/>
<ownedAttribute xmi:id="FlatQVT.Pattern.predicate" name="predicate" lower="0"
upper="*" type="FlatQVT.Predicate" isComposite="true" opposite="FlatQVT.Predicate.pattern">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Predicate" name="Predicate" superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.Predicate.conditionExpression" name="conditionExpression"
isOrdered="true" type="FlatQVT.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Predicate.pattern" name="pattern" isOrdered="true"
type="FlatQVT.Pattern" opposite="FlatQVT.Pattern.predicate">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.PrimitiveLiteralExp" name="PrimitiveLiteralExp"
isAbstract="true" superClass="FlatQVT.LiteralExp"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.PrimitiveType" name="PrimitiveType"
superClass="FlatQVT.DataType"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Property" name="Property" superClass="FlatQVT.TypedElement FlatQVT.MultiplicityElement">
<ownedAttribute xmi:id="FlatQVT.Property.class" name="class" isOrdered="true"
lower="0" type="FlatQVT.Class" opposite="FlatQVT.Class.ownedAttribute">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Property.default" name="default" isOrdered="true"
lower="0" type="FlatQVT.String"/>
<ownedAttribute xmi:id="FlatQVT.Property.isComposite" name="isComposite" isOrdered="true"
lower="0" type="FlatQVT.Boolean" default="false"/>
<ownedAttribute xmi:id="FlatQVT.Property.isDerived" name="isDerived" isOrdered="true"
lower="0" type="FlatQVT.Boolean" default="false"/>
<ownedAttribute xmi:id="FlatQVT.Property.isID" name="isID" isOrdered="true" lower="0"
type="FlatQVT.Boolean"/>
<ownedAttribute xmi:id="FlatQVT.Property.isReadOnly" name="isReadOnly" isOrdered="true"
lower="0" type="FlatQVT.Boolean" default="false"/>
<ownedAttribute xmi:id="FlatQVT.Property.opposite" name="opposite" isOrdered="true"
lower="0" type="FlatQVT.Property"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.PropertyAssignment" name="PropertyAssignment"
superClass="FlatQVT.Assignment">
<ownedAttribute xmi:id="FlatQVT.PropertyAssignment.slotExpression" name="slotExpression"
isOrdered="true" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="slotAssignment">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.PropertyAssignment.targetProperty" name="targetProperty"
isOrdered="true" type="FlatQVT.Property">
<ownedComment body="assignment">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.PropertyCallExp" name="PropertyCallExp"
superClass="FlatQVT.NavigationCallExp">
<ownedAttribute xmi:id="FlatQVT.PropertyCallExp.referredProperty" name="referredProperty"
isOrdered="true" lower="0" type="FlatQVT.Property">
<ownedComment body="referringExp">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.PropertyTemplateItem" name="PropertyTemplateItem"
superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.PropertyTemplateItem.isOpposite" name="isOpposite"
isOrdered="true" lower="0" type="FlatQVT.Boolean" default="false"/>
<ownedAttribute xmi:id="FlatQVT.PropertyTemplateItem.objContainer" name="objContainer"
isOrdered="true" type="FlatQVT.ObjectTemplateExp" opposite="FlatQVT.ObjectTemplateExp.part">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.PropertyTemplateItem.referredProperty" name="referredProperty"
isOrdered="true" type="FlatQVT.Property">
<ownedComment body="propertyItem">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.PropertyTemplateItem.value" name="value" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="propertyItem">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.RaiseExp" name="RaiseExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.RaiseExp.argument" name="argument" isOrdered="true"
lower="0" type="FlatQVT.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.RaiseExp.exception" name="exception" isOrdered="true"
type="FlatQVT.Type">
<ownedComment body="raiseExpression">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:PrimitiveType" xmi:id="FlatQVT.Real" name="Real">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<instanceClassName>java.lang.Float</instanceClassName>
</xmi:Extension>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.RealLiteralExp" name="RealLiteralExp"
superClass="FlatQVT.NumericLiteralExp">
<ownedAttribute xmi:id="FlatQVT.RealLiteralExp.realSymbol" name="realSymbol" isOrdered="true"
lower="0" type="FlatQVT.Real"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.RealizedVariable" name="RealizedVariable"
superClass="FlatQVT.Variable"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ReflectiveCollection" name="ReflectiveCollection"
superClass="FlatQVT.Object">
<ownedOperation xmi:id="FlatQVT.ReflectiveCollection.add" name="add" isOrdered="true"
lower="0" type="FlatQVT.Boolean">
<ownedParameter xmi:id="FlatQVT.ReflectiveCollection.add.object" name="object"
isOrdered="true" lower="0" type="FlatQVT.Object"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.ReflectiveCollection.addAll" name="addAll" isOrdered="true"
lower="0" type="FlatQVT.Boolean">
<ownedParameter xmi:id="FlatQVT.ReflectiveCollection.addAll.objects" name="objects"
isOrdered="true" lower="0" type="FlatQVT.ReflectiveSequence"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.ReflectiveCollection.clear" name="clear" isOrdered="true"
lower="0"/>
<ownedOperation xmi:id="FlatQVT.ReflectiveCollection.remove" name="remove" isOrdered="true"
lower="0" type="FlatQVT.Boolean">
<ownedParameter xmi:id="FlatQVT.ReflectiveCollection.remove.object" name="object"
isOrdered="true" lower="0" type="FlatQVT.Object"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.ReflectiveCollection.size" name="size" isOrdered="true"
lower="0" type="FlatQVT.Integer"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ReflectiveSequence" name="ReflectiveSequence"
superClass="FlatQVT.ReflectiveCollection">
<ownedOperation xmi:id="FlatQVT.ReflectiveSequence.add" name="add" isOrdered="true"
lower="0">
<ownedParameter xmi:id="FlatQVT.ReflectiveSequence.add.index" name="index" isOrdered="true"
lower="0" type="FlatQVT.Integer"/>
<ownedParameter xmi:id="FlatQVT.ReflectiveSequence.add.object" name="object"
isOrdered="true" lower="0" type="FlatQVT.Object"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.ReflectiveSequence.get" name="get" isOrdered="true"
lower="0" type="FlatQVT.Object">
<ownedParameter xmi:id="FlatQVT.ReflectiveSequence.get.index" name="index" isOrdered="true"
lower="0" type="FlatQVT.Integer"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.ReflectiveSequence.remove" name="remove" isOrdered="true"
lower="0" type="FlatQVT.Object">
<ownedParameter xmi:id="FlatQVT.ReflectiveSequence.remove.index" name="index"
isOrdered="true" lower="0" type="FlatQVT.Integer"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.ReflectiveSequence.set" name="set" isOrdered="true"
lower="0" type="FlatQVT.Object">
<ownedParameter xmi:id="FlatQVT.ReflectiveSequence.set.index" name="index" isOrdered="true"
lower="0" type="FlatQVT.Integer"/>
<ownedParameter xmi:id="FlatQVT.ReflectiveSequence.set.object" name="object"
isOrdered="true" lower="0" type="FlatQVT.Object"/>
</ownedOperation>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Relation" name="Relation" superClass="FlatQVT.Rule">
<ownedAttribute xmi:id="FlatQVT.Relation.isTopLevel" name="isTopLevel" isOrdered="true"
lower="0" type="FlatQVT.Boolean"/>
<ownedAttribute xmi:id="FlatQVT.Relation.operationalImpl" name="operationalImpl"
lower="0" upper="*" type="FlatQVT.RelationImplementation" isComposite="true"
opposite="FlatQVT.RelationImplementation.relation">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Relation.variable" name="variable" lower="0" upper="*"
type="FlatQVT.Variable" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Relation.when" name="when" isOrdered="true" lower="0"
type="FlatQVT.Pattern" isComposite="true">
<ownedComment body="whenOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Relation.where" name="where" isOrdered="true"
lower="0" type="FlatQVT.Pattern" isComposite="true">
<ownedComment body="whereOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.RelationCallExp" name="RelationCallExp"
superClass="FlatQVT.OclExpression">
<ownedAttribute xmi:id="FlatQVT.RelationCallExp.argument" name="argument" isOrdered="true"
lower="2" upper="*" type="FlatQVT.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.RelationCallExp.referredRelation" name="referredRelation"
isOrdered="true" type="FlatQVT.Relation"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.RelationDomain" name="RelationDomain"
superClass="FlatQVT.Domain">
<ownedAttribute xmi:id="FlatQVT.RelationDomain.defaultAssignment" name="defaultAssignment"
lower="0" upper="*" type="FlatQVT.RelationDomainAssignment" isComposite="true">
<ownedComment body="owner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.RelationDomain.pattern" name="pattern" isOrdered="true"
lower="0" type="FlatQVT.DomainPattern" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.RelationDomain.rootVariable" name="rootVariable"
isOrdered="true" type="FlatQVT.Variable"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.RelationDomainAssignment" name="RelationDomainAssignment"
superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.RelationDomainAssignment.valueExp" name="valueExp"
isOrdered="true" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="domainAssignment">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.RelationDomainAssignment.variable" name="variable"
isOrdered="true" type="FlatQVT.Variable">
<ownedComment body="domainAssignment">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.RelationImplementation" name="RelationImplementation"
superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.RelationImplementation.impl" name="impl" isOrdered="true"
type="FlatQVT.Operation"/>
<ownedAttribute xmi:id="FlatQVT.RelationImplementation.inDirectionOf" name="inDirectionOf"
isOrdered="true" type="FlatQVT.TypedModel"/>
<ownedAttribute xmi:id="FlatQVT.RelationImplementation.relation" name="relation"
isOrdered="true" lower="0" type="FlatQVT.Relation" opposite="FlatQVT.Relation.operationalImpl">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.RelationalTransformation" name="RelationalTransformation"
superClass="FlatQVT.Transformation">
<ownedAttribute xmi:id="FlatQVT.RelationalTransformation.ownedKey" name="ownedKey"
lower="0" upper="*" type="FlatQVT.Key" isComposite="true" opposite="FlatQVT.Key.transformation">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ResolveExp" name="ResolveExp" superClass="FlatQVT.CallExp FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.ResolveExp.condition" name="condition" isOrdered="true"
lower="0" type="FlatQVT.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.ResolveExp.isDeferred" name="isDeferred" isOrdered="true"
lower="0" type="FlatQVT.Boolean"/>
<ownedAttribute xmi:id="FlatQVT.ResolveExp.isInverse" name="isInverse" isOrdered="true"
lower="0" type="FlatQVT.Boolean"/>
<ownedAttribute xmi:id="FlatQVT.ResolveExp.one" name="one" isOrdered="true" lower="0"
type="FlatQVT.Boolean"/>
<ownedAttribute xmi:id="FlatQVT.ResolveExp.target" name="target" isOrdered="true"
lower="0" type="FlatQVT.Variable" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ResolveInExp" name="ResolveInExp"
superClass="FlatQVT.ResolveExp">
<ownedAttribute xmi:id="FlatQVT.ResolveInExp.inMapping" name="inMapping" isOrdered="true"
lower="0" type="FlatQVT.MappingOperation">
<ownedComment body="resolveExpression">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.ReturnExp" name="ReturnExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.ReturnExp.value" name="value" isOrdered="true"
lower="0" type="FlatQVT.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Rule" name="Rule" isAbstract="true"
superClass="FlatQVT.NamedElement">
<ownedAttribute xmi:id="FlatQVT.Rule.domain" name="domain" isOrdered="true" lower="0"
upper="*" type="FlatQVT.Domain" isComposite="true" opposite="FlatQVT.Domain.rule">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Rule.overrides" name="overrides" isOrdered="true"
lower="0" type="FlatQVT.Rule">
<ownedComment body="overriden">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Rule.transformation" name="transformation" isOrdered="true"
lower="0" type="FlatQVT.Transformation" opposite="FlatQVT.Transformation.rule">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.SequenceType" name="SequenceType"
superClass="FlatQVT.CollectionType"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.SetType" name="SetType" superClass="FlatQVT.CollectionType"/>
<ownedType xmi:type="emof:Enumeration" xmi:id="FlatQVT.SeverityKind" name="SeverityKind">
<ownedLiteral xmi:id="FlatQVT.SeverityKind.error" name="error"/>
<ownedLiteral xmi:id="FlatQVT.SeverityKind.warning" name="warning">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>1</value>
</xmi:Extension>
</ownedLiteral>
<ownedLiteral xmi:id="FlatQVT.SeverityKind.fatal" name="fatal">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>2</value>
</xmi:Extension>
</ownedLiteral>
</ownedType>
<ownedType xmi:type="emof:PrimitiveType" xmi:id="FlatQVT.String" name="String">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<instanceClassName>java.lang.String</instanceClassName>
</xmi:Extension>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.StringLiteralExp" name="StringLiteralExp"
superClass="FlatQVT.PrimitiveLiteralExp">
<ownedAttribute xmi:id="FlatQVT.StringLiteralExp.stringSymbol" name="stringSymbol"
isOrdered="true" lower="0" type="FlatQVT.String"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.SwitchExp" name="SwitchExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.SwitchExp.alternativePart" name="alternativePart"
isOrdered="true" lower="0" upper="*" type="FlatQVT.AltExp" isComposite="true">
<ownedComment body="altOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.SwitchExp.elsePart" name="elsePart" isOrdered="true"
lower="0" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="elsePartOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Tag" name="Tag" superClass="FlatQVT.Element">
<ownedAttribute xmi:id="FlatQVT.Tag.element" name="element" lower="0" upper="*"
type="FlatQVT.Element"/>
<ownedAttribute xmi:id="FlatQVT.Tag.name" name="name" isOrdered="true" lower="0"
type="FlatQVT.String"/>
<ownedAttribute xmi:id="FlatQVT.Tag.value" name="value" isOrdered="true" lower="0"
type="FlatQVT.String"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.TemplateExp" name="TemplateExp"
isAbstract="true" superClass="FlatQVT.LiteralExp">
<ownedAttribute xmi:id="FlatQVT.TemplateExp.bindsTo" name="bindsTo" isOrdered="true"
lower="0" type="FlatQVT.Variable"/>
<ownedAttribute xmi:id="FlatQVT.TemplateExp.where" name="where" isOrdered="true"
lower="0" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="owner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.TemplateParameterType" name="TemplateParameterType"
superClass="FlatQVT.Type">
<ownedAttribute xmi:id="FlatQVT.TemplateParameterType.specification" name="specification"
isOrdered="true" lower="0" type="FlatQVT.String"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Transformation" name="Transformation"
superClass="FlatQVT.Class FlatQVT.Package">
<ownedAttribute xmi:id="FlatQVT.Transformation.extends" name="extends" isOrdered="true"
lower="0" type="FlatQVT.Transformation">
<ownedComment body="extendedBy">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Transformation.modelParameter" name="modelParameter"
isOrdered="true" lower="0" upper="*" type="FlatQVT.TypedModel" isComposite="true"
opposite="FlatQVT.TypedModel.transformation">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Transformation.ownedTag" name="ownedTag" lower="0"
upper="*" type="FlatQVT.Tag" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Transformation.rule" name="rule" lower="0" upper="*"
type="FlatQVT.Rule" isComposite="true" opposite="FlatQVT.Rule.transformation">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.TryExp" name="TryExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.TryExp.exceptClause" name="exceptClause" isOrdered="true"
lower="0" upper="*" type="FlatQVT.CatchExp" isComposite="true">
<ownedComment body="exceptOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.TryExp.tryBody" name="tryBody" isOrdered="true"
lower="0" upper="*" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="tryBodyOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.TupleLiteralExp" name="TupleLiteralExp"
superClass="FlatQVT.LiteralExp">
<ownedAttribute xmi:id="FlatQVT.TupleLiteralExp.part" name="part" lower="0" upper="*"
type="FlatQVT.TupleLiteralPart" isComposite="true" opposite="FlatQVT.TupleLiteralPart.tupleLiteralExp">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.TupleLiteralPart" name="TupleLiteralPart"
superClass="FlatQVT.TypedElement">
<ownedAttribute xmi:id="FlatQVT.TupleLiteralPart.attribute" name="attribute" isOrdered="true"
lower="0" type="FlatQVT.Property"/>
<ownedAttribute xmi:id="FlatQVT.TupleLiteralPart.tupleLiteralExp" name="tupleLiteralExp"
isOrdered="true" lower="0" type="FlatQVT.TupleLiteralExp" opposite="FlatQVT.TupleLiteralExp.part">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.TupleLiteralPart.value" name="value" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.TupleType" name="TupleType" superClass="FlatQVT.Class FlatQVT.DataType"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Type" name="Type" isAbstract="true"
superClass="FlatQVT.NamedElement">
<ownedOperation xmi:id="FlatQVT.Type.isInstance" name="isInstance" isOrdered="true"
lower="0" type="FlatQVT.Boolean">
<ownedParameter xmi:id="FlatQVT.Type.isInstance.object" name="object" isOrdered="true"
lower="0" type="FlatQVT.Object"/>
</ownedOperation>
<ownedAttribute xmi:id="FlatQVT.Type.package" name="package" isOrdered="true"
lower="0" type="FlatQVT.Package" opposite="FlatQVT.Package.ownedType">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.TypeExp" name="TypeExp" superClass="FlatQVT.OclExpression">
<ownedAttribute xmi:id="FlatQVT.TypeExp.referredType" name="referredType" isOrdered="true"
lower="0" type="FlatQVT.Type"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.TypedElement" name="TypedElement"
isAbstract="true" superClass="FlatQVT.NamedElement">
<ownedAttribute xmi:id="FlatQVT.TypedElement.type" name="type" isOrdered="true"
lower="0" type="FlatQVT.Type"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.TypedModel" name="TypedModel" superClass="FlatQVT.NamedElement">
<ownedAttribute xmi:id="FlatQVT.TypedModel.dependsOn" name="dependsOn" lower="0"
upper="*" type="FlatQVT.TypedModel">
<ownedComment body="dependent">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.TypedModel.transformation" name="transformation"
isOrdered="true" type="FlatQVT.Transformation" opposite="FlatQVT.Transformation.modelParameter">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.TypedModel.usedPackage" name="usedPackage" upper="*"
type="FlatQVT.Package"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Typedef" name="Typedef" superClass="FlatQVT.Class">
<ownedAttribute xmi:id="FlatQVT.Typedef.base" name="base" isOrdered="true" type="FlatQVT.Type"/>
<ownedAttribute xmi:id="FlatQVT.Typedef.condition" name="condition" isOrdered="true"
lower="0" type="FlatQVT.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.URIExtent" name="URIExtent" superClass="FlatQVT.Extent">
<ownedOperation xmi:id="FlatQVT.URIExtent.contextURI" name="contextURI" isOrdered="true"
lower="0" type="FlatQVT.String"/>
<ownedOperation xmi:id="FlatQVT.URIExtent.element" name="element" isOrdered="true"
lower="0" type="FlatQVT.Element">
<ownedParameter xmi:id="FlatQVT.URIExtent.element.uri" name="uri" isOrdered="true"
lower="0" type="FlatQVT.String"/>
</ownedOperation>
<ownedOperation xmi:id="FlatQVT.URIExtent.uri" name="uri" isOrdered="true" lower="0"
type="FlatQVT.String">
<ownedParameter xmi:id="FlatQVT.URIExtent.uri.element" name="element" isOrdered="true"
lower="0" type="FlatQVT.Element"/>
</ownedOperation>
</ownedType>
<ownedType xmi:type="emof:PrimitiveType" xmi:id="FlatQVT.UnlimitedNatural" name="UnlimitedNatural">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<instanceClassName>java.lang.Integer</instanceClassName>
</xmi:Extension>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.UnlimitedNaturalExp" name="UnlimitedNaturalExp"
superClass="FlatQVT.NumericLiteralExp">
<ownedAttribute xmi:id="FlatQVT.UnlimitedNaturalExp.symbol" name="symbol" isOrdered="true"
lower="0" type="FlatQVT.UnlimitedNatural"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.UnlinkExp" name="UnlinkExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.UnlinkExp.item" name="item" isOrdered="true" type="FlatQVT.OclExpression"
isComposite="true">
<ownedComment body="itemUnlink">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.UnlinkExp.target" name="target" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="tgtUnlink">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.UnpackExp" name="UnpackExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.UnpackExp.source" name="source" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.UnpackExp.targetVariable" name="targetVariable"
isOrdered="true" upper="*" type="FlatQVT.Variable"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.VarParameter" name="VarParameter"
superClass="FlatQVT.Variable FlatQVT.Parameter">
<ownedAttribute xmi:id="FlatQVT.VarParameter.ctxOwner" name="ctxOwner" isOrdered="true"
lower="0" type="FlatQVT.ImperativeOperation" opposite="FlatQVT.ImperativeOperation.context">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.VarParameter.kind" name="kind" isOrdered="true"
lower="0" type="FlatQVT.DirectionKind"/>
<ownedAttribute xmi:id="FlatQVT.VarParameter.resOwner" name="resOwner" isOrdered="true"
lower="0" type="FlatQVT.ImperativeOperation" opposite="FlatQVT.ImperativeOperation.result">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.Variable" name="Variable" superClass="FlatQVT.TypedElement">
<ownedAttribute xmi:id="FlatQVT.Variable.initExpression" name="initExpression"
isOrdered="true" lower="0" type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="initializedElement">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Variable.letExp" name="letExp" isOrdered="true"
lower="0" type="FlatQVT.LetExp" opposite="FlatQVT.LetExp.variable">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.Variable.representedParameter" name="representedParameter"
isOrdered="true" lower="0" type="FlatQVT.Parameter"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.VariableAssignment" name="VariableAssignment"
superClass="FlatQVT.Assignment">
<ownedAttribute xmi:id="FlatQVT.VariableAssignment.targetVariable" name="targetVariable"
isOrdered="true" type="FlatQVT.Variable">
<ownedComment body="assignment">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.VariableExp" name="VariableExp"
superClass="FlatQVT.OclExpression">
<ownedAttribute xmi:id="FlatQVT.VariableExp.referredVariable" name="referredVariable"
isOrdered="true" lower="0" type="FlatQVT.Variable">
<ownedComment body="referringExp">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.VariableInitExp" name="VariableInitExp"
superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.VariableInitExp.referredVariable" name="referredVariable"
isOrdered="true" type="FlatQVT.Variable" isComposite="true">
<ownedComment body="declaration">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.VariableInitExp.withResult" name="withResult"
isOrdered="true" lower="0" type="FlatQVT.Boolean" default="false"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.VoidType" name="VoidType" superClass="FlatQVT.Type"/>
<ownedType xmi:type="emof:Class" xmi:id="FlatQVT.WhileExp" name="WhileExp" superClass="FlatQVT.ImperativeExpression">
<ownedAttribute xmi:id="FlatQVT.WhileExp.body" name="body" isOrdered="true" type="FlatQVT.OclExpression"
isComposite="true">
<ownedComment body="whileOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="FlatQVT.WhileExp.condition" name="condition" isOrdered="true"
type="FlatQVT.OclExpression" isComposite="true">
<ownedComment body="whileExpression">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<nsPrefix>flatqvt</nsPrefix>
</xmi:Extension>
</emof:Package>