[517072] Adjust QVTc/QVTr examples to pass
diff --git a/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML.ecore b/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML.ecore
index 233831f..7ea66e8 100644
--- a/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML.ecore
+++ b/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML.ecore
@@ -30,13 +30,13 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="typeOpposite" upperBound="-1"
         eType="#//Attribute" eOpposite="#//Attribute/type"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//UMLModelElement">
+  <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//PackageElement">
     <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
         eType="#//PackageElement" containment="true" eOpposite="#//PackageElement/namespace"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PackageElement" abstract="true" eSuperTypes="#//UMLModelElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" lowerBound="1"
-        eType="#//Package" eOpposite="#//Package/elements"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" eType="#//Package"
+        eOpposite="#//Package/elements"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PrimitiveDataType" eSuperTypes="#//Classifier"/>
   <eClassifiers xsi:type="ecore:EClass" name="UMLModelElement" abstract="true">
diff --git a/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML2RDBMS.ecore b/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML2RDBMS.ecore
index 2caf1dd..d11d7fe 100644
--- a/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML2RDBMS.ecore
+++ b/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML2RDBMS.ecore
@@ -7,19 +7,15 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="AssociationToForeignKey" eSuperTypes="#//ToColumn #//UmlToRdbmsModelElement">
     <eStructuralFeatures xsi:type="ecore:EReference" name="association" eType="ecore:EClass SimpleUML.ecore#//Association">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeUpper">
-        <details key="body" value="1"/>
-      </eAnnotations>
       <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
         <details key="body" value="middle"/>
+        <details key="upper" value="1"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="foreignKey" eType="ecore:EClass SimpleRDBMS.ecore#//ForeignKey">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeUpper">
-        <details key="body" value="1"/>
-      </eAnnotations>
       <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
         <details key="body" value="middle"/>
+        <details key="upper" value="1"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1" eType="#//ClassToTable"
@@ -33,38 +29,29 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1" eType="#//PackageToSchema"
         eOpposite="#//PackageToSchema/classesToTables"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="primaryKey" eType="ecore:EClass SimpleRDBMS.ecore#//Key">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeUpper">
-        <details key="body" value="1"/>
-      </eAnnotations>
       <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
         <details key="body" value="middle"/>
+        <details key="upper" value="1"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="table" eType="ecore:EClass SimpleRDBMS.ecore#//Table">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeUpper">
-        <details key="body" value="1"/>
-      </eAnnotations>
       <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
         <details key="body" value="middle"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="umlClass" eType="ecore:EClass SimpleUML.ecore#//Class">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeUpper">
-        <details key="body" value="1"/>
-      </eAnnotations>
       <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
         <details key="body" value="middle"/>
+        <details key="upper" value="1"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FromAttribute" abstract="true" eSuperTypes="#//UmlToRdbmsModelElement">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" eType="ecore:EClass SimpleUML.ecore#//Attribute">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeUpper">
-        <details key="body" value="1"/>
-      </eAnnotations>
       <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
         <details key="body" value="middle"/>
+        <details key="upper" value="1"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="leafs" ordered="false"
@@ -86,20 +73,16 @@
         upperBound="-1" eType="#//PrimitiveToName" containment="true" eOpposite="#//PrimitiveToName/owner"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="schema" lowerBound="1"
         eType="ecore:EClass SimpleRDBMS.ecore#//Schema">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeUpper">
-        <details key="body" value="1"/>
-      </eAnnotations>
       <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
         <details key="body" value="middle"/>
+        <details key="upper" value="1"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="umlPackage" lowerBound="1"
         eType="ecore:EClass SimpleUML.ecore#//Package">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeUpper">
-        <details key="body" value="1"/>
-      </eAnnotations>
       <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
         <details key="body" value="middle"/>
+        <details key="upper" value="1"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -110,11 +93,9 @@
         eOpposite="#//PackageToSchema/primitivesToNames"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="primitive" lowerBound="1"
         eType="ecore:EClass SimpleUML.ecore#//PrimitiveDataType">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeUpper">
-        <details key="body" value="1"/>
-      </eAnnotations>
       <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
         <details key="body" value="middle"/>
+        <details key="upper" value="1"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -122,11 +103,9 @@
   <eClassifiers xsi:type="ecore:EClass" name="ToColumn" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="column" lowerBound="1"
         eType="ecore:EClass SimpleRDBMS.ecore#//Column">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeUpper">
-        <details key="body" value="1"/>
-      </eAnnotations>
       <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
         <details key="body" value="middle"/>
+        <details key="upper" value="1"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
diff --git a/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML2RDBMS.qvtc b/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML2RDBMS.qvtc
index 3e89a45..b6c8495 100644
--- a/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML2RDBMS.qvtc
+++ b/examples/org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML2RDBMS.qvtc
@@ -4,9 +4,9 @@
 
 transformation org::eclipse::qvtd::examples::qvtcore::uml2rdbms::umlRdbms
 {
-	uml imports simpleuml;
-	rdbms imports simplerdbms;
-	imports simpleuml2rdbms;
+	uml imports SimpleUML;
+	rdbms imports SimpleRDBMS;
+	imports SimpleUML2RDBMS;
 }
 /*
  * -- Package and Schema mapping
@@ -24,15 +24,15 @@
 map packageToSchema in umlRdbms
 {
 	uml() {
-		p : Package
+		p : SimpleUML::Package[1]
 	|}
 
 	enforce rdbms() {
-		realize s : Schema
+		realize s : SimpleRDBMS::Schema[1]
 	|}
 
 	where() {
-		realize p2s : SimpleUML2RDBMS::PackageToSchema
+		realize p2s : SimpleUML2RDBMS::PackageToSchema[1]
 	|
 		p2s.umlPackage := p;
 		p2s.schema := s;
@@ -63,23 +63,23 @@
 
 map primitiveToName in umlRdbms
 {
-	uml(p : Package
+	uml(p : SimpleUML::Package[1]
 	|) {
-		prim : PrimitiveDataType
+		prim : SimpleUML::PrimitiveDataType[1]
 	|
 		prim.namespace = p;
 	}
 	check enforce rdbms() {
-		sqlType : String
+		sqlType : String[1]
 	|}
 
-	where(p2s : SimpleUML2RDBMS::PackageToSchema
+	where(p2s : SimpleUML2RDBMS::PackageToSchema[1]
 	|
 		p2s.umlPackage = p;) {
-		realize p2n : SimpleUML2RDBMS::PrimitiveToName
+		realize p2n : SimpleUML2RDBMS::PrimitiveToName[1]
 	|
 		p2n.owner := p2s;
-		p2n._primitive := prim;
+		p2n.primitive := prim;
 		p2n.typeName := sqlType;
 	}
 }
@@ -94,7 +94,7 @@
 	}
 
 	where() {
-		realize p2n : SimpleUML2RDBMS::IntegerToNumber
+		realize p2n : SimpleUML2RDBMS::IntegerToNumber[1]
 	|}
 
 	map
@@ -116,7 +116,7 @@
 	}
 
 	where() {
-		realize p2n : SimpleUML2RDBMS::BooleanToBoolean
+		realize p2n : SimpleUML2RDBMS::BooleanToBoolean[1]
 	|}
 
 	map
@@ -138,7 +138,7 @@
 	}
 
 	where() {
-		realize p2n : SimpleUML2RDBMS::StringToVarchar
+		realize p2n : SimpleUML2RDBMS::StringToVarchar[1]
 	|}
 
 	map
@@ -185,28 +185,28 @@
 
 map classToTable in umlRdbms
 {
-	check enforce uml(p : Package
+	check enforce uml(p : SimpleUML::Package[1]
 	|) {
-		realize c : Class
+		realize c : SimpleUML::Class[1]
 	|
 		c.kind := 'persistent';
 		c.namespace := p;
 	}
 
-	check enforce rdbms(s : Schema
+	check enforce rdbms(s : SimpleRDBMS::Schema[1]
 	|) {
-		realize t : Table
+		realize t : SimpleRDBMS::Table[1]
 	|
 		default t.kind := 'base';
 		t.schema := s;
 		t.kind <> 'meta';
 	}
 
-	where(p2s : SimpleUML2RDBMS::PackageToSchema
+	where(p2s : SimpleUML2RDBMS::PackageToSchema[1]
 	|
 		p2s.umlPackage = p;
 		p2s.schema = s;) {
-		realize c2t : SimpleUML2RDBMS::ClassToTable
+		realize c2t : SimpleUML2RDBMS::ClassToTable[1]
 	|
 		c2t.owner := p2s;
 		c2t.umlClass := c;
@@ -227,15 +227,14 @@
 	map
 	{
 		check enforce rdbms() {
-			realize pk : Key,
-			realize pc : Column
+			realize pk : SimpleRDBMS::Key[1],
+			realize pc : SimpleRDBMS::Column[1]
 		|
 			pk.owner := t;
 			pk.kind := 'primary';
 			pc.owner := t;
 			default pc.keys := OrderedSet(SimpleRDBMS::Key){pk};
 			default pc.type := 'NUMBER';
-			pc.keys->includes(pk);
 		}
 
 		where() {
@@ -269,38 +268,37 @@
 
 map associationToForeignKey in umlRdbms refines flattening
 {
-	check enforce uml(p : Package,
-		sc : Class,
-		dc : Class
+	check enforce uml(p : SimpleUML::Package[1],
+		sc : SimpleUML::Class[1],
+		dc : SimpleUML::Class[1]
 	|
 		sc.namespace = p;) {
-		realize a : Association
+		realize a : SimpleUML::Association[1]
 	|
 		default a.source := sc;
 		default a.destination := dc;
 		default a.namespace := p;
 	}
-	check enforce rdbms(s : Schema,
-		st : Table,
-		dt : Table,
-		rk : Key
+	check enforce rdbms(s : SimpleRDBMS::Schema[1],
+		st : SimpleRDBMS::Table[1],
+		dt : SimpleRDBMS::Table[1],
+		rk : SimpleRDBMS::Key[1]
 	|
 		st.schema = s;
 		rk.owner = dt;
 		rk.kind = 'primary';) {
-		realize fk : ForeignKey,
-		realize fc : Column
+		realize fk : SimpleRDBMS::ForeignKey[1],
+		realize fc : SimpleRDBMS::Column[1]
 	|
 		fk.owner := st;
 		fc.owner := st;
 		fk.refersTo := rk;
 		default fc.foreignKeys := OrderedSet(SimpleRDBMS::ForeignKey){fk};
-		fc.foreignKeys->includes(fk);
 	}
 
-	where(p2s : SimpleUML2RDBMS::PackageToSchema,
-		sc2t : SimpleUML2RDBMS::ClassToTable,
-		dc2t : SimpleUML2RDBMS::ClassToTable
+	where(p2s : SimpleUML2RDBMS::PackageToSchema[1],
+		sc2t : SimpleUML2RDBMS::ClassToTable[1],
+		dc2t : SimpleUML2RDBMS::ClassToTable[1]
 	|
 		sc2t.owner = p2s;
 		p2s.umlPackage = p;
@@ -309,7 +307,7 @@
 		dc2t.table = dt;
 		sc2t.umlClass = sc;
 		dc2t.umlClass = dc;) {
-		realize a2f : SimpleUML2RDBMS::AssociationToForeignKey
+		realize a2f : SimpleUML2RDBMS::AssociationToForeignKey[1]
 	|
 		a2f.owner := sc2t;
 		a2f.referenced := dc2t;
@@ -370,18 +368,18 @@
 
 map attributes in umlRdbms refines flattening
 {
-	check enforce uml(c : Class
+	check enforce uml(c : SimpleUML::Class[1]
 	|) {
-		realize a : Attribute
+		realize a : SimpleUML::Attribute[1]
 	|
 		default a.owner := c;
 	}
 
-	where(fao : SimpleUML2RDBMS::FromAttributeOwner
+	where(fao : SimpleUML2RDBMS::FromAttributeOwner[1]
 	|) {
-		realize fa : SimpleUML2RDBMS::FromAttribute
+		realize fa : SimpleUML2RDBMS::FromAttribute[1]
 	|
-		fa._attribute := a;
+		fa.attribute := a;
 		fa.owner := fao;
 	}
 
@@ -398,7 +396,7 @@
 map classAttributes in umlRdbms refines attributes
 {
 
-	where(fao : SimpleUML2RDBMS::ClassToTable
+	where(fao : SimpleUML2RDBMS::ClassToTable[1]
 	|
 		fao.umlClass = c;) {}
 
@@ -414,15 +412,15 @@
 
 map primitiveAttribute in umlRdbms refines attributes
 {
-	check enforce uml(t : PrimitiveDataType
+	check enforce uml(t : SimpleUML::PrimitiveDataType[1]
 	|) {
 		a.type := t;
 	}
 
-	where(p2n : SimpleUML2RDBMS::PrimitiveToName
+	where(p2n : SimpleUML2RDBMS::PrimitiveToName[1]
 	|
-		p2n._primitive = t;) {
-		realize fa : SimpleUML2RDBMS::AttributeToColumn
+		p2n.primitive = t;) {
+		realize fa : SimpleUML2RDBMS::AttributeToColumn[1]
 	|
 		fa.type := p2n;
 	}
@@ -438,13 +436,13 @@
 
 map complexAttributeAttributes in umlRdbms refines attributes
 {
-	check uml(ca : Attribute
+	check uml(ca : SimpleUML::Attribute[1]
 	|
 		ca.type = c;) {}
 
-	where(fao : SimpleUML2RDBMS::NonLeafAttribute
+	where(fao : SimpleUML2RDBMS::NonLeafAttribute[1]
 	|
-		fao._attribute = ca;) {}
+		fao.attribute = ca;) {}
 
 	map
 	{
@@ -457,13 +455,13 @@
 
 map complexAttribute in umlRdbms refines attributes
 {
-	check uml(t : Class
+	check uml(t : SimpleUML::Class[1]
 	|) {
 		a.type = t;
 	}
 
 	where() {
-		realize fa : SimpleUML2RDBMS::NonLeafAttribute
+		realize fa : SimpleUML2RDBMS::NonLeafAttribute[1]
 	|}
 
 	map
@@ -504,19 +502,19 @@
 
 map attributeColumns in umlRdbms
 {
-	check enforce rdbms(t : Table
+	check enforce rdbms(t : SimpleRDBMS::Table[1]
 	|) {
-		realize c : Column
+		realize c : SimpleRDBMS::Column[1]
 	|
 		c.owner := t;
 		c.keys->size() = 0;
 		c.foreignKeys->size() = 0;
 	}
 
-	where(c2t : SimpleUML2RDBMS::ClassToTable
+	where(c2t : SimpleUML2RDBMS::ClassToTable[1]
 	|
 		c2t.table = t;) {
-		realize a2c : SimpleUML2RDBMS::AttributeToColumn
+		realize a2c : SimpleUML2RDBMS::AttributeToColumn[1]
 	|
 		a2c.column := c;
 		default a2c.owner := c2t;
@@ -526,9 +524,9 @@
 	map
 	{
 
-		where(p2n : SimpleUML2RDBMS::PrimitiveToName
+		where(p2n : SimpleUML2RDBMS::PrimitiveToName[1]
 		|) {
-			ct : String
+			ct : String[1]
 		|
 			a2c.type := p2n;
 			ct := c.type;
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/src/org/eclipse/qvtd/examples/qvtrelation/hstm2fstm/HierarchicalStateMachine2FlatStateMachine.qvtr b/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/src/org/eclipse/qvtd/examples/qvtrelation/hstm2fstm/HierarchicalStateMachine2FlatStateMachine.qvtr
index 5cf850d..2e2677f 100644
--- a/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/src/org/eclipse/qvtd/examples/qvtrelation/hstm2fstm/HierarchicalStateMachine2FlatStateMachine.qvtr
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/src/org/eclipse/qvtd/examples/qvtrelation/hstm2fstm/HierarchicalStateMachine2FlatStateMachine.qvtr
@@ -26,7 +26,7 @@
 	/**
 	 * Return the leafStates of a given hierarchicalState.
 	 */
-	query getLeafStates(hierarchicalState : hierMM::State) : Set(hierMM::State) {
+	query getLeafStates(hierarchicalState : hierMM::State[1]) : Set(hierMM::State) {
 		hierarchicalState->closure(nestedStates)?->select(nestedStates->isEmpty())
 	}
 
@@ -66,8 +66,6 @@
 	 */
 	top relation HierachicalTransition2FlatTransition
 	{
-		leafFromStates : Set(hierMM::State) = hierarchicalFromState->closure(nestedStates)->select(nestedStates->isEmpty());
-		leafToStates : Set(hierMM::State) = hierarchicalToState->closure(nestedStates)->select(nestedStates->isEmpty());
 		leafFromState : hierMM::State;
 		leafToState : hierMM::State;
 		domain hier hierarchicalTransition : Transition {
@@ -86,8 +84,8 @@
 			HierachicalStateMachine2FlatStateMachine(hierarchicalStateMachine, flatStateMachine);
 			LeafState2FlatState(leafFromState, flatFromState);
 			LeafState2FlatState(leafToState, flatToState);
-			leafFromStates->includes(leafFromState);
-			leafToStates->includes(leafToState);
+			this.getLeafStates(hierarchicalFromState)->includes(leafFromState);
+			this.getLeafStates(hierarchicalToState)->includes(leafToState);
 		}
-	}   
+	}
 }