Bug 458930 - [IDE] ViewModel Migration fails if there are circular
dependencies in the domain
https://bugs.eclipse.org/bugs/show_bug.cgi?id=458930
diff --git a/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyIterator.java b/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyIterator.java
new file mode 100644
index 0000000..ce56db3
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyIterator.java
@@ -0,0 +1,187 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * jfaltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.edapt;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.emf.ecp.view.edapt.PackageDependencyTree.PackageTreeNode;
+
+/**
+ * Iterator for nsURIs based on the dependencies beginning from the roots.
+ *
+ * @author jfaltermeier
+ *
+ */
+public class PackageDependencyIterator implements Iterator<Set<String>> {
+
+	private final Set<PackageTreeNode> nodesToVisit;
+	private final Set<PackageTreeNode> visitedNodes;
+	private final Set<PackageTreeNode> unvisitedNodes;
+	private Set<PackageTreeNode> next;
+
+	/**
+	 * Constructs a new {@link PackageDependencyIterator}.
+	 * 
+	 * @param roots the root nodes
+	 * @param allNodes all nodes
+	 */
+	public PackageDependencyIterator(Collection<PackageTreeNode> roots, Collection<PackageTreeNode> allNodes) {
+		visitedNodes = new LinkedHashSet<PackageTreeNode>();
+		unvisitedNodes = new LinkedHashSet<PackageTreeNode>(allNodes);
+		nodesToVisit = new LinkedHashSet<PackageTreeNode>(roots);
+		next = findNext();
+	}
+
+	@Override
+	public boolean hasNext() {
+		return !next.isEmpty();
+	}
+
+	@Override
+	public Set<String> next() {
+		visitedNodes.addAll(next);
+		unvisitedNodes.removeAll(next);
+		final Set<String> nsuri = new LinkedHashSet<String>();
+		for (final PackageTreeNode nextNode : next) {
+			nsuri.add(nextNode.getNSURI());
+		}
+		next = findNext();
+		return nsuri;
+	}
+
+	private Set<PackageTreeNode> findNext() {
+		/* we are looking for a node with no parents */
+		final Set<PackageTreeNode> result = new LinkedHashSet<PackageTreeNode>();
+		for (final PackageTreeNode node : nodesToVisit) {
+			boolean hasUnvisitedParent = false;
+			for (final PackageTreeNode parent : node.getParents()) {
+				if (!visitedNodes.contains(parent)) {
+					hasUnvisitedParent = true;
+					break;
+				}
+			}
+			if (!hasUnvisitedParent) {
+				for (final PackageTreeNode child : node.getChildren()) {
+					if (!visitedNodes.contains(child)) {
+						nodesToVisit.add(child);
+					}
+				}
+				result.add(node);
+				break;
+			}
+		}
+		if (result.isEmpty() && !unvisitedNodes.isEmpty()) {
+			// circle detected
+			result.addAll(getCircleSet());
+		}
+		for (final PackageTreeNode packageTreeNode : result) {
+			nodesToVisit.remove(packageTreeNode);
+		}
+		return result;
+	}
+
+	private Collection<? extends PackageTreeNode> getCircleSet() {
+		/* 1. circle detection: put all nodes which contain to the same circle in a set */
+		final Map<PackageTreeNode, Set<PackageTreeNode>> nodeToCircleMap = new LinkedHashMap<PackageTreeNode, Set<PackageTreeNode>>();
+		final Set<Set<PackageTreeNode>> allCircles = new LinkedHashSet<Set<PackageTreeNode>>();
+		for (final PackageTreeNode nodeToAllocate : unvisitedNodes) {
+			// get existing circle set from map or create new set
+			final Set<PackageTreeNode> circle = nodeToCircleMap.containsKey(nodeToAllocate) ?
+				nodeToCircleMap.get(nodeToAllocate)
+				: new LinkedHashSet<PackageTreeNode>();
+
+			// if new set, fill map
+			if (!nodeToCircleMap.containsKey(nodeToAllocate)) {
+				circle.add(nodeToAllocate);
+				nodeToCircleMap.put(nodeToAllocate, circle);
+				allCircles.add(circle);
+			}
+
+			// nodes contain to same set if outgoing edge leads back to self
+			final Set<PackageTreeNode> outgoingEdges = nodeToAllocate.getChildren();
+			for (final PackageTreeNode outgoingEdge : outgoingEdges) {
+				final boolean hasPathToOtherNode = hasPathToOtherNode(outgoingEdge, nodeToAllocate,
+					new LinkedHashSet<PackageTreeNode>());
+				if (hasPathToOtherNode) {
+					circle.add(outgoingEdge);
+					nodeToCircleMap.put(outgoingEdge, circle);
+				}
+			}
+		}
+
+		/* 2. find root circle */
+		return findRootCircle(allCircles);
+	}
+
+	private Collection<? extends PackageTreeNode> findRootCircle(final Set<Set<PackageTreeNode>> allCircles) {
+		for (final Set<PackageTreeNode> circle : allCircles) {
+			// root circle is the set where all unvisited parents are from the same set
+			boolean isRoot = true;
+			for (final PackageTreeNode node : circle) {
+				for (final PackageTreeNode mustBeInCircle : node.getParents()) {
+					if (visitedNodes.contains(mustBeInCircle)) {
+						// the parent was already returned by the iterator, so we can skip it
+						continue;
+					}
+					if (!circle.contains(mustBeInCircle)) {
+						isRoot = false;
+						break;
+					}
+				}
+				if (!isRoot) {
+					break;
+				}
+			}
+			if (isRoot) {
+				return circle;
+			}
+		}
+
+		// this state is unexpected. if this is reached we could have returned a valid set of nsuri beforehand
+		// (either no circle at all, or the circle detection went wrong)
+		throw new IllegalStateException("No root circle found"); //$NON-NLS-1$
+	}
+
+	private boolean hasPathToOtherNode(PackageTreeNode start, PackageTreeNode target,
+		Set<PackageTreeNode> visitedNodes) {
+		visitedNodes.add(start);
+		final Set<PackageTreeNode> outgoingNodes = start.getChildren();
+		if (outgoingNodes.contains(target)) {
+			return true;
+		}
+		boolean result = false;
+		for (final PackageTreeNode outgoingNode : outgoingNodes) {
+			if (visitedNodes.contains(outgoingNode)) {
+				// we already visited/are visiting all children of this node -> skip
+				continue;
+			}
+			result |= hasPathToOtherNode(outgoingNode, target, visitedNodes);
+		}
+		return result;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see java.util.Iterator#remove()
+	 */
+	@Override
+	public void remove() {
+		throw new UnsupportedOperationException();
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyTree.java b/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyTree.java
index e9523ce..8aff09c 100644
--- a/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyTree.java
+++ b/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyTree.java
@@ -11,7 +11,6 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.edapt;
 
-import java.util.Collection;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
@@ -47,6 +46,15 @@
 	}
 
 	/**
+	 * For testing purposes.
+	 * 
+	 * @return a map of all registered nodes
+	 */
+	Map<String, PackageTreeNode> getNsURIToNodeMap() {
+		return nsURIToNodeMap;
+	}
+
+	/**
 	 * Adds a new {@link EPackage} with the given namespace URI to the tree. All required dependencies of the EPackage
 	 * will be registered as well.
 	 *
@@ -60,6 +68,11 @@
 		resolveNode(node);
 	}
 
+	/**
+	 * Adds the node and all dependencies (if not already there) to the tree.
+	 *
+	 * @param node the node to add
+	 */
 	private void resolveNode(PackageTreeNode node) {
 		final Set<String> nsURIs = new LinkedHashSet<String>();
 
@@ -129,198 +142,69 @@
 	}
 
 	/**
-	 * Iterator for nsURIs based on the dependencies beginning from the roots.
-	 *
-	 * @author jfaltermeier
-	 *
-	 */
-	private static class PackageDependencyIterator implements Iterator<Set<String>> {
-
-		private final Set<PackageTreeNode> nodesToVisit;
-		private final Set<PackageTreeNode> visitedNodes;
-		private final Set<PackageTreeNode> unvisitedNodes;
-		private Set<PackageTreeNode> next;
-
-		public PackageDependencyIterator(Collection<PackageTreeNode> roots, Collection<PackageTreeNode> allNodes) {
-			visitedNodes = new LinkedHashSet<PackageTreeNode>();
-			unvisitedNodes = new LinkedHashSet<PackageTreeNode>(allNodes);
-			nodesToVisit = new LinkedHashSet<PackageTreeNode>(roots);
-			next = findNext();
-		}
-
-		@Override
-		public boolean hasNext() {
-			return !next.isEmpty();
-		}
-
-		@Override
-		public Set<String> next() {
-			visitedNodes.addAll(next);
-			unvisitedNodes.removeAll(next);
-			final Set<String> nsuri = new LinkedHashSet<String>();
-			for (final PackageTreeNode nextNode : next) {
-				nsuri.add(nextNode.getNSURI());
-			}
-			next = findNext();
-			return nsuri;
-		}
-
-		private Set<PackageTreeNode> findNext() {
-			/* we are looking for a node with no parents */
-			final Set<PackageTreeNode> result = new LinkedHashSet<PackageTreeNode>();
-			for (final PackageTreeNode node : nodesToVisit) {
-				boolean hasUnvisitedParent = false;
-				for (final PackageTreeNode parent : node.getParents()) {
-					if (!visitedNodes.contains(parent)) {
-						hasUnvisitedParent = true;
-						break;
-					}
-				}
-				if (!hasUnvisitedParent) {
-					for (final PackageTreeNode child : node.getChildren()) {
-						if (!visitedNodes.contains(child)) {
-							nodesToVisit.add(child);
-						}
-					}
-					result.add(node);
-					break;
-				}
-			}
-			if (result.isEmpty() && !unvisitedNodes.isEmpty()) {
-				// circle detected
-				result.addAll(getCircleSet());
-			}
-			for (final PackageTreeNode packageTreeNode : result) {
-				nodesToVisit.remove(packageTreeNode);
-			}
-			return result;
-		}
-
-		private Collection<? extends PackageTreeNode> getCircleSet() {
-			/* 1. circle detection: put all nodes which contain to the same circle in a set */
-			final Map<PackageTreeNode, Set<PackageTreeNode>> nodeToCircleMap = new LinkedHashMap<PackageTreeNode, Set<PackageTreeNode>>();
-			final Set<Set<PackageTreeNode>> allCircles = new LinkedHashSet<Set<PackageTreeNode>>();
-			for (final PackageTreeNode nodeToAllocate : unvisitedNodes) {
-				// get existing circle set from map or create new set
-				final Set<PackageTreeNode> circle = nodeToCircleMap.containsKey(nodeToAllocate) ?
-					nodeToCircleMap.get(nodeToAllocate)
-					: new LinkedHashSet<PackageTreeNode>();
-
-				// if new set, fill map
-				if (!nodeToCircleMap.containsKey(nodeToAllocate)) {
-					circle.add(nodeToAllocate);
-					nodeToCircleMap.put(nodeToAllocate, circle);
-					allCircles.add(circle);
-				}
-
-				// nodes contain to same set if outgoing edge leads back to self
-				final Set<PackageTreeNode> outgoingEdges = nodeToAllocate.getChildren();
-				for (final PackageTreeNode outgoingEdge : outgoingEdges) {
-					final boolean hasPathToOtherNode = hasPathToOtherNode(outgoingEdge, nodeToAllocate,
-						new LinkedHashSet<PackageTreeNode>());
-					if (hasPathToOtherNode) {
-						circle.add(outgoingEdge);
-						nodeToCircleMap.put(outgoingEdge, circle);
-					}
-				}
-			}
-
-			/* 2. find root circle */
-			return findRootCircle(allCircles);
-		}
-
-		private Collection<? extends PackageTreeNode> findRootCircle(final Set<Set<PackageTreeNode>> allCircles) {
-			for (final Set<PackageTreeNode> circle : allCircles) {
-				// root circle is the set where all unvisited parents are from the same set
-				boolean isRoot = true;
-				for (final PackageTreeNode node : circle) {
-					for (final PackageTreeNode mustBeInCircle : node.getParents()) {
-						if (visitedNodes.contains(mustBeInCircle)) {
-							// the parent was already returned by the iterator, so we can skip it
-							continue;
-						}
-						if (!circle.contains(mustBeInCircle)) {
-							isRoot = false;
-							break;
-						}
-					}
-					if (!isRoot) {
-						break;
-					}
-				}
-				if (isRoot) {
-					return circle;
-				}
-			}
-
-			// this state is unexpected. if this is reached we could have returned a valid set of nsuri beforehand
-			// (either no circle at all, or the circle detection went wrong)
-			throw new IllegalStateException("No root circle found"); //$NON-NLS-1$
-		}
-
-		private boolean hasPathToOtherNode(PackageTreeNode start, PackageTreeNode target,
-			Set<PackageTreeNode> visitedNodes) {
-			visitedNodes.add(start);
-			final Set<PackageTreeNode> outgoingNodes = start.getChildren();
-			if (outgoingNodes.contains(target)) {
-				return true;
-			}
-			boolean result = false;
-			for (final PackageTreeNode outgoingNode : outgoingNodes) {
-				if (visitedNodes.contains(outgoingNode)) {
-					// we already visited/are visiting all children of this node -> skip
-					continue;
-				}
-				result |= hasPathToOtherNode(outgoingNode, target, visitedNodes);
-			}
-			return result;
-		}
-
-		/**
-		 * {@inheritDoc}
-		 *
-		 * @see java.util.Iterator#remove()
-		 */
-		@Override
-		public void remove() {
-			throw new UnsupportedOperationException();
-		}
-	}
-
-	/**
 	 * Simple tree data structure to order the changes of all required epackages during the migration.
 	 *
 	 * @author jfaltermeier
 	 *
 	 */
-	private static class PackageTreeNode {
+	static class PackageTreeNode {
 
 		private final String nsURI;
 		private final Set<PackageTreeNode> parents;
 		private final Set<PackageTreeNode> children;
 
+		/**
+		 * Constructs a new treenode for the given ns uri.
+		 *
+		 * @param nsURI the uri
+		 */
 		public PackageTreeNode(String nsURI) {
 			this.nsURI = nsURI;
 			parents = new LinkedHashSet<PackageTreeNode>();
 			children = new LinkedHashSet<PackageTreeNode>();
 		}
 
+		/**
+		 * Returns the namesapce uri.
+		 *
+		 * @return the node's uri
+		 */
 		public String getNSURI() {
 			return nsURI;
 		}
 
+		/**
+		 * Adds a parent to this node.
+		 *
+		 * @param node the parent node
+		 */
 		public void addParent(PackageTreeNode node) {
 			parents.add(node);
 		}
 
+		/**
+		 * Adds a child to this node.
+		 *
+		 * @param node the child
+		 */
 		public void addChild(PackageTreeNode node) {
 			children.add(node);
 		}
 
+		/**
+		 * Returns all parents of this node.
+		 *
+		 * @return parents
+		 */
 		public Set<PackageTreeNode> getParents() {
 			return parents;
 		}
 
+		/**
+		 * Returns all children of this node.
+		 *
+		 * @return the children.
+		 */
 		public Set<PackageTreeNode> getChildren() {
 			return children;
 		}
diff --git a/releng/org.eclipse.emf.ecp.releng.tests/pom.xml b/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
index dcc93f6..0b6d2dd 100644
--- a/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
+++ b/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
@@ -78,6 +78,7 @@
 		
 		<!-- Migration -->
 		<module>../../tests/org.eclipse.emf.ecp.view.edapt.test</module>
+		<module>../../tests/org.eclipse.emf.ecp.view.edapt.util.test</module>
 		
 	</modules>
 	
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.edapt.util.test/META-INF/MANIFEST.MF
index 08dc594..40ba7e0 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/META-INF/MANIFEST.MF
@@ -26,7 +26,19 @@
  org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;version="1.5.0";x-internal:=true,
  org.eclipse.emf.ecp.view.edapt.util.test.model.f;version="1.5.0";x-internal:=true,
  org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl;version="1.5.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.f.util;version="1.5.0";x-internal:=true
+ org.eclipse.emf.ecp.view.edapt.util.test.model.f.util;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w.util;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x.util;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y.util;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;version="1.5.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z.util;version="1.5.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
  org.junit;bundle-version="[4.0.0,5.0.0)"
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/circle.genmodel b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/circle.genmodel
index ed80e11..43df4a9 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/circle.genmodel
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/circle.genmodel
@@ -2,27 +2,22 @@
 <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
     xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.ecp.view.edapt.util.test/src"
     modelPluginID="org.eclipse.emf.ecp.view.edapt.util.test" modelName="Circle" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
-    importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
-    operationReflection="true" importOrganizing="true">
+    rootImplementsInterface="" runtimeCompatibility="true" importerID="org.eclipse.emf.importer.ecore"
+    complianceLevel="6.0" copyrightFields="false" interfaceNamePattern="EdaptTest{0}"
+    classNamePattern="EdaptTest{0}Impl" operationReflection="true" importOrganizing="true">
+  <foreignModel>a.ecore</foreignModel>
+  <foreignModel>b.ecore</foreignModel>
+  <foreignModel>c.ecore</foreignModel>
+  <foreignModel>d.ecore</foreignModel>
+  <foreignModel>e.ecore</foreignModel>
   <foreignModel>f.ecore</foreignModel>
-  <genPackages prefix="F" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
-      disposableProviderFactory="true" ecorePackage="f.ecore#/">
-    <genClasses ecoreClass="f.ecore#//F">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference f.ecore#//F/e"/>
-    </genClasses>
-  </genPackages>
-  <genPackages prefix="EE" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
-      disposableProviderFactory="true" ecorePackage="e.ecore#/">
-    <genClasses ecoreClass="e.ecore#//E">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference e.ecore#//E/d"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference e.ecore#//E/f"/>
-    </genClasses>
-  </genPackages>
-  <genPackages prefix="D" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
-      disposableProviderFactory="true" ecorePackage="d.ecore#/">
-    <genClasses ecoreClass="d.ecore#//D">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference d.ecore#//D/b"/>
-    </genClasses>
+  <foreignModel>w.ecore</foreignModel>
+  <foreignModel>x.ecore</foreignModel>
+  <foreignModel>y.ecore</foreignModel>
+  <foreignModel>z.ecore</foreignModel>
+  <genPackages prefix="A" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
+      disposableProviderFactory="true" ecorePackage="a.ecore#/">
+    <genClasses ecoreClass="a.ecore#//A"/>
   </genPackages>
   <genPackages prefix="B" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
       disposableProviderFactory="true" ecorePackage="b.ecore#/">
@@ -31,14 +26,54 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference b.ecore#//B/c"/>
     </genClasses>
   </genPackages>
-  <genPackages prefix="A" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
-      disposableProviderFactory="true" ecorePackage="a.ecore#/">
-    <genClasses ecoreClass="a.ecore#//A"/>
-  </genPackages>
   <genPackages prefix="C" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
       disposableProviderFactory="true" ecorePackage="c.ecore#/">
     <genClasses ecoreClass="c.ecore#//C">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference c.ecore#//C/d"/>
     </genClasses>
   </genPackages>
+  <genPackages prefix="D" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
+      disposableProviderFactory="true" ecorePackage="d.ecore#/">
+    <genClasses ecoreClass="d.ecore#//D">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference d.ecore#//D/b"/>
+    </genClasses>
+  </genPackages>
+  <genPackages prefix="E" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
+      disposableProviderFactory="true" ecorePackage="e.ecore#/">
+    <genClasses ecoreClass="e.ecore#//E">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference e.ecore#//E/d"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference e.ecore#//E/f"/>
+    </genClasses>
+  </genPackages>
+  <genPackages prefix="F" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
+      disposableProviderFactory="true" ecorePackage="f.ecore#/">
+    <genClasses ecoreClass="f.ecore#//F">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference f.ecore#//F/e"/>
+    </genClasses>
+  </genPackages>
+  <genPackages prefix="W" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
+      disposableProviderFactory="true" ecorePackage="w.ecore#/">
+    <genClasses ecoreClass="w.ecore#//W">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference w.ecore#//W/x"/>
+    </genClasses>
+  </genPackages>
+  <genPackages prefix="X" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
+      disposableProviderFactory="true" ecorePackage="x.ecore#/">
+    <genClasses ecoreClass="x.ecore#//X">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference x.ecore#//X/w"/>
+    </genClasses>
+  </genPackages>
+  <genPackages prefix="Y" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
+      disposableProviderFactory="true" ecorePackage="y.ecore#/">
+    <genClasses ecoreClass="y.ecore#//Y">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference y.ecore#//Y/x"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference y.ecore#//Y/z"/>
+    </genClasses>
+  </genPackages>
+  <genPackages prefix="Z" basePackage="org.eclipse.emf.ecp.view.edapt.util.test.model"
+      disposableProviderFactory="true" ecorePackage="z.ecore#/">
+    <genClasses ecoreClass="z.ecore#//Z">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference z.ecore#//Z/y"/>
+    </genClasses>
+  </genPackages>
 </genmodel:GenModel>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/w.ecore b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/w.ecore
new file mode 100644
index 0000000..62ef81d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/w.ecore
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="w" nsURI="http://example.org/w" nsPrefix="w">
+  <eClassifiers xsi:type="ecore:EClass" name="W">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="x" eType="ecore:EClass x.ecore#//X"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/x.ecore b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/x.ecore
new file mode 100644
index 0000000..d9fa295
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/x.ecore
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="x" nsURI="http://example.org/x" nsPrefix="x">
+  <eClassifiers xsi:type="ecore:EClass" name="X">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="w" eType="ecore:EClass w.ecore#//W"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/y.ecore b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/y.ecore
new file mode 100644
index 0000000..0d69fec
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/y.ecore
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="y" nsURI="http://example.org/y" nsPrefix="y">
+  <eClassifiers xsi:type="ecore:EClass" name="Y">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="x" eType="ecore:EClass x.ecore#//X"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="z" eType="ecore:EClass z.ecore#//Z"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/z.ecore b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/z.ecore
new file mode 100644
index 0000000..7e5a39d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/z.ecore
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="z" nsURI="http://example.org/z" nsPrefix="z">
+  <eClassifiers xsi:type="ecore:EClass" name="Z">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="y" eType="ecore:EClass y.ecore#//Y"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/plugin.xml b/tests/org.eclipse.emf.ecp.view.edapt.util.test/plugin.xml
index 52abfc9..5c073e6 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/plugin.xml
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/plugin.xml
@@ -9,24 +9,8 @@
    <extension point="org.eclipse.emf.ecore.generated_package">
       <!-- @generated circle -->
       <package
-            uri="http://example.org/f"
-            class="org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage"
-            genModel="model/circle.genmodel"/>
-   </extension>
-
-   <extension point="org.eclipse.emf.ecore.generated_package">
-      <!-- @generated circle -->
-      <package
-            uri="http://example.org/e"
-            class="org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage"
-            genModel="model/circle.genmodel"/>
-   </extension>
-
-   <extension point="org.eclipse.emf.ecore.generated_package">
-      <!-- @generated circle -->
-      <package
-            uri="http://example.org/d"
-            class="org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage"
+            uri="http://example.org/a"
+            class="org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage"
             genModel="model/circle.genmodel"/>
    </extension>
 
@@ -34,15 +18,7 @@
       <!-- @generated circle -->
       <package
             uri="http://example.org/b"
-            class="org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage"
-            genModel="model/circle.genmodel"/>
-   </extension>
-
-   <extension point="org.eclipse.emf.ecore.generated_package">
-      <!-- @generated circle -->
-      <package
-            uri="http://example.org/a"
-            class="org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage"
+            class="org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage"
             genModel="model/circle.genmodel"/>
    </extension>
 
@@ -50,8 +26,63 @@
       <!-- @generated circle -->
       <package
             uri="http://example.org/c"
-            class="org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage"
+            class="org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage"
             genModel="model/circle.genmodel"/>
    </extension>
 
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated circle -->
+      <package
+            uri="http://example.org/d"
+            class="org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage"
+            genModel="model/circle.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated circle -->
+      <package
+            uri="http://example.org/e"
+            class="org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage"
+            genModel="model/circle.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated circle -->
+      <package
+            uri="http://example.org/f"
+            class="org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage"
+            genModel="model/circle.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated circle -->
+      <package
+            uri="http://example.org/w"
+            class="org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage"
+            genModel="model/circle.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated circle -->
+      <package
+            uri="http://example.org/x"
+            class="org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage"
+            genModel="model/circle.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated circle -->
+      <package
+            uri="http://example.org/y"
+            class="org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage"
+            genModel="model/circle.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated circle -->
+      <package
+            uri="http://example.org/z"
+            class="org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage"
+            genModel="model/circle.genmodel"/>
+   </extension>
 </plugin>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/pom.xml b/tests/org.eclipse.emf.ecp.view.edapt.util.test/pom.xml
new file mode 100644
index 0000000..54b16c6
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.emf.ecp</groupId>
+		<artifactId>ecp-tests-parent</artifactId>
+		<version>1.5.0-SNAPSHOT</version>
+		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
+	</parent>
+	<groupId>org.eclipse.emf.ecp</groupId>
+	<artifactId>org.eclipse.emf.ecp.view.edapt.util.test</artifactId>
+	<version>1.5.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyTreeIterator_Test.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyTreeIterator_Test.java
new file mode 100644
index 0000000..a6238d6
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyTreeIterator_Test.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * jfaltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.edapt;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Iterator;
+import java.util.Set;
+
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Tests the {@link PackageDependencyIterator}. Setup is performed via {@link PackageDependencyTree}, so this is a
+ * integration test between the two components.
+ *
+ * @author jfaltermeier
+ *
+ */
+public class PackageDependencyTreeIterator_Test {
+
+	@BeforeClass
+	public static void beforeClass() {
+		// non osgi -> register epackages by hand
+		EdaptTestAPackage.eINSTANCE.eClass();
+		EdaptTestBPackage.eINSTANCE.eClass();
+		EdaptTestCPackage.eINSTANCE.eClass();
+		EdaptTestDPackage.eINSTANCE.eClass();
+		EdaptTestEPackage.eINSTANCE.eClass();
+		EdaptTestFPackage.eINSTANCE.eClass();
+		EdaptTestWPackage.eINSTANCE.eClass();
+		EdaptTestXPackage.eINSTANCE.eClass();
+		EdaptTestYPackage.eINSTANCE.eClass();
+		EdaptTestZPackage.eINSTANCE.eClass();
+	}
+
+	@Test
+	public void testIteratorWithCircles() {
+		final PackageDependencyTree packageDependencyTree = new PackageDependencyTree();
+		packageDependencyTree.addPackage(EdaptTestFPackage.eNS_URI);
+		final Iterator<Set<String>> iterator = packageDependencyTree.getIerator();
+
+		// A
+		assertTrue(iterator.hasNext());
+		final Set<String> aSet = iterator.next();
+		assertEquals(1, aSet.size());
+		assertTrue(aSet.contains(EdaptTestAPackage.eNS_URI));
+
+		// B C D
+		assertTrue(iterator.hasNext());
+		final Set<String> bcdSet = iterator.next();
+		assertEquals(3, bcdSet.size());
+		assertTrue(bcdSet.contains(EdaptTestBPackage.eNS_URI));
+		assertTrue(bcdSet.contains(EdaptTestCPackage.eNS_URI));
+		assertTrue(bcdSet.contains(EdaptTestDPackage.eNS_URI));
+
+		// E F
+		assertTrue(iterator.hasNext());
+		final Set<String> efSet = iterator.next();
+		assertEquals(2, efSet.size());
+		assertTrue(efSet.contains(EdaptTestEPackage.eNS_URI));
+		assertTrue(efSet.contains(EdaptTestFPackage.eNS_URI));
+		assertFalse(iterator.hasNext());
+	}
+
+	@Test
+	public void testIteratorWithCircleAtStart() {
+		final PackageDependencyTree packageDependencyTree = new PackageDependencyTree();
+		packageDependencyTree.addPackage(EdaptTestZPackage.eNS_URI);
+		final Iterator<Set<String>> iterator = packageDependencyTree.getIerator();
+
+		// W X
+		assertTrue(iterator.hasNext());
+		final Set<String> wxSet = iterator.next();
+		assertEquals(2, wxSet.size());
+		assertTrue(wxSet.contains(EdaptTestWPackage.eNS_URI));
+		assertTrue(wxSet.contains(EdaptTestXPackage.eNS_URI));
+
+		// Y Z
+		assertTrue(iterator.hasNext());
+		final Set<String> yzSet = iterator.next();
+		assertEquals(2, yzSet.size());
+		assertTrue(yzSet.contains(EdaptTestYPackage.eNS_URI));
+		assertTrue(yzSet.contains(EdaptTestZPackage.eNS_URI));
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyTree_Test.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyTree_Test.java
index dc77123..901609e 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyTree_Test.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/PackageDependencyTree_Test.java
@@ -12,22 +12,28 @@
 package org.eclipse.emf.ecp.view.edapt;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
-import java.util.Iterator;
+import java.util.Arrays;
+import java.util.LinkedHashSet;
+import java.util.Map;
 import java.util.Set;
 
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage;
+import org.eclipse.emf.ecp.view.edapt.PackageDependencyTree.PackageTreeNode;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
+ *
+ * Tests for {@link PackageDependencyTree}.
+ *
  * @author jfaltermeier
  *
  */
@@ -35,43 +41,121 @@
 
 	@BeforeClass
 	public static void beforeClass() {
-		// non osgi -> register epackages
-		APackage.eINSTANCE.eClass();
-		BPackage.eINSTANCE.eClass();
-		CPackage.eINSTANCE.eClass();
-		DPackage.eINSTANCE.eClass();
-		EEPackage.eINSTANCE.eClass();
-		FPackage.eINSTANCE.eClass();
+		// non osgi -> register epackages by hand
+		EdaptTestAPackage.eINSTANCE.eClass();
+		EdaptTestBPackage.eINSTANCE.eClass();
+		EdaptTestCPackage.eINSTANCE.eClass();
+		EdaptTestDPackage.eINSTANCE.eClass();
+		EdaptTestEPackage.eINSTANCE.eClass();
+		EdaptTestFPackage.eINSTANCE.eClass();
 	}
 
 	@Test
-	public void testIteratorWithCircles() {
-		final PackageDependencyTree packageDependencyTree = new PackageDependencyTree();
-		packageDependencyTree.addPackage(FPackage.eNS_URI);
-		final Iterator<Set<String>> iterator = packageDependencyTree.getIerator();
+	public void testRegisterNodesDependenciesRegistered() {
+		final PackageDependencyTree dependencyTree = new PackageDependencyTree();
 
-		// A
-		assertTrue(iterator.hasNext());
-		final Set<String> aSet = iterator.next();
-		assertEquals(1, aSet.size());
-		assertTrue(aSet.contains(APackage.eNS_URI));
+		// add A
+		dependencyTree.addPackage(EdaptTestAPackage.eNS_URI);
+		final Map<String, PackageTreeNode> aMap = dependencyTree.getNsURIToNodeMap();
+		assertEquals(1, aMap.size());
+		assertTrue(aMap.containsKey(EdaptTestAPackage.eNS_URI));
 
-		// B C D
-		assertTrue(iterator.hasNext());
-		final Set<String> bcdSet = iterator.next();
-		assertEquals(3, bcdSet.size());
-		assertTrue(bcdSet.contains(BPackage.eNS_URI));
-		assertTrue(bcdSet.contains(CPackage.eNS_URI));
-		assertTrue(bcdSet.contains(DPackage.eNS_URI));
+		// add B
+		dependencyTree.addPackage(EdaptTestBPackage.eNS_URI);
+		final Map<String, PackageTreeNode> abcdMap = dependencyTree.getNsURIToNodeMap();
+		assertEquals(4, abcdMap.size());
+		assertTrue(abcdMap.containsKey(EdaptTestAPackage.eNS_URI));
+		assertTrue(abcdMap.containsKey(EdaptTestBPackage.eNS_URI));
+		assertTrue(abcdMap.containsKey(EdaptTestCPackage.eNS_URI));
+		assertTrue(abcdMap.containsKey(EdaptTestDPackage.eNS_URI));
 
-		// E F
-		assertTrue(iterator.hasNext());
-		final Set<String> efSet = iterator.next();
-		assertEquals(2, efSet.size());
-		assertTrue(efSet.contains(EEPackage.eNS_URI));
-		assertTrue(efSet.contains(FPackage.eNS_URI));
-		assertFalse(iterator.hasNext());
+		// add E
+		dependencyTree.addPackage(EdaptTestEPackage.eNS_URI);
+		final Map<String, PackageTreeNode> abcdefMap = dependencyTree.getNsURIToNodeMap();
+		assertEquals(6, abcdefMap.size());
+		assertTrue(abcdefMap.containsKey(EdaptTestAPackage.eNS_URI));
+		assertTrue(abcdefMap.containsKey(EdaptTestBPackage.eNS_URI));
+		assertTrue(abcdefMap.containsKey(EdaptTestCPackage.eNS_URI));
+		assertTrue(abcdefMap.containsKey(EdaptTestDPackage.eNS_URI));
+		assertTrue(abcdefMap.containsKey(EdaptTestEPackage.eNS_URI));
+		assertTrue(abcdefMap.containsKey(EdaptTestFPackage.eNS_URI));
+	}
 
+	@Test
+	public void testRegisterNodesDependenciesRegisteredBottom() {
+		final PackageDependencyTree dependencyTree = new PackageDependencyTree();
+
+		// add F
+		dependencyTree.addPackage(EdaptTestFPackage.eNS_URI);
+		final Map<String, PackageTreeNode> abcdefMap = dependencyTree.getNsURIToNodeMap();
+		assertEquals(6, abcdefMap.size());
+		assertTrue(abcdefMap.containsKey(EdaptTestAPackage.eNS_URI));
+		assertTrue(abcdefMap.containsKey(EdaptTestBPackage.eNS_URI));
+		assertTrue(abcdefMap.containsKey(EdaptTestCPackage.eNS_URI));
+		assertTrue(abcdefMap.containsKey(EdaptTestDPackage.eNS_URI));
+		assertTrue(abcdefMap.containsKey(EdaptTestEPackage.eNS_URI));
+		assertTrue(abcdefMap.containsKey(EdaptTestFPackage.eNS_URI));
+	}
+
+	@Test
+	public void testRegisterNodesCheckNodes() {
+		final PackageDependencyTree dependencyTree = new PackageDependencyTree();
+
+		// add F
+		dependencyTree.addPackage(EdaptTestFPackage.eNS_URI);
+		final Map<String, PackageTreeNode> map = dependencyTree.getNsURIToNodeMap();
+
+		final PackageTreeNode aNode = map.get(EdaptTestAPackage.eNS_URI);
+		assertEquals(0, aNode.getParents().size());
+		assertEquals(1, aNode.getChildren().size());
+		assertEquals(EdaptTestBPackage.eNS_URI, aNode.getChildren().iterator().next().getNSURI());
+
+		final PackageTreeNode bNode = map.get(EdaptTestBPackage.eNS_URI);
+		assertEquals(2, bNode.getParents().size());
+		assertNodes(bNode.getParents(), EdaptTestAPackage.eNS_URI, EdaptTestCPackage.eNS_URI);
+		assertEquals(1, bNode.getChildren().size());
+		assertEquals(EdaptTestDPackage.eNS_URI, bNode.getChildren().iterator().next().getNSURI());
+
+		final PackageTreeNode cNode = map.get(EdaptTestCPackage.eNS_URI);
+		assertEquals(1, cNode.getParents().size());
+		assertEquals(EdaptTestDPackage.eNS_URI, cNode.getParents().iterator().next().getNSURI());
+		assertEquals(1, cNode.getChildren().size());
+		assertEquals(EdaptTestBPackage.eNS_URI, cNode.getChildren().iterator().next().getNSURI());
+
+		final PackageTreeNode dNode = map.get(EdaptTestDPackage.eNS_URI);
+		assertEquals(1, dNode.getParents().size());
+		assertEquals(EdaptTestBPackage.eNS_URI, dNode.getParents().iterator().next().getNSURI());
+		assertEquals(2, dNode.getChildren().size());
+		assertNodes(dNode.getChildren(), EdaptTestCPackage.eNS_URI, EdaptTestEPackage.eNS_URI);
+
+		final PackageTreeNode eNode = map.get(EdaptTestEPackage.eNS_URI);
+		assertEquals(2, eNode.getParents().size());
+		assertNodes(eNode.getParents(), EdaptTestDPackage.eNS_URI, EdaptTestFPackage.eNS_URI);
+		assertEquals(1, eNode.getChildren().size());
+		assertEquals(EdaptTestFPackage.eNS_URI, eNode.getChildren().iterator().next().getNSURI());
+
+		final PackageTreeNode fNode = map.get(EdaptTestFPackage.eNS_URI);
+		assertEquals(1, fNode.getParents().size());
+		assertEquals(EdaptTestEPackage.eNS_URI, fNode.getParents().iterator().next().getNSURI());
+		assertEquals(1, fNode.getChildren().size());
+		assertEquals(EdaptTestEPackage.eNS_URI, fNode.getChildren().iterator().next().getNSURI());
+
+	}
+
+	private static void assertNodes(Set<PackageTreeNode> actual, String... expected) {
+		final Set<String> expectedNsURIs = new LinkedHashSet<String>(Arrays.asList(expected));
+		for (final PackageTreeNode node : actual) {
+			expectedNsURIs.remove(node.getNSURI());
+		}
+		if (expectedNsURIs.isEmpty()) {
+			return;
+		}
+		final StringBuilder stringBuilder = new StringBuilder(
+			"The following expected nsURIs were not in the actual set: ");
+		for (final String uri : expectedNsURIs) {
+			stringBuilder.append(uri + " ");
+		}
+		fail(stringBuilder.toString());
 	}
 
 }
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/A.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestA.java
similarity index 64%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/A.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestA.java
index 9cb3edc..eb8c989 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/A.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestA.java
@@ -10,9 +10,9 @@
  * <!-- end-user-doc -->
  *
  *
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage#getA()
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage#getA()
  * @model
  * @generated
  */
-public interface A extends EObject {
-} // A
+public interface EdaptTestA extends EObject {
+} // EdaptTestA
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/AFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAFactory.java
similarity index 71%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/AFactory.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAFactory.java
index bb4f73c..58501ed 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/AFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAFactory.java
@@ -10,10 +10,10 @@
  * It provides a create method for each non-abstract class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage
  * @generated
  */
-public interface AFactory extends EFactory {
+public interface EdaptTestAFactory extends EFactory {
 	/**
 	 * The singleton instance of the factory.
 	 * <!-- begin-user-doc -->
@@ -21,7 +21,7 @@
 	 * 
 	 * @generated
 	 */
-	AFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.AFactoryImpl.init();
+	EdaptTestAFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAFactoryImpl.init();
 
 	/**
 	 * Returns a new object of class '<em>A</em>'.
@@ -31,7 +31,7 @@
 	 * @return a new object of class '<em>A</em>'.
 	 * @generated
 	 */
-	A createA();
+	EdaptTestA createA();
 
 	/**
 	 * Returns the package supported by this factory.
@@ -41,6 +41,6 @@
 	 * @return the package supported by this factory.
 	 * @generated
 	 */
-	APackage getAPackage();
+	EdaptTestAPackage getAPackage();
 
-} // AFactory
+} // EdaptTestAFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/APackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAPackage.java
similarity index 78%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/APackage.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAPackage.java
index 6a61511..2c3cda2 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/APackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAPackage.java
@@ -18,11 +18,11 @@
  * </ul>
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.AFactory
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAFactory
  * @model kind="package"
  * @generated
  */
-public interface APackage extends EPackage {
+public interface EdaptTestAPackage extends EPackage {
 	/**
 	 * The package name.
 	 * <!-- begin-user-doc -->
@@ -57,16 +57,16 @@
 	 * 
 	 * @generated
 	 */
-	APackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.APackageImpl.init();
+	EdaptTestAPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl.init();
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.AImpl <em>A</em>}'
-	 * class.
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAImpl
+	 * <em>A</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.AImpl
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.APackageImpl#getA()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAImpl
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl#getA()
 	 * @generated
 	 */
 	int A = 0;
@@ -92,12 +92,13 @@
 	int A_OPERATION_COUNT = 0;
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.a.A <em>A</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestA <em>A</em>}
+	 * '.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for class '<em>A</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.A
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestA
 	 * @generated
 	 */
 	EClass getA();
@@ -110,7 +111,7 @@
 	 * @return the factory that creates the instances of the model.
 	 * @generated
 	 */
-	AFactory getAFactory();
+	EdaptTestAFactory getAFactory();
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -128,17 +129,17 @@
 	 */
 	interface Literals {
 		/**
-		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.AImpl
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAImpl
 		 * <em>A</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * 
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.AImpl
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.APackageImpl#getA()
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAImpl
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl#getA()
 		 * @generated
 		 */
 		EClass A = eINSTANCE.getA();
 
 	}
 
-} // APackage
+} // EdaptTestAPackage
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/APackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/APackageImpl.java
deleted file mode 100644
index 6f632fe..0000000
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/APackageImpl.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/**
- */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.AFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EEPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FPackageImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * 
- * @generated
- */
-public class APackageImpl extends EPackageImpl implements APackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private EClass aEClass = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private APackageImpl() {
-		super(eNS_URI, AFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 *
-	 * <p>
-	 * This method is used to initialize {@link APackage#eINSTANCE} when that field is accessed. Clients should not
-	 * invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static APackage init() {
-		if (isInited) {
-			return (APackage) EPackage.Registry.INSTANCE.getEPackage(APackage.eNS_URI);
-		}
-
-		// Obtain or create and register package
-		final APackageImpl theAPackage = (APackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof APackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new APackageImpl());
-
-		isInited = true;
-
-		// Obtain or create and register interdependencies
-		final FPackageImpl theFPackage = (FPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(FPackage.eNS_URI) instanceof FPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(FPackage.eNS_URI)
-			: FPackage.eINSTANCE);
-		final EEPackageImpl theEEPackage = (EEPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(EEPackage.eNS_URI) instanceof EEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EEPackage.eNS_URI)
-			: EEPackage.eINSTANCE);
-		final DPackageImpl theDPackage = (DPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(DPackage.eNS_URI) instanceof DPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(DPackage.eNS_URI)
-			: DPackage.eINSTANCE);
-		final BPackageImpl theBPackage = (BPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(BPackage.eNS_URI) instanceof BPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(BPackage.eNS_URI)
-			: BPackage.eINSTANCE);
-		final CPackageImpl theCPackage = (CPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(CPackage.eNS_URI) instanceof CPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(CPackage.eNS_URI)
-			: CPackage.eINSTANCE);
-
-		// Create package meta-data objects
-		theAPackage.createPackageContents();
-		theFPackage.createPackageContents();
-		theEEPackage.createPackageContents();
-		theDPackage.createPackageContents();
-		theBPackage.createPackageContents();
-		theCPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theAPackage.initializePackageContents();
-		theFPackage.initializePackageContents();
-		theEEPackage.initializePackageContents();
-		theDPackage.initializePackageContents();
-		theBPackage.initializePackageContents();
-		theCPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theAPackage.freeze();
-
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(APackage.eNS_URI, theAPackage);
-		return theAPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EClass getA() {
-		return aEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public AFactory getAFactory() {
-		return (AFactory) getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package. This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) {
-			return;
-		}
-		isCreated = true;
-
-		// Create classes and their features
-		aEClass = createEClass(A);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model. This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) {
-			return;
-		}
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-
-		// Initialize classes, features, and operations; add parameters
-		initEClass(aEClass, org.eclipse.emf.ecp.view.edapt.util.test.model.a.A.class, "A", !IS_ABSTRACT, !IS_INTERFACE,
-			IS_GENERATED_INSTANCE_CLASS);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} // APackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/AFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAFactoryImpl.java
similarity index 63%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/AFactoryImpl.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAFactoryImpl.java
index 9d8a902..aa0b00e 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/AFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAFactoryImpl.java
@@ -7,9 +7,9 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.A;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.AFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestA;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -18,7 +18,7 @@
  * 
  * @generated
  */
-public class AFactoryImpl extends EFactoryImpl implements AFactory {
+public class EdaptTestAFactoryImpl extends EFactoryImpl implements EdaptTestAFactory {
 	/**
 	 * Creates the default factory implementation.
 	 * <!-- begin-user-doc -->
@@ -26,16 +26,17 @@
 	 * 
 	 * @generated
 	 */
-	public static AFactory init() {
+	public static EdaptTestAFactory init() {
 		try {
-			final AFactory theAFactory = (AFactory) EPackage.Registry.INSTANCE.getEFactory(APackage.eNS_URI);
+			final EdaptTestAFactory theAFactory = (EdaptTestAFactory) EPackage.Registry.INSTANCE
+				.getEFactory(EdaptTestAPackage.eNS_URI);
 			if (theAFactory != null) {
 				return theAFactory;
 			}
 		} catch (final Exception exception) {
 			EcorePlugin.INSTANCE.log(exception);
 		}
-		return new AFactoryImpl();
+		return new EdaptTestAFactoryImpl();
 	}
 
 	/**
@@ -45,7 +46,7 @@
 	 * 
 	 * @generated
 	 */
-	public AFactoryImpl() {
+	public EdaptTestAFactoryImpl() {
 		super();
 	}
 
@@ -58,7 +59,7 @@
 	@Override
 	public EObject create(EClass eClass) {
 		switch (eClass.getClassifierID()) {
-		case APackage.A:
+		case EdaptTestAPackage.A:
 			return createA();
 		default:
 			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
@@ -72,8 +73,8 @@
 	 * @generated
 	 */
 	@Override
-	public A createA() {
-		final AImpl a = new AImpl();
+	public EdaptTestA createA() {
+		final EdaptTestAImpl a = new EdaptTestAImpl();
 		return a;
 	}
 
@@ -84,8 +85,8 @@
 	 * @generated
 	 */
 	@Override
-	public APackage getAPackage() {
-		return (APackage) getEPackage();
+	public EdaptTestAPackage getAPackage() {
+		return (EdaptTestAPackage) getEPackage();
 	}
 
 	/**
@@ -96,8 +97,8 @@
 	 * @generated
 	 */
 	@Deprecated
-	public static APackage getPackage() {
-		return APackage.eINSTANCE;
+	public static EdaptTestAPackage getPackage() {
+		return EdaptTestAPackage.eINSTANCE;
 	}
 
-} // AFactoryImpl
+} // EdaptTestAFactoryImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/AImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAImpl.java
similarity index 63%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/AImpl.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAImpl.java
index 4278ee2..de45765 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/AImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAImpl.java
@@ -4,8 +4,8 @@
 
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.A;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestA;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -16,14 +16,14 @@
  *
  * @generated
  */
-public class AImpl extends MinimalEObjectImpl.Container implements A {
+public class EdaptTestAImpl extends MinimalEObjectImpl.Container implements EdaptTestA {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @generated
 	 */
-	protected AImpl() {
+	protected EdaptTestAImpl() {
 		super();
 	}
 
@@ -35,7 +35,7 @@
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return APackage.Literals.A;
+		return EdaptTestAPackage.Literals.A;
 	}
 
-} // AImpl
+} // EdaptTestAImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAPackageImpl.java
new file mode 100644
index 0000000..3486f03
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAPackageImpl.java
@@ -0,0 +1,246 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestA;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestAPackageImpl extends EPackageImpl implements EdaptTestAPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass aEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private EdaptTestAPackageImpl() {
+		super(eNS_URI, EdaptTestAFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link EdaptTestAPackage#eINSTANCE} when that field is accessed. Clients should
+	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static EdaptTestAPackage init() {
+		if (isInited) {
+			return (EdaptTestAPackage) EPackage.Registry.INSTANCE.getEPackage(EdaptTestAPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
+			.get(eNS_URI)
+			: new EdaptTestAPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theAPackage.createPackageContents();
+		theBPackage.createPackageContents();
+		theCPackage.createPackageContents();
+		theDPackage.createPackageContents();
+		theEPackage.createPackageContents();
+		theFPackage.createPackageContents();
+		theWPackage.createPackageContents();
+		theXPackage.createPackageContents();
+		theYPackage.createPackageContents();
+		theZPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theAPackage.initializePackageContents();
+		theBPackage.initializePackageContents();
+		theCPackage.initializePackageContents();
+		theDPackage.initializePackageContents();
+		theEPackage.initializePackageContents();
+		theFPackage.initializePackageContents();
+		theWPackage.initializePackageContents();
+		theXPackage.initializePackageContents();
+		theYPackage.initializePackageContents();
+		theZPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theAPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(EdaptTestAPackage.eNS_URI, theAPackage);
+		return theAPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EClass getA() {
+		return aEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestAFactory getAFactory() {
+		return (EdaptTestAFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		aEClass = createEClass(A);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(aEClass, EdaptTestA.class, "A", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // EdaptTestAPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/AAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/AAdapterFactory.java
index be1a79e..54f2eb1 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/AAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/AAdapterFactory.java
@@ -6,8 +6,8 @@
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.A;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestA;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -15,7 +15,7 @@
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage
  * @generated
  */
 public class AAdapterFactory extends AdapterFactoryImpl {
@@ -26,7 +26,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static APackage modelPackage;
+	protected static EdaptTestAPackage modelPackage;
 
 	/**
 	 * Creates an instance of the adapter factory.
@@ -37,7 +37,7 @@
 	 */
 	public AAdapterFactory() {
 		if (modelPackage == null) {
-			modelPackage = APackage.eINSTANCE;
+			modelPackage = EdaptTestAPackage.eINSTANCE;
 		}
 	}
 
@@ -72,7 +72,7 @@
 	protected ASwitch<Adapter> modelSwitch =
 		new ASwitch<Adapter>() {
 			@Override
-			public Adapter caseA(A object) {
+			public Adapter caseA(EdaptTestA object) {
 				return createAAdapter();
 			}
 
@@ -97,7 +97,7 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.a.A
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestA
 	 * <em>A</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -105,7 +105,7 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the new adapter.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.A
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestA
 	 * @generated
 	 */
 	public Adapter createAAdapter() {
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/ASwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/ASwitch.java
index 567ce8b..4e3c579 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/ASwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/ASwitch.java
@@ -5,8 +5,8 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.A;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestA;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,7 +19,7 @@
  * which is the result of the switch.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage
  * @generated
  */
 public class ASwitch<T> extends Switch<T> {
@@ -30,7 +30,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static APackage modelPackage;
+	protected static EdaptTestAPackage modelPackage;
 
 	/**
 	 * Creates an instance of the switch.
@@ -41,7 +41,7 @@
 	 */
 	public ASwitch() {
 		if (modelPackage == null) {
-			modelPackage = APackage.eINSTANCE;
+			modelPackage = EdaptTestAPackage.eINSTANCE;
 		}
 	}
 
@@ -71,8 +71,8 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-		case APackage.A: {
-			final A a = (A) theEObject;
+		case EdaptTestAPackage.A: {
+			final EdaptTestA a = (EdaptTestA) theEObject;
 			T result = caseA(a);
 			if (result == null) {
 				result = defaultCase(theEObject);
@@ -96,7 +96,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseA(A object) {
+	public T caseA(EdaptTestA object) {
 		return null;
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/B.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestB.java
similarity index 61%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/B.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestB.java
index d236d0b..e409d20 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/B.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestB.java
@@ -3,8 +3,8 @@
 package org.eclipse.emf.ecp.view.edapt.util.test.model.b;
 
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.A;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.C;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestA;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC;
 
 /**
  * <!-- begin-user-doc -->
@@ -14,16 +14,16 @@
  * <p>
  * The following features are supported:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.B#getA <em>A</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.B#getC <em>C</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB#getA <em>A</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB#getC <em>C</em>}</li>
  * </ul>
  * </p>
  *
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage#getB()
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage#getB()
  * @model
  * @generated
  */
-public interface B extends EObject {
+public interface EdaptTestB extends EObject {
 	/**
 	 * Returns the value of the '<em><b>A</b></em>' reference.
 	 * <!-- begin-user-doc -->
@@ -33,15 +33,16 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the value of the '<em>A</em>' reference.
-	 * @see #setA(A)
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage#getB_A()
+	 * @see #setA(EdaptTestA)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage#getB_A()
 	 * @model
 	 * @generated
 	 */
-	A getA();
+	EdaptTestA getA();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.B#getA <em>A</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB#getA <em>A</em>}'
+	 * reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
@@ -49,7 +50,7 @@
 	 * @see #getA()
 	 * @generated
 	 */
-	void setA(A value);
+	void setA(EdaptTestA value);
 
 	/**
 	 * Returns the value of the '<em><b>C</b></em>' reference.
@@ -60,15 +61,16 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the value of the '<em>C</em>' reference.
-	 * @see #setC(C)
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage#getB_C()
+	 * @see #setC(EdaptTestC)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage#getB_C()
 	 * @model
 	 * @generated
 	 */
-	C getC();
+	EdaptTestC getC();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.B#getC <em>C</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB#getC <em>C</em>}'
+	 * reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
@@ -76,6 +78,6 @@
 	 * @see #getC()
 	 * @generated
 	 */
-	void setC(C value);
+	void setC(EdaptTestC value);
 
-} // B
+} // EdaptTestB
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/BFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBFactory.java
similarity index 71%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/BFactory.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBFactory.java
index 7ac43f0..ff43eee 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/BFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBFactory.java
@@ -10,10 +10,10 @@
  * It provides a create method for each non-abstract class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage
  * @generated
  */
-public interface BFactory extends EFactory {
+public interface EdaptTestBFactory extends EFactory {
 	/**
 	 * The singleton instance of the factory.
 	 * <!-- begin-user-doc -->
@@ -21,7 +21,7 @@
 	 * 
 	 * @generated
 	 */
-	BFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BFactoryImpl.init();
+	EdaptTestBFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBFactoryImpl.init();
 
 	/**
 	 * Returns a new object of class '<em>B</em>'.
@@ -31,7 +31,7 @@
 	 * @return a new object of class '<em>B</em>'.
 	 * @generated
 	 */
-	B createB();
+	EdaptTestB createB();
 
 	/**
 	 * Returns the package supported by this factory.
@@ -41,6 +41,6 @@
 	 * @return the package supported by this factory.
 	 * @generated
 	 */
-	BPackage getBPackage();
+	EdaptTestBPackage getBPackage();
 
-} // BFactory
+} // EdaptTestBFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/BPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBPackage.java
similarity index 76%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/BPackage.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBPackage.java
index 9bcae72..4859c3d 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/BPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBPackage.java
@@ -19,11 +19,11 @@
  * </ul>
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.BFactory
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBFactory
  * @model kind="package"
  * @generated
  */
-public interface BPackage extends EPackage {
+public interface EdaptTestBPackage extends EPackage {
 	/**
 	 * The package name.
 	 * <!-- begin-user-doc -->
@@ -58,16 +58,16 @@
 	 * 
 	 * @generated
 	 */
-	BPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BPackageImpl.init();
+	EdaptTestBPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl.init();
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BImpl <em>B</em>}'
-	 * class.
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBImpl
+	 * <em>B</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BImpl
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BPackageImpl#getB()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBImpl
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl#getB()
 	 * @generated
 	 */
 	int B = 0;
@@ -113,37 +113,38 @@
 	int B_OPERATION_COUNT = 0;
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.B <em>B</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB <em>B</em>}
+	 * '.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for class '<em>B</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.B
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB
 	 * @generated
 	 */
 	EClass getB();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.B#getA
-	 * <em>A</em>}'.
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB#getA <em>A</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the reference '<em>A</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.B#getA()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB#getA()
 	 * @see #getB()
 	 * @generated
 	 */
 	EReference getB_A();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.B#getC
-	 * <em>C</em>}'.
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB#getC <em>C</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the reference '<em>C</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.B#getC()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB#getC()
 	 * @see #getB()
 	 * @generated
 	 */
@@ -157,7 +158,7 @@
 	 * @return the factory that creates the instances of the model.
 	 * @generated
 	 */
-	BFactory getBFactory();
+	EdaptTestBFactory getBFactory();
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -175,13 +176,13 @@
 	 */
 	interface Literals {
 		/**
-		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BImpl
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBImpl
 		 * <em>B</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * 
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BImpl
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BPackageImpl#getB()
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBImpl
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl#getB()
 		 * @generated
 		 */
 		EClass B = eINSTANCE.getB();
@@ -206,4 +207,4 @@
 
 	}
 
-} // BPackage
+} // EdaptTestBPackage
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/BPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/BPackageImpl.java
deleted file mode 100644
index 41e9693..0000000
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/BPackageImpl.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.APackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EEPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FPackageImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * 
- * @generated
- */
-public class BPackageImpl extends EPackageImpl implements BPackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private EClass bEClass = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private BPackageImpl() {
-		super(eNS_URI, BFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 *
-	 * <p>
-	 * This method is used to initialize {@link BPackage#eINSTANCE} when that field is accessed. Clients should not
-	 * invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static BPackage init() {
-		if (isInited) {
-			return (BPackage) EPackage.Registry.INSTANCE.getEPackage(BPackage.eNS_URI);
-		}
-
-		// Obtain or create and register package
-		final BPackageImpl theBPackage = (BPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof BPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new BPackageImpl());
-
-		isInited = true;
-
-		// Obtain or create and register interdependencies
-		final FPackageImpl theFPackage = (FPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(FPackage.eNS_URI) instanceof FPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(FPackage.eNS_URI)
-			: FPackage.eINSTANCE);
-		final EEPackageImpl theEEPackage = (EEPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(EEPackage.eNS_URI) instanceof EEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EEPackage.eNS_URI)
-			: EEPackage.eINSTANCE);
-		final DPackageImpl theDPackage = (DPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(DPackage.eNS_URI) instanceof DPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(DPackage.eNS_URI)
-			: DPackage.eINSTANCE);
-		final APackageImpl theAPackage = (APackageImpl) (EPackage.Registry.INSTANCE.getEPackage(APackage.eNS_URI) instanceof APackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(APackage.eNS_URI)
-			: APackage.eINSTANCE);
-		final CPackageImpl theCPackage = (CPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(CPackage.eNS_URI) instanceof CPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(CPackage.eNS_URI)
-			: CPackage.eINSTANCE);
-
-		// Create package meta-data objects
-		theBPackage.createPackageContents();
-		theFPackage.createPackageContents();
-		theEEPackage.createPackageContents();
-		theDPackage.createPackageContents();
-		theAPackage.createPackageContents();
-		theCPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theBPackage.initializePackageContents();
-		theFPackage.initializePackageContents();
-		theEEPackage.initializePackageContents();
-		theDPackage.initializePackageContents();
-		theAPackage.initializePackageContents();
-		theCPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theBPackage.freeze();
-
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(BPackage.eNS_URI, theBPackage);
-		return theBPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EClass getB() {
-		return bEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EReference getB_A() {
-		return (EReference) bEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EReference getB_C() {
-		return (EReference) bEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public BFactory getBFactory() {
-		return (BFactory) getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package. This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) {
-			return;
-		}
-		isCreated = true;
-
-		// Create classes and their features
-		bEClass = createEClass(B);
-		createEReference(bEClass, B__A);
-		createEReference(bEClass, B__C);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model. This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) {
-			return;
-		}
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Obtain other dependent packages
-		final APackage theAPackage = (APackage) EPackage.Registry.INSTANCE.getEPackage(APackage.eNS_URI);
-		final CPackage theCPackage = (CPackage) EPackage.Registry.INSTANCE.getEPackage(CPackage.eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-
-		// Initialize classes, features, and operations; add parameters
-		initEClass(bEClass, org.eclipse.emf.ecp.view.edapt.util.test.model.b.B.class, "B", !IS_ABSTRACT, !IS_INTERFACE,
-			IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getB_A(), theAPackage.getA(), null, "a", null, 0, 1,
-			org.eclipse.emf.ecp.view.edapt.util.test.model.b.B.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-			!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getB_C(), theCPackage.getC(), null, "c", null, 0, 1,
-			org.eclipse.emf.ecp.view.edapt.util.test.model.b.B.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-			!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} // BPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/BFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBFactoryImpl.java
similarity index 63%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/BFactoryImpl.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBFactoryImpl.java
index 93395cb..9f8da5f 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/BFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBFactoryImpl.java
@@ -7,9 +7,9 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.B;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -18,7 +18,7 @@
  * 
  * @generated
  */
-public class BFactoryImpl extends EFactoryImpl implements BFactory {
+public class EdaptTestBFactoryImpl extends EFactoryImpl implements EdaptTestBFactory {
 	/**
 	 * Creates the default factory implementation.
 	 * <!-- begin-user-doc -->
@@ -26,16 +26,17 @@
 	 * 
 	 * @generated
 	 */
-	public static BFactory init() {
+	public static EdaptTestBFactory init() {
 		try {
-			final BFactory theBFactory = (BFactory) EPackage.Registry.INSTANCE.getEFactory(BPackage.eNS_URI);
+			final EdaptTestBFactory theBFactory = (EdaptTestBFactory) EPackage.Registry.INSTANCE
+				.getEFactory(EdaptTestBPackage.eNS_URI);
 			if (theBFactory != null) {
 				return theBFactory;
 			}
 		} catch (final Exception exception) {
 			EcorePlugin.INSTANCE.log(exception);
 		}
-		return new BFactoryImpl();
+		return new EdaptTestBFactoryImpl();
 	}
 
 	/**
@@ -45,7 +46,7 @@
 	 * 
 	 * @generated
 	 */
-	public BFactoryImpl() {
+	public EdaptTestBFactoryImpl() {
 		super();
 	}
 
@@ -58,7 +59,7 @@
 	@Override
 	public EObject create(EClass eClass) {
 		switch (eClass.getClassifierID()) {
-		case BPackage.B:
+		case EdaptTestBPackage.B:
 			return createB();
 		default:
 			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
@@ -72,8 +73,8 @@
 	 * @generated
 	 */
 	@Override
-	public B createB() {
-		final BImpl b = new BImpl();
+	public EdaptTestB createB() {
+		final EdaptTestBImpl b = new EdaptTestBImpl();
 		return b;
 	}
 
@@ -84,8 +85,8 @@
 	 * @generated
 	 */
 	@Override
-	public BPackage getBPackage() {
-		return (BPackage) getEPackage();
+	public EdaptTestBPackage getBPackage() {
+		return (EdaptTestBPackage) getEPackage();
 	}
 
 	/**
@@ -96,8 +97,8 @@
 	 * @generated
 	 */
 	@Deprecated
-	public static BPackage getPackage() {
-		return BPackage.eINSTANCE;
+	public static EdaptTestBPackage getPackage() {
+		return EdaptTestBPackage.eINSTANCE;
 	}
 
-} // BFactoryImpl
+} // EdaptTestBFactoryImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/BImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBImpl.java
similarity index 66%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/BImpl.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBImpl.java
index c4ff388..3a3556b 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/BImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBImpl.java
@@ -7,10 +7,10 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.A;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.B;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.C;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestA;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,14 +19,14 @@
  * <p>
  * The following features are implemented:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BImpl#getA <em>A</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BImpl#getC <em>C</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBImpl#getA <em>A</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBImpl#getC <em>C</em>}</li>
  * </ul>
  * </p>
  *
  * @generated
  */
-public class BImpl extends MinimalEObjectImpl.Container implements B {
+public class EdaptTestBImpl extends MinimalEObjectImpl.Container implements EdaptTestB {
 	/**
 	 * The cached value of the '{@link #getA() <em>A</em>}' reference.
 	 * <!-- begin-user-doc -->
@@ -36,7 +36,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected A a;
+	protected EdaptTestA a;
 
 	/**
 	 * The cached value of the '{@link #getC() <em>C</em>}' reference.
@@ -47,7 +47,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected C c;
+	protected EdaptTestC c;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -55,7 +55,7 @@
 	 * 
 	 * @generated
 	 */
-	protected BImpl() {
+	protected EdaptTestBImpl() {
 		super();
 	}
 
@@ -67,7 +67,7 @@
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return BPackage.Literals.B;
+		return EdaptTestBPackage.Literals.B;
 	}
 
 	/**
@@ -77,13 +77,13 @@
 	 * @generated
 	 */
 	@Override
-	public A getA() {
+	public EdaptTestA getA() {
 		if (a != null && a.eIsProxy()) {
 			final InternalEObject oldA = (InternalEObject) a;
-			a = (A) eResolveProxy(oldA);
+			a = (EdaptTestA) eResolveProxy(oldA);
 			if (a != oldA) {
 				if (eNotificationRequired()) {
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BPackage.B__A, oldA, a));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestBPackage.B__A, oldA, a));
 				}
 			}
 		}
@@ -96,7 +96,7 @@
 	 * 
 	 * @generated
 	 */
-	public A basicGetA() {
+	public EdaptTestA basicGetA() {
 		return a;
 	}
 
@@ -107,11 +107,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setA(A newA) {
-		final A oldA = a;
+	public void setA(EdaptTestA newA) {
+		final EdaptTestA oldA = a;
 		a = newA;
 		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, BPackage.B__A, oldA, a));
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestBPackage.B__A, oldA, a));
 		}
 	}
 
@@ -122,13 +122,13 @@
 	 * @generated
 	 */
 	@Override
-	public C getC() {
+	public EdaptTestC getC() {
 		if (c != null && c.eIsProxy()) {
 			final InternalEObject oldC = (InternalEObject) c;
-			c = (C) eResolveProxy(oldC);
+			c = (EdaptTestC) eResolveProxy(oldC);
 			if (c != oldC) {
 				if (eNotificationRequired()) {
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BPackage.B__C, oldC, c));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestBPackage.B__C, oldC, c));
 				}
 			}
 		}
@@ -141,7 +141,7 @@
 	 * 
 	 * @generated
 	 */
-	public C basicGetC() {
+	public EdaptTestC basicGetC() {
 		return c;
 	}
 
@@ -152,11 +152,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setC(C newC) {
-		final C oldC = c;
+	public void setC(EdaptTestC newC) {
+		final EdaptTestC oldC = c;
 		c = newC;
 		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, BPackage.B__C, oldC, c));
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestBPackage.B__C, oldC, c));
 		}
 	}
 
@@ -169,12 +169,12 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-		case BPackage.B__A:
+		case EdaptTestBPackage.B__A:
 			if (resolve) {
 				return getA();
 			}
 			return basicGetA();
-		case BPackage.B__C:
+		case EdaptTestBPackage.B__C:
 			if (resolve) {
 				return getC();
 			}
@@ -192,11 +192,11 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-		case BPackage.B__A:
-			setA((A) newValue);
+		case EdaptTestBPackage.B__A:
+			setA((EdaptTestA) newValue);
 			return;
-		case BPackage.B__C:
-			setC((C) newValue);
+		case EdaptTestBPackage.B__C:
+			setC((EdaptTestC) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -211,11 +211,11 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-		case BPackage.B__A:
-			setA((A) null);
+		case EdaptTestBPackage.B__A:
+			setA((EdaptTestA) null);
 			return;
-		case BPackage.B__C:
-			setC((C) null);
+		case EdaptTestBPackage.B__C:
+			setC((EdaptTestC) null);
 			return;
 		}
 		super.eUnset(featureID);
@@ -230,12 +230,12 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-		case BPackage.B__A:
+		case EdaptTestBPackage.B__A:
 			return a != null;
-		case BPackage.B__C:
+		case EdaptTestBPackage.B__C:
 			return c != null;
 		}
 		return super.eIsSet(featureID);
 	}
 
-} // BImpl
+} // EdaptTestBImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBPackageImpl.java
new file mode 100644
index 0000000..24e214d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBPackageImpl.java
@@ -0,0 +1,283 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestBPackageImpl extends EPackageImpl implements EdaptTestBPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass bEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private EdaptTestBPackageImpl() {
+		super(eNS_URI, EdaptTestBFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link EdaptTestBPackage#eINSTANCE} when that field is accessed. Clients should
+	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static EdaptTestBPackage init() {
+		if (isInited) {
+			return (EdaptTestBPackage) EPackage.Registry.INSTANCE.getEPackage(EdaptTestBPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
+			.get(eNS_URI)
+			: new EdaptTestBPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theBPackage.createPackageContents();
+		theAPackage.createPackageContents();
+		theCPackage.createPackageContents();
+		theDPackage.createPackageContents();
+		theEPackage.createPackageContents();
+		theFPackage.createPackageContents();
+		theWPackage.createPackageContents();
+		theXPackage.createPackageContents();
+		theYPackage.createPackageContents();
+		theZPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theBPackage.initializePackageContents();
+		theAPackage.initializePackageContents();
+		theCPackage.initializePackageContents();
+		theDPackage.initializePackageContents();
+		theEPackage.initializePackageContents();
+		theFPackage.initializePackageContents();
+		theWPackage.initializePackageContents();
+		theXPackage.initializePackageContents();
+		theYPackage.initializePackageContents();
+		theZPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theBPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(EdaptTestBPackage.eNS_URI, theBPackage);
+		return theBPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EClass getB() {
+		return bEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getB_A() {
+		return (EReference) bEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getB_C() {
+		return (EReference) bEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestBFactory getBFactory() {
+		return (EdaptTestBFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		bEClass = createEClass(B);
+		createEReference(bEClass, B__A);
+		createEReference(bEClass, B__C);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		final EdaptTestAPackage theAPackage = (EdaptTestAPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI);
+		final EdaptTestCPackage theCPackage = (EdaptTestCPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(bEClass, EdaptTestB.class, "B", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getB_A(), theAPackage.getA(), null, "a", null, 0, 1, EdaptTestB.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+		initEReference(getB_C(), theCPackage.getC(), null, "c", null, 0, 1, EdaptTestB.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // EdaptTestBPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BAdapterFactory.java
index 424ea33..d6076aa 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BAdapterFactory.java
@@ -6,8 +6,8 @@
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.B;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -15,7 +15,7 @@
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage
  * @generated
  */
 public class BAdapterFactory extends AdapterFactoryImpl {
@@ -26,7 +26,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static BPackage modelPackage;
+	protected static EdaptTestBPackage modelPackage;
 
 	/**
 	 * Creates an instance of the adapter factory.
@@ -37,7 +37,7 @@
 	 */
 	public BAdapterFactory() {
 		if (modelPackage == null) {
-			modelPackage = BPackage.eINSTANCE;
+			modelPackage = EdaptTestBPackage.eINSTANCE;
 		}
 	}
 
@@ -72,7 +72,7 @@
 	protected BSwitch<Adapter> modelSwitch =
 		new BSwitch<Adapter>() {
 			@Override
-			public Adapter caseB(B object) {
+			public Adapter caseB(EdaptTestB object) {
 				return createBAdapter();
 			}
 
@@ -97,7 +97,7 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.B
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB
 	 * <em>B</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -105,7 +105,7 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the new adapter.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.B
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB
 	 * @generated
 	 */
 	public Adapter createBAdapter() {
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BSwitch.java
index eb030c3..615689f 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BSwitch.java
@@ -5,8 +5,8 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.B;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,7 +19,7 @@
  * which is the result of the switch.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage
  * @generated
  */
 public class BSwitch<T> extends Switch<T> {
@@ -30,7 +30,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static BPackage modelPackage;
+	protected static EdaptTestBPackage modelPackage;
 
 	/**
 	 * Creates an instance of the switch.
@@ -41,7 +41,7 @@
 	 */
 	public BSwitch() {
 		if (modelPackage == null) {
-			modelPackage = BPackage.eINSTANCE;
+			modelPackage = EdaptTestBPackage.eINSTANCE;
 		}
 	}
 
@@ -71,8 +71,8 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-		case BPackage.B: {
-			final B b = (B) theEObject;
+		case EdaptTestBPackage.B: {
+			final EdaptTestB b = (EdaptTestB) theEObject;
 			T result = caseB(b);
 			if (result == null) {
 				result = defaultCase(theEObject);
@@ -96,7 +96,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseB(B object) {
+	public T caseB(EdaptTestB object) {
 		return null;
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/C.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestC.java
similarity index 62%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/C.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestC.java
index 6474a46..5673075 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/C.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestC.java
@@ -3,7 +3,7 @@
 package org.eclipse.emf.ecp.view.edapt.util.test.model.c;
 
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.D;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD;
 
 /**
  * <!-- begin-user-doc -->
@@ -13,15 +13,15 @@
  * <p>
  * The following features are supported:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.C#getD <em>D</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC#getD <em>D</em>}</li>
  * </ul>
  * </p>
  *
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage#getC()
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage#getC()
  * @model
  * @generated
  */
-public interface C extends EObject {
+public interface EdaptTestC extends EObject {
 	/**
 	 * Returns the value of the '<em><b>D</b></em>' reference.
 	 * <!-- begin-user-doc -->
@@ -31,15 +31,16 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the value of the '<em>D</em>' reference.
-	 * @see #setD(D)
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage#getC_D()
+	 * @see #setD(EdaptTestD)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage#getC_D()
 	 * @model
 	 * @generated
 	 */
-	D getD();
+	EdaptTestD getD();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.C#getD <em>D</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC#getD <em>D</em>}'
+	 * reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
@@ -47,6 +48,6 @@
 	 * @see #getD()
 	 * @generated
 	 */
-	void setD(D value);
+	void setD(EdaptTestD value);
 
-} // C
+} // EdaptTestC
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/CFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCFactory.java
similarity index 71%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/CFactory.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCFactory.java
index 1570f0d..3f9efe6 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/CFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCFactory.java
@@ -10,10 +10,10 @@
  * It provides a create method for each non-abstract class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage
  * @generated
  */
-public interface CFactory extends EFactory {
+public interface EdaptTestCFactory extends EFactory {
 	/**
 	 * The singleton instance of the factory.
 	 * <!-- begin-user-doc -->
@@ -21,7 +21,7 @@
 	 * 
 	 * @generated
 	 */
-	CFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CFactoryImpl.init();
+	EdaptTestCFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCFactoryImpl.init();
 
 	/**
 	 * Returns a new object of class '<em>C</em>'.
@@ -31,7 +31,7 @@
 	 * @return a new object of class '<em>C</em>'.
 	 * @generated
 	 */
-	C createC();
+	EdaptTestC createC();
 
 	/**
 	 * Returns the package supported by this factory.
@@ -41,6 +41,6 @@
 	 * @return the package supported by this factory.
 	 * @generated
 	 */
-	CPackage getCPackage();
+	EdaptTestCPackage getCPackage();
 
-} // CFactory
+} // EdaptTestCFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/CPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCPackage.java
similarity index 77%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/CPackage.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCPackage.java
index ad09d52..9628462 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/CPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCPackage.java
@@ -19,11 +19,11 @@
  * </ul>
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.CFactory
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCFactory
  * @model kind="package"
  * @generated
  */
-public interface CPackage extends EPackage {
+public interface EdaptTestCPackage extends EPackage {
 	/**
 	 * The package name.
 	 * <!-- begin-user-doc -->
@@ -58,16 +58,16 @@
 	 * 
 	 * @generated
 	 */
-	CPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CPackageImpl.init();
+	EdaptTestCPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl.init();
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CImpl <em>C</em>}'
-	 * class.
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCImpl
+	 * <em>C</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CImpl
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CPackageImpl#getC()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCImpl
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl#getC()
 	 * @generated
 	 */
 	int C = 0;
@@ -103,24 +103,25 @@
 	int C_OPERATION_COUNT = 0;
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.C <em>C</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC <em>C</em>}
+	 * '.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for class '<em>C</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.C
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC
 	 * @generated
 	 */
 	EClass getC();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.C#getD
-	 * <em>D</em>}'.
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC#getD <em>D</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the reference '<em>D</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.C#getD()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC#getD()
 	 * @see #getC()
 	 * @generated
 	 */
@@ -134,7 +135,7 @@
 	 * @return the factory that creates the instances of the model.
 	 * @generated
 	 */
-	CFactory getCFactory();
+	EdaptTestCFactory getCFactory();
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -152,13 +153,13 @@
 	 */
 	interface Literals {
 		/**
-		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CImpl
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCImpl
 		 * <em>C</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * 
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CImpl
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CPackageImpl#getC()
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCImpl
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl#getC()
 		 * @generated
 		 */
 		EClass C = eINSTANCE.getC();
@@ -174,4 +175,4 @@
 
 	}
 
-} // CPackage
+} // EdaptTestCPackage
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/CPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/CPackageImpl.java
deleted file mode 100644
index 76090e0..0000000
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/CPackageImpl.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/**
- */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.APackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EEPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FPackageImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * 
- * @generated
- */
-public class CPackageImpl extends EPackageImpl implements CPackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private EClass cEClass = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private CPackageImpl() {
-		super(eNS_URI, CFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 *
-	 * <p>
-	 * This method is used to initialize {@link CPackage#eINSTANCE} when that field is accessed. Clients should not
-	 * invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static CPackage init() {
-		if (isInited) {
-			return (CPackage) EPackage.Registry.INSTANCE.getEPackage(CPackage.eNS_URI);
-		}
-
-		// Obtain or create and register package
-		final CPackageImpl theCPackage = (CPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new CPackageImpl());
-
-		isInited = true;
-
-		// Obtain or create and register interdependencies
-		final FPackageImpl theFPackage = (FPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(FPackage.eNS_URI) instanceof FPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(FPackage.eNS_URI)
-			: FPackage.eINSTANCE);
-		final EEPackageImpl theEEPackage = (EEPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(EEPackage.eNS_URI) instanceof EEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EEPackage.eNS_URI)
-			: EEPackage.eINSTANCE);
-		final DPackageImpl theDPackage = (DPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(DPackage.eNS_URI) instanceof DPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(DPackage.eNS_URI)
-			: DPackage.eINSTANCE);
-		final BPackageImpl theBPackage = (BPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(BPackage.eNS_URI) instanceof BPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(BPackage.eNS_URI)
-			: BPackage.eINSTANCE);
-		final APackageImpl theAPackage = (APackageImpl) (EPackage.Registry.INSTANCE.getEPackage(APackage.eNS_URI) instanceof APackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(APackage.eNS_URI)
-			: APackage.eINSTANCE);
-
-		// Create package meta-data objects
-		theCPackage.createPackageContents();
-		theFPackage.createPackageContents();
-		theEEPackage.createPackageContents();
-		theDPackage.createPackageContents();
-		theBPackage.createPackageContents();
-		theAPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theCPackage.initializePackageContents();
-		theFPackage.initializePackageContents();
-		theEEPackage.initializePackageContents();
-		theDPackage.initializePackageContents();
-		theBPackage.initializePackageContents();
-		theAPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theCPackage.freeze();
-
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(CPackage.eNS_URI, theCPackage);
-		return theCPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EClass getC() {
-		return cEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EReference getC_D() {
-		return (EReference) cEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public CFactory getCFactory() {
-		return (CFactory) getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package. This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) {
-			return;
-		}
-		isCreated = true;
-
-		// Create classes and their features
-		cEClass = createEClass(C);
-		createEReference(cEClass, C__D);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model. This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) {
-			return;
-		}
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Obtain other dependent packages
-		final DPackage theDPackage = (DPackage) EPackage.Registry.INSTANCE.getEPackage(DPackage.eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-
-		// Initialize classes, features, and operations; add parameters
-		initEClass(cEClass, org.eclipse.emf.ecp.view.edapt.util.test.model.c.C.class, "C", !IS_ABSTRACT, !IS_INTERFACE,
-			IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getC_D(), theDPackage.getD(), null, "d", null, 0, 1,
-			org.eclipse.emf.ecp.view.edapt.util.test.model.c.C.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-			!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} // CPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/CFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCFactoryImpl.java
similarity index 63%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/CFactoryImpl.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCFactoryImpl.java
index 999efa5..6371322 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/CFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCFactoryImpl.java
@@ -7,9 +7,9 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.C;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -18,7 +18,7 @@
  * 
  * @generated
  */
-public class CFactoryImpl extends EFactoryImpl implements CFactory {
+public class EdaptTestCFactoryImpl extends EFactoryImpl implements EdaptTestCFactory {
 	/**
 	 * Creates the default factory implementation.
 	 * <!-- begin-user-doc -->
@@ -26,16 +26,17 @@
 	 * 
 	 * @generated
 	 */
-	public static CFactory init() {
+	public static EdaptTestCFactory init() {
 		try {
-			final CFactory theCFactory = (CFactory) EPackage.Registry.INSTANCE.getEFactory(CPackage.eNS_URI);
+			final EdaptTestCFactory theCFactory = (EdaptTestCFactory) EPackage.Registry.INSTANCE
+				.getEFactory(EdaptTestCPackage.eNS_URI);
 			if (theCFactory != null) {
 				return theCFactory;
 			}
 		} catch (final Exception exception) {
 			EcorePlugin.INSTANCE.log(exception);
 		}
-		return new CFactoryImpl();
+		return new EdaptTestCFactoryImpl();
 	}
 
 	/**
@@ -45,7 +46,7 @@
 	 * 
 	 * @generated
 	 */
-	public CFactoryImpl() {
+	public EdaptTestCFactoryImpl() {
 		super();
 	}
 
@@ -58,7 +59,7 @@
 	@Override
 	public EObject create(EClass eClass) {
 		switch (eClass.getClassifierID()) {
-		case CPackage.C:
+		case EdaptTestCPackage.C:
 			return createC();
 		default:
 			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
@@ -72,8 +73,8 @@
 	 * @generated
 	 */
 	@Override
-	public C createC() {
-		final CImpl c = new CImpl();
+	public EdaptTestC createC() {
+		final EdaptTestCImpl c = new EdaptTestCImpl();
 		return c;
 	}
 
@@ -84,8 +85,8 @@
 	 * @generated
 	 */
 	@Override
-	public CPackage getCPackage() {
-		return (CPackage) getEPackage();
+	public EdaptTestCPackage getCPackage() {
+		return (EdaptTestCPackage) getEPackage();
 	}
 
 	/**
@@ -96,8 +97,8 @@
 	 * @generated
 	 */
 	@Deprecated
-	public static CPackage getPackage() {
-		return CPackage.eINSTANCE;
+	public static EdaptTestCPackage getPackage() {
+		return EdaptTestCPackage.eINSTANCE;
 	}
 
-} // CFactoryImpl
+} // EdaptTestCFactoryImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/CImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCImpl.java
similarity index 71%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/CImpl.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCImpl.java
index 3d3e8cf..8040b92 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/CImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCImpl.java
@@ -7,9 +7,9 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.C;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.D;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD;
 
 /**
  * <!-- begin-user-doc -->
@@ -18,13 +18,13 @@
  * <p>
  * The following features are implemented:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CImpl#getD <em>D</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCImpl#getD <em>D</em>}</li>
  * </ul>
  * </p>
  *
  * @generated
  */
-public class CImpl extends MinimalEObjectImpl.Container implements C {
+public class EdaptTestCImpl extends MinimalEObjectImpl.Container implements EdaptTestC {
 	/**
 	 * The cached value of the '{@link #getD() <em>D</em>}' reference.
 	 * <!-- begin-user-doc -->
@@ -34,7 +34,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected D d;
+	protected EdaptTestD d;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -42,7 +42,7 @@
 	 * 
 	 * @generated
 	 */
-	protected CImpl() {
+	protected EdaptTestCImpl() {
 		super();
 	}
 
@@ -54,7 +54,7 @@
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return CPackage.Literals.C;
+		return EdaptTestCPackage.Literals.C;
 	}
 
 	/**
@@ -64,13 +64,13 @@
 	 * @generated
 	 */
 	@Override
-	public D getD() {
+	public EdaptTestD getD() {
 		if (d != null && d.eIsProxy()) {
 			final InternalEObject oldD = (InternalEObject) d;
-			d = (D) eResolveProxy(oldD);
+			d = (EdaptTestD) eResolveProxy(oldD);
 			if (d != oldD) {
 				if (eNotificationRequired()) {
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CPackage.C__D, oldD, d));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestCPackage.C__D, oldD, d));
 				}
 			}
 		}
@@ -83,7 +83,7 @@
 	 * 
 	 * @generated
 	 */
-	public D basicGetD() {
+	public EdaptTestD basicGetD() {
 		return d;
 	}
 
@@ -94,11 +94,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setD(D newD) {
-		final D oldD = d;
+	public void setD(EdaptTestD newD) {
+		final EdaptTestD oldD = d;
 		d = newD;
 		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, CPackage.C__D, oldD, d));
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestCPackage.C__D, oldD, d));
 		}
 	}
 
@@ -111,7 +111,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-		case CPackage.C__D:
+		case EdaptTestCPackage.C__D:
 			if (resolve) {
 				return getD();
 			}
@@ -129,8 +129,8 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-		case CPackage.C__D:
-			setD((D) newValue);
+		case EdaptTestCPackage.C__D:
+			setD((EdaptTestD) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -145,8 +145,8 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-		case CPackage.C__D:
-			setD((D) null);
+		case EdaptTestCPackage.C__D:
+			setD((EdaptTestD) null);
 			return;
 		}
 		super.eUnset(featureID);
@@ -161,10 +161,10 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-		case CPackage.C__D:
+		case EdaptTestCPackage.C__D:
 			return d != null;
 		}
 		return super.eIsSet(featureID);
 	}
 
-} // CImpl
+} // EdaptTestCImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCPackageImpl.java
new file mode 100644
index 0000000..40b3260
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCPackageImpl.java
@@ -0,0 +1,266 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestCPackageImpl extends EPackageImpl implements EdaptTestCPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass cEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private EdaptTestCPackageImpl() {
+		super(eNS_URI, EdaptTestCFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link EdaptTestCPackage#eINSTANCE} when that field is accessed. Clients should
+	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static EdaptTestCPackage init() {
+		if (isInited) {
+			return (EdaptTestCPackage) EPackage.Registry.INSTANCE.getEPackage(EdaptTestCPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
+			.get(eNS_URI)
+			: new EdaptTestCPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theCPackage.createPackageContents();
+		theAPackage.createPackageContents();
+		theBPackage.createPackageContents();
+		theDPackage.createPackageContents();
+		theEPackage.createPackageContents();
+		theFPackage.createPackageContents();
+		theWPackage.createPackageContents();
+		theXPackage.createPackageContents();
+		theYPackage.createPackageContents();
+		theZPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theCPackage.initializePackageContents();
+		theAPackage.initializePackageContents();
+		theBPackage.initializePackageContents();
+		theDPackage.initializePackageContents();
+		theEPackage.initializePackageContents();
+		theFPackage.initializePackageContents();
+		theWPackage.initializePackageContents();
+		theXPackage.initializePackageContents();
+		theYPackage.initializePackageContents();
+		theZPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theCPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(EdaptTestCPackage.eNS_URI, theCPackage);
+		return theCPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EClass getC() {
+		return cEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getC_D() {
+		return (EReference) cEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestCFactory getCFactory() {
+		return (EdaptTestCFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		cEClass = createEClass(C);
+		createEReference(cEClass, C__D);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		final EdaptTestDPackage theDPackage = (EdaptTestDPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(cEClass, EdaptTestC.class, "C", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getC_D(), theDPackage.getD(), null, "d", null, 0, 1, EdaptTestC.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // EdaptTestCPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CAdapterFactory.java
index c2a2a0d..f57ef12 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CAdapterFactory.java
@@ -6,8 +6,8 @@
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.C;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -15,7 +15,7 @@
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage
  * @generated
  */
 public class CAdapterFactory extends AdapterFactoryImpl {
@@ -26,7 +26,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static CPackage modelPackage;
+	protected static EdaptTestCPackage modelPackage;
 
 	/**
 	 * Creates an instance of the adapter factory.
@@ -37,7 +37,7 @@
 	 */
 	public CAdapterFactory() {
 		if (modelPackage == null) {
-			modelPackage = CPackage.eINSTANCE;
+			modelPackage = EdaptTestCPackage.eINSTANCE;
 		}
 	}
 
@@ -72,7 +72,7 @@
 	protected CSwitch<Adapter> modelSwitch =
 		new CSwitch<Adapter>() {
 			@Override
-			public Adapter caseC(C object) {
+			public Adapter caseC(EdaptTestC object) {
 				return createCAdapter();
 			}
 
@@ -97,7 +97,7 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.C
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC
 	 * <em>C</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -105,7 +105,7 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the new adapter.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.C
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC
 	 * @generated
 	 */
 	public Adapter createCAdapter() {
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CSwitch.java
index 5294e93..a606cbf 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CSwitch.java
@@ -5,8 +5,8 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.C;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,7 +19,7 @@
  * which is the result of the switch.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage
  * @generated
  */
 public class CSwitch<T> extends Switch<T> {
@@ -30,7 +30,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static CPackage modelPackage;
+	protected static EdaptTestCPackage modelPackage;
 
 	/**
 	 * Creates an instance of the switch.
@@ -41,7 +41,7 @@
 	 */
 	public CSwitch() {
 		if (modelPackage == null) {
-			modelPackage = CPackage.eINSTANCE;
+			modelPackage = EdaptTestCPackage.eINSTANCE;
 		}
 	}
 
@@ -71,8 +71,8 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-		case CPackage.C: {
-			final C c = (C) theEObject;
+		case EdaptTestCPackage.C: {
+			final EdaptTestC c = (EdaptTestC) theEObject;
 			T result = caseC(c);
 			if (result == null) {
 				result = defaultCase(theEObject);
@@ -96,7 +96,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseC(C object) {
+	public T caseC(EdaptTestC object) {
 		return null;
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/D.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestD.java
similarity index 62%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/D.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestD.java
index 92c6260..e345083 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/D.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestD.java
@@ -3,7 +3,7 @@
 package org.eclipse.emf.ecp.view.edapt.util.test.model.d;
 
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.B;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB;
 
 /**
  * <!-- begin-user-doc -->
@@ -13,15 +13,15 @@
  * <p>
  * The following features are supported:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.D#getB <em>B</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD#getB <em>B</em>}</li>
  * </ul>
  * </p>
  *
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage#getD()
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage#getD()
  * @model
  * @generated
  */
-public interface D extends EObject {
+public interface EdaptTestD extends EObject {
 	/**
 	 * Returns the value of the '<em><b>B</b></em>' reference.
 	 * <!-- begin-user-doc -->
@@ -31,15 +31,16 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the value of the '<em>B</em>' reference.
-	 * @see #setB(B)
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage#getD_B()
+	 * @see #setB(EdaptTestB)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage#getD_B()
 	 * @model
 	 * @generated
 	 */
-	B getB();
+	EdaptTestB getB();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.D#getB <em>B</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD#getB <em>B</em>}'
+	 * reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
@@ -47,6 +48,6 @@
 	 * @see #getB()
 	 * @generated
 	 */
-	void setB(B value);
+	void setB(EdaptTestB value);
 
-} // D
+} // EdaptTestD
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/DFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDFactory.java
similarity index 71%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/DFactory.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDFactory.java
index 83b0490..07d9a98 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/DFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDFactory.java
@@ -10,10 +10,10 @@
  * It provides a create method for each non-abstract class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage
  * @generated
  */
-public interface DFactory extends EFactory {
+public interface EdaptTestDFactory extends EFactory {
 	/**
 	 * The singleton instance of the factory.
 	 * <!-- begin-user-doc -->
@@ -21,7 +21,7 @@
 	 * 
 	 * @generated
 	 */
-	DFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DFactoryImpl.init();
+	EdaptTestDFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDFactoryImpl.init();
 
 	/**
 	 * Returns a new object of class '<em>D</em>'.
@@ -31,7 +31,7 @@
 	 * @return a new object of class '<em>D</em>'.
 	 * @generated
 	 */
-	D createD();
+	EdaptTestD createD();
 
 	/**
 	 * Returns the package supported by this factory.
@@ -41,6 +41,6 @@
 	 * @return the package supported by this factory.
 	 * @generated
 	 */
-	DPackage getDPackage();
+	EdaptTestDPackage getDPackage();
 
-} // DFactory
+} // EdaptTestDFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/DPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDPackage.java
similarity index 77%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/DPackage.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDPackage.java
index 93003e5..0b864ff 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/DPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDPackage.java
@@ -19,11 +19,11 @@
  * </ul>
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.DFactory
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDFactory
  * @model kind="package"
  * @generated
  */
-public interface DPackage extends EPackage {
+public interface EdaptTestDPackage extends EPackage {
 	/**
 	 * The package name.
 	 * <!-- begin-user-doc -->
@@ -58,16 +58,16 @@
 	 * 
 	 * @generated
 	 */
-	DPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DPackageImpl.init();
+	EdaptTestDPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl.init();
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DImpl <em>D</em>}'
-	 * class.
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDImpl
+	 * <em>D</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DImpl
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DPackageImpl#getD()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDImpl
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl#getD()
 	 * @generated
 	 */
 	int D = 0;
@@ -103,24 +103,25 @@
 	int D_OPERATION_COUNT = 0;
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.D <em>D</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD <em>D</em>}
+	 * '.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for class '<em>D</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.D
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD
 	 * @generated
 	 */
 	EClass getD();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.D#getB
-	 * <em>B</em>}'.
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD#getB <em>B</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the reference '<em>B</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.D#getB()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD#getB()
 	 * @see #getD()
 	 * @generated
 	 */
@@ -134,7 +135,7 @@
 	 * @return the factory that creates the instances of the model.
 	 * @generated
 	 */
-	DFactory getDFactory();
+	EdaptTestDFactory getDFactory();
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -152,13 +153,13 @@
 	 */
 	interface Literals {
 		/**
-		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DImpl
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDImpl
 		 * <em>D</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * 
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DImpl
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DPackageImpl#getD()
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDImpl
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl#getD()
 		 * @generated
 		 */
 		EClass D = eINSTANCE.getD();
@@ -174,4 +175,4 @@
 
 	}
 
-} // DPackage
+} // EdaptTestDPackage
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/DPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/DPackageImpl.java
deleted file mode 100644
index 3e8d8e3..0000000
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/DPackageImpl.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/**
- */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.APackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EEPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FPackageImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * 
- * @generated
- */
-public class DPackageImpl extends EPackageImpl implements DPackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private EClass dEClass = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private DPackageImpl() {
-		super(eNS_URI, DFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 *
-	 * <p>
-	 * This method is used to initialize {@link DPackage#eINSTANCE} when that field is accessed. Clients should not
-	 * invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static DPackage init() {
-		if (isInited) {
-			return (DPackage) EPackage.Registry.INSTANCE.getEPackage(DPackage.eNS_URI);
-		}
-
-		// Obtain or create and register package
-		final DPackageImpl theDPackage = (DPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof DPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new DPackageImpl());
-
-		isInited = true;
-
-		// Obtain or create and register interdependencies
-		final FPackageImpl theFPackage = (FPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(FPackage.eNS_URI) instanceof FPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(FPackage.eNS_URI)
-			: FPackage.eINSTANCE);
-		final EEPackageImpl theEEPackage = (EEPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(EEPackage.eNS_URI) instanceof EEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EEPackage.eNS_URI)
-			: EEPackage.eINSTANCE);
-		final BPackageImpl theBPackage = (BPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(BPackage.eNS_URI) instanceof BPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(BPackage.eNS_URI)
-			: BPackage.eINSTANCE);
-		final APackageImpl theAPackage = (APackageImpl) (EPackage.Registry.INSTANCE.getEPackage(APackage.eNS_URI) instanceof APackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(APackage.eNS_URI)
-			: APackage.eINSTANCE);
-		final CPackageImpl theCPackage = (CPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(CPackage.eNS_URI) instanceof CPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(CPackage.eNS_URI)
-			: CPackage.eINSTANCE);
-
-		// Create package meta-data objects
-		theDPackage.createPackageContents();
-		theFPackage.createPackageContents();
-		theEEPackage.createPackageContents();
-		theBPackage.createPackageContents();
-		theAPackage.createPackageContents();
-		theCPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theDPackage.initializePackageContents();
-		theFPackage.initializePackageContents();
-		theEEPackage.initializePackageContents();
-		theBPackage.initializePackageContents();
-		theAPackage.initializePackageContents();
-		theCPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theDPackage.freeze();
-
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(DPackage.eNS_URI, theDPackage);
-		return theDPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EClass getD() {
-		return dEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EReference getD_B() {
-		return (EReference) dEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public DFactory getDFactory() {
-		return (DFactory) getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package. This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) {
-			return;
-		}
-		isCreated = true;
-
-		// Create classes and their features
-		dEClass = createEClass(D);
-		createEReference(dEClass, D__B);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model. This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) {
-			return;
-		}
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Obtain other dependent packages
-		final BPackage theBPackage = (BPackage) EPackage.Registry.INSTANCE.getEPackage(BPackage.eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-
-		// Initialize classes, features, and operations; add parameters
-		initEClass(dEClass, org.eclipse.emf.ecp.view.edapt.util.test.model.d.D.class, "D", !IS_ABSTRACT, !IS_INTERFACE,
-			IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getD_B(), theBPackage.getB(), null, "b", null, 0, 1,
-			org.eclipse.emf.ecp.view.edapt.util.test.model.d.D.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-			!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} // DPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/DFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDFactoryImpl.java
similarity index 63%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/DFactoryImpl.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDFactoryImpl.java
index 37d4bb9..3dd44b3 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/DFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDFactoryImpl.java
@@ -7,9 +7,9 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.D;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -18,7 +18,7 @@
  * 
  * @generated
  */
-public class DFactoryImpl extends EFactoryImpl implements DFactory {
+public class EdaptTestDFactoryImpl extends EFactoryImpl implements EdaptTestDFactory {
 	/**
 	 * Creates the default factory implementation.
 	 * <!-- begin-user-doc -->
@@ -26,16 +26,17 @@
 	 * 
 	 * @generated
 	 */
-	public static DFactory init() {
+	public static EdaptTestDFactory init() {
 		try {
-			final DFactory theDFactory = (DFactory) EPackage.Registry.INSTANCE.getEFactory(DPackage.eNS_URI);
+			final EdaptTestDFactory theDFactory = (EdaptTestDFactory) EPackage.Registry.INSTANCE
+				.getEFactory(EdaptTestDPackage.eNS_URI);
 			if (theDFactory != null) {
 				return theDFactory;
 			}
 		} catch (final Exception exception) {
 			EcorePlugin.INSTANCE.log(exception);
 		}
-		return new DFactoryImpl();
+		return new EdaptTestDFactoryImpl();
 	}
 
 	/**
@@ -45,7 +46,7 @@
 	 * 
 	 * @generated
 	 */
-	public DFactoryImpl() {
+	public EdaptTestDFactoryImpl() {
 		super();
 	}
 
@@ -58,7 +59,7 @@
 	@Override
 	public EObject create(EClass eClass) {
 		switch (eClass.getClassifierID()) {
-		case DPackage.D:
+		case EdaptTestDPackage.D:
 			return createD();
 		default:
 			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
@@ -72,8 +73,8 @@
 	 * @generated
 	 */
 	@Override
-	public D createD() {
-		final DImpl d = new DImpl();
+	public EdaptTestD createD() {
+		final EdaptTestDImpl d = new EdaptTestDImpl();
 		return d;
 	}
 
@@ -84,8 +85,8 @@
 	 * @generated
 	 */
 	@Override
-	public DPackage getDPackage() {
-		return (DPackage) getEPackage();
+	public EdaptTestDPackage getDPackage() {
+		return (EdaptTestDPackage) getEPackage();
 	}
 
 	/**
@@ -96,8 +97,8 @@
 	 * @generated
 	 */
 	@Deprecated
-	public static DPackage getPackage() {
-		return DPackage.eINSTANCE;
+	public static EdaptTestDPackage getPackage() {
+		return EdaptTestDPackage.eINSTANCE;
 	}
 
-} // DFactoryImpl
+} // EdaptTestDFactoryImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/DImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDImpl.java
similarity index 71%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/DImpl.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDImpl.java
index 090e4b9..6ec04cd 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/DImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDImpl.java
@@ -7,9 +7,9 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.B;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.D;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -18,13 +18,13 @@
  * <p>
  * The following features are implemented:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DImpl#getB <em>B</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDImpl#getB <em>B</em>}</li>
  * </ul>
  * </p>
  *
  * @generated
  */
-public class DImpl extends MinimalEObjectImpl.Container implements D {
+public class EdaptTestDImpl extends MinimalEObjectImpl.Container implements EdaptTestD {
 	/**
 	 * The cached value of the '{@link #getB() <em>B</em>}' reference.
 	 * <!-- begin-user-doc -->
@@ -34,7 +34,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected B b;
+	protected EdaptTestB b;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -42,7 +42,7 @@
 	 * 
 	 * @generated
 	 */
-	protected DImpl() {
+	protected EdaptTestDImpl() {
 		super();
 	}
 
@@ -54,7 +54,7 @@
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return DPackage.Literals.D;
+		return EdaptTestDPackage.Literals.D;
 	}
 
 	/**
@@ -64,13 +64,13 @@
 	 * @generated
 	 */
 	@Override
-	public B getB() {
+	public EdaptTestB getB() {
 		if (b != null && b.eIsProxy()) {
 			final InternalEObject oldB = (InternalEObject) b;
-			b = (B) eResolveProxy(oldB);
+			b = (EdaptTestB) eResolveProxy(oldB);
 			if (b != oldB) {
 				if (eNotificationRequired()) {
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DPackage.D__B, oldB, b));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestDPackage.D__B, oldB, b));
 				}
 			}
 		}
@@ -83,7 +83,7 @@
 	 * 
 	 * @generated
 	 */
-	public B basicGetB() {
+	public EdaptTestB basicGetB() {
 		return b;
 	}
 
@@ -94,11 +94,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setB(B newB) {
-		final B oldB = b;
+	public void setB(EdaptTestB newB) {
+		final EdaptTestB oldB = b;
 		b = newB;
 		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, DPackage.D__B, oldB, b));
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestDPackage.D__B, oldB, b));
 		}
 	}
 
@@ -111,7 +111,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-		case DPackage.D__B:
+		case EdaptTestDPackage.D__B:
 			if (resolve) {
 				return getB();
 			}
@@ -129,8 +129,8 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-		case DPackage.D__B:
-			setB((B) newValue);
+		case EdaptTestDPackage.D__B:
+			setB((EdaptTestB) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -145,8 +145,8 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-		case DPackage.D__B:
-			setB((B) null);
+		case EdaptTestDPackage.D__B:
+			setB((EdaptTestB) null);
 			return;
 		}
 		super.eUnset(featureID);
@@ -161,10 +161,10 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-		case DPackage.D__B:
+		case EdaptTestDPackage.D__B:
 			return b != null;
 		}
 		return super.eIsSet(featureID);
 	}
 
-} // DImpl
+} // EdaptTestDImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDPackageImpl.java
new file mode 100644
index 0000000..0a2bf52
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDPackageImpl.java
@@ -0,0 +1,266 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestDPackageImpl extends EPackageImpl implements EdaptTestDPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass dEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private EdaptTestDPackageImpl() {
+		super(eNS_URI, EdaptTestDFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link EdaptTestDPackage#eINSTANCE} when that field is accessed. Clients should
+	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static EdaptTestDPackage init() {
+		if (isInited) {
+			return (EdaptTestDPackage) EPackage.Registry.INSTANCE.getEPackage(EdaptTestDPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
+			.get(eNS_URI)
+			: new EdaptTestDPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theDPackage.createPackageContents();
+		theAPackage.createPackageContents();
+		theBPackage.createPackageContents();
+		theCPackage.createPackageContents();
+		theEPackage.createPackageContents();
+		theFPackage.createPackageContents();
+		theWPackage.createPackageContents();
+		theXPackage.createPackageContents();
+		theYPackage.createPackageContents();
+		theZPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theDPackage.initializePackageContents();
+		theAPackage.initializePackageContents();
+		theBPackage.initializePackageContents();
+		theCPackage.initializePackageContents();
+		theEPackage.initializePackageContents();
+		theFPackage.initializePackageContents();
+		theWPackage.initializePackageContents();
+		theXPackage.initializePackageContents();
+		theYPackage.initializePackageContents();
+		theZPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theDPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(EdaptTestDPackage.eNS_URI, theDPackage);
+		return theDPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EClass getD() {
+		return dEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getD_B() {
+		return (EReference) dEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestDFactory getDFactory() {
+		return (EdaptTestDFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		dEClass = createEClass(D);
+		createEReference(dEClass, D__B);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		final EdaptTestBPackage theBPackage = (EdaptTestBPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(dEClass, EdaptTestD.class, "D", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getD_B(), theBPackage.getB(), null, "b", null, 0, 1, EdaptTestD.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // EdaptTestDPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DAdapterFactory.java
index 5b744f8..dfaa4ba 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DAdapterFactory.java
@@ -6,8 +6,8 @@
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.D;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -15,7 +15,7 @@
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage
  * @generated
  */
 public class DAdapterFactory extends AdapterFactoryImpl {
@@ -26,7 +26,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static DPackage modelPackage;
+	protected static EdaptTestDPackage modelPackage;
 
 	/**
 	 * Creates an instance of the adapter factory.
@@ -37,7 +37,7 @@
 	 */
 	public DAdapterFactory() {
 		if (modelPackage == null) {
-			modelPackage = DPackage.eINSTANCE;
+			modelPackage = EdaptTestDPackage.eINSTANCE;
 		}
 	}
 
@@ -72,7 +72,7 @@
 	protected DSwitch<Adapter> modelSwitch =
 		new DSwitch<Adapter>() {
 			@Override
-			public Adapter caseD(D object) {
+			public Adapter caseD(EdaptTestD object) {
 				return createDAdapter();
 			}
 
@@ -97,7 +97,7 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.D
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD
 	 * <em>D</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -105,7 +105,7 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the new adapter.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.D
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD
 	 * @generated
 	 */
 	public Adapter createDAdapter() {
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DSwitch.java
index ffcd73a..dccc119 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DSwitch.java
@@ -5,8 +5,8 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.D;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,7 +19,7 @@
  * which is the result of the switch.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage
  * @generated
  */
 public class DSwitch<T> extends Switch<T> {
@@ -30,7 +30,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static DPackage modelPackage;
+	protected static EdaptTestDPackage modelPackage;
 
 	/**
 	 * Creates an instance of the switch.
@@ -41,7 +41,7 @@
 	 */
 	public DSwitch() {
 		if (modelPackage == null) {
-			modelPackage = DPackage.eINSTANCE;
+			modelPackage = EdaptTestDPackage.eINSTANCE;
 		}
 	}
 
@@ -71,8 +71,8 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-		case DPackage.D: {
-			final D d = (D) theEObject;
+		case EdaptTestDPackage.D: {
+			final EdaptTestD d = (EdaptTestD) theEObject;
 			T result = caseD(d);
 			if (result == null) {
 				result = defaultCase(theEObject);
@@ -96,7 +96,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseD(D object) {
+	public T caseD(EdaptTestD object) {
 		return null;
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/E.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestE.java
similarity index 66%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/E.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestE.java
index 0288ebd..d636e4c 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/E.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestE.java
@@ -3,8 +3,8 @@
 package org.eclipse.emf.ecp.view.edapt.util.test.model.e;
 
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.D;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.F;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF;
 
 /**
  * <!-- begin-user-doc -->
@@ -14,16 +14,16 @@
  * <p>
  * The following features are supported:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E#getD <em>D</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E#getF <em>F</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE#getD <em>D</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE#getF <em>F</em>}</li>
  * </ul>
  * </p>
  *
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage#getE()
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage#getE()
  * @model
  * @generated
  */
-public interface E extends EObject {
+public interface EdaptTestE extends EObject {
 	/**
 	 * Returns the value of the '<em><b>D</b></em>' reference.
 	 * <!-- begin-user-doc -->
@@ -33,15 +33,16 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the value of the '<em>D</em>' reference.
-	 * @see #setD(D)
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage#getE_D()
+	 * @see #setD(EdaptTestD)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage#getE_D()
 	 * @model
 	 * @generated
 	 */
-	D getD();
+	EdaptTestD getD();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E#getD <em>D</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE#getD <em>D</em>}'
+	 * reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
@@ -49,7 +50,7 @@
 	 * @see #getD()
 	 * @generated
 	 */
-	void setD(D value);
+	void setD(EdaptTestD value);
 
 	/**
 	 * Returns the value of the '<em><b>F</b></em>' reference.
@@ -60,15 +61,16 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the value of the '<em>F</em>' reference.
-	 * @see #setF(F)
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage#getE_F()
+	 * @see #setF(EdaptTestF)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage#getE_F()
 	 * @model
 	 * @generated
 	 */
-	F getF();
+	EdaptTestF getF();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E#getF <em>F</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE#getF <em>F</em>}'
+	 * reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
@@ -76,6 +78,6 @@
 	 * @see #getF()
 	 * @generated
 	 */
-	void setF(F value);
+	void setF(EdaptTestF value);
 
-} // E
+} // EdaptTestE
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EEFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEFactory.java
similarity index 70%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EEFactory.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEFactory.java
index ba2edde..469c06b 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EEFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEFactory.java
@@ -10,10 +10,10 @@
  * It provides a create method for each non-abstract class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage
  * @generated
  */
-public interface EEFactory extends EFactory {
+public interface EdaptTestEFactory extends EFactory {
 	/**
 	 * The singleton instance of the factory.
 	 * <!-- begin-user-doc -->
@@ -21,7 +21,7 @@
 	 * 
 	 * @generated
 	 */
-	EEFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EEFactoryImpl.init();
+	EdaptTestEFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEFactoryImpl.init();
 
 	/**
 	 * Returns a new object of class '<em>E</em>'.
@@ -31,7 +31,7 @@
 	 * @return a new object of class '<em>E</em>'.
 	 * @generated
 	 */
-	E createE();
+	EdaptTestE createE();
 
 	/**
 	 * Returns the package supported by this factory.
@@ -41,6 +41,7 @@
 	 * @return the package supported by this factory.
 	 * @generated
 	 */
-	EEPackage getEEPackage();
+	@Override
+	EdaptTestEPackage getEPackage();
 
-} // EEFactory
+} // EdaptTestEFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EEPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEPackage.java
similarity index 79%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EEPackage.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEPackage.java
index ac0998c..771b97f 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EEPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEPackage.java
@@ -19,11 +19,11 @@
  * </ul>
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEFactory
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEFactory
  * @model kind="package"
  * @generated
  */
-public interface EEPackage extends EPackage {
+public interface EdaptTestEPackage extends EPackage {
 	/**
 	 * The package name.
 	 * <!-- begin-user-doc -->
@@ -58,16 +58,16 @@
 	 * 
 	 * @generated
 	 */
-	EEPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EEPackageImpl.init();
+	EdaptTestEPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl.init();
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EImpl <em>E</em>}'
-	 * class.
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEImpl
+	 * <em>E</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EImpl
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EEPackageImpl#getE()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEImpl
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl#getE()
 	 * @generated
 	 */
 	int E = 0;
@@ -113,37 +113,38 @@
 	int E_OPERATION_COUNT = 0;
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E <em>E</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE <em>E</em>}
+	 * '.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for class '<em>E</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.E
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE
 	 * @generated
 	 */
 	EClass getE();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E#getD
-	 * <em>D</em>}'.
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE#getD <em>D</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the reference '<em>D</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.E#getD()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE#getD()
 	 * @see #getE()
 	 * @generated
 	 */
 	EReference getE_D();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E#getF
-	 * <em>F</em>}'.
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE#getF <em>F</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the reference '<em>F</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.E#getF()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE#getF()
 	 * @see #getE()
 	 * @generated
 	 */
@@ -157,7 +158,7 @@
 	 * @return the factory that creates the instances of the model.
 	 * @generated
 	 */
-	EEFactory getEEFactory();
+	EdaptTestEFactory getEFactory();
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -175,13 +176,13 @@
 	 */
 	interface Literals {
 		/**
-		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EImpl
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEImpl
 		 * <em>E</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * 
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EImpl
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EEPackageImpl#getE()
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEImpl
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl#getE()
 		 * @generated
 		 */
 		EClass E = eINSTANCE.getE();
@@ -206,4 +207,4 @@
 
 	}
 
-} // EEPackage
+} // EdaptTestEPackage
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EEFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EEFactoryImpl.java
deleted file mode 100644
index 8758ee1..0000000
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EEFactoryImpl.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * 
- * @generated
- */
-public class EEFactoryImpl extends EFactoryImpl implements EEFactory {
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public static EEFactory init() {
-		try {
-			final EEFactory theEEFactory = (EEFactory) EPackage.Registry.INSTANCE.getEFactory(EEPackage.eNS_URI);
-			if (theEEFactory != null) {
-				return theEEFactory;
-			}
-		} catch (final Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new EEFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EEFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-		case EEPackage.E:
-			return createE();
-		default:
-			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public E createE() {
-		final EImpl e = new EImpl();
-		return e;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EEPackage getEEPackage() {
-		return (EEPackage) getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static EEPackage getPackage() {
-		return EEPackage.eINSTANCE;
-	}
-
-} // EEFactoryImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EEPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EEPackageImpl.java
deleted file mode 100644
index 0d07c10..0000000
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EEPackageImpl.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.APackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FPackageImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * 
- * @generated
- */
-public class EEPackageImpl extends EPackageImpl implements EEPackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private EClass eEClass = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private EEPackageImpl() {
-		super(eNS_URI, EEFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 *
-	 * <p>
-	 * This method is used to initialize {@link EEPackage#eINSTANCE} when that field is accessed. Clients should not
-	 * invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static EEPackage init() {
-		if (isInited) {
-			return (EEPackage) EPackage.Registry.INSTANCE.getEPackage(EEPackage.eNS_URI);
-		}
-
-		// Obtain or create and register package
-		final EEPackageImpl theEEPackage = (EEPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EEPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new EEPackageImpl());
-
-		isInited = true;
-
-		// Obtain or create and register interdependencies
-		final FPackageImpl theFPackage = (FPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(FPackage.eNS_URI) instanceof FPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(FPackage.eNS_URI)
-			: FPackage.eINSTANCE);
-		final DPackageImpl theDPackage = (DPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(DPackage.eNS_URI) instanceof DPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(DPackage.eNS_URI)
-			: DPackage.eINSTANCE);
-		final BPackageImpl theBPackage = (BPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(BPackage.eNS_URI) instanceof BPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(BPackage.eNS_URI)
-			: BPackage.eINSTANCE);
-		final APackageImpl theAPackage = (APackageImpl) (EPackage.Registry.INSTANCE.getEPackage(APackage.eNS_URI) instanceof APackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(APackage.eNS_URI)
-			: APackage.eINSTANCE);
-		final CPackageImpl theCPackage = (CPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(CPackage.eNS_URI) instanceof CPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(CPackage.eNS_URI)
-			: CPackage.eINSTANCE);
-
-		// Create package meta-data objects
-		theEEPackage.createPackageContents();
-		theFPackage.createPackageContents();
-		theDPackage.createPackageContents();
-		theBPackage.createPackageContents();
-		theAPackage.createPackageContents();
-		theCPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theEEPackage.initializePackageContents();
-		theFPackage.initializePackageContents();
-		theDPackage.initializePackageContents();
-		theBPackage.initializePackageContents();
-		theAPackage.initializePackageContents();
-		theCPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theEEPackage.freeze();
-
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(EEPackage.eNS_URI, theEEPackage);
-		return theEEPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EClass getE() {
-		return eEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EReference getE_D() {
-		return (EReference) eEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EReference getE_F() {
-		return (EReference) eEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EEFactory getEEFactory() {
-		return (EEFactory) getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package. This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) {
-			return;
-		}
-		isCreated = true;
-
-		// Create classes and their features
-		eEClass = createEClass(E);
-		createEReference(eEClass, E__D);
-		createEReference(eEClass, E__F);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model. This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) {
-			return;
-		}
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Obtain other dependent packages
-		final DPackage theDPackage = (DPackage) EPackage.Registry.INSTANCE.getEPackage(DPackage.eNS_URI);
-		final FPackage theFPackage = (FPackage) EPackage.Registry.INSTANCE.getEPackage(FPackage.eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-
-		// Initialize classes, features, and operations; add parameters
-		initEClass(eEClass, org.eclipse.emf.ecp.view.edapt.util.test.model.e.E.class, "E", !IS_ABSTRACT, !IS_INTERFACE,
-			IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getE_D(), theDPackage.getD(), null, "d", null, 0, 1,
-			org.eclipse.emf.ecp.view.edapt.util.test.model.e.E.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-			!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getE_F(), theFPackage.getF(), null, "f", null, 0, 1,
-			org.eclipse.emf.ecp.view.edapt.util.test.model.e.E.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-			!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} // EEPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEFactoryImpl.java
new file mode 100644
index 0000000..575d7da
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEFactoryImpl.java
@@ -0,0 +1,104 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class EdaptTestEFactoryImpl extends EFactoryImpl implements EdaptTestEFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static EdaptTestEFactory init() {
+		try {
+			final EdaptTestEFactory theEFactory = (EdaptTestEFactory) EPackage.Registry.INSTANCE
+				.getEFactory(EdaptTestEPackage.eNS_URI);
+			if (theEFactory != null) {
+				return theEFactory;
+			}
+		} catch (final Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new EdaptTestEFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EdaptTestEFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case EdaptTestEPackage.E:
+			return createE();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EdaptTestE createE() {
+		final EdaptTestEImpl e = new EdaptTestEImpl();
+		return e;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated NOT
+	 */
+	@Override
+	public EdaptTestEPackage getEPackage() {
+		return (EdaptTestEPackage) super.getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static EdaptTestEPackage getPackage() {
+		return EdaptTestEPackage.eINSTANCE;
+	}
+
+} // EdaptTestEFactoryImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEImpl.java
similarity index 69%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EImpl.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEImpl.java
index 611d1ea..6dbb944 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEImpl.java
@@ -7,10 +7,10 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.D;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.F;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,14 +19,14 @@
  * <p>
  * The following features are implemented:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EImpl#getD <em>D</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EImpl#getF <em>F</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEImpl#getD <em>D</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEImpl#getF <em>F</em>}</li>
  * </ul>
  * </p>
  *
  * @generated
  */
-public class EImpl extends MinimalEObjectImpl.Container implements E {
+public class EdaptTestEImpl extends MinimalEObjectImpl.Container implements EdaptTestE {
 	/**
 	 * The cached value of the '{@link #getD() <em>D</em>}' reference.
 	 * <!-- begin-user-doc -->
@@ -36,7 +36,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected D d;
+	protected EdaptTestD d;
 
 	/**
 	 * The cached value of the '{@link #getF() <em>F</em>}' reference.
@@ -47,7 +47,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected F f;
+	protected EdaptTestF f;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -55,7 +55,7 @@
 	 * 
 	 * @generated
 	 */
-	protected EImpl() {
+	protected EdaptTestEImpl() {
 		super();
 	}
 
@@ -67,7 +67,7 @@
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return EEPackage.Literals.E;
+		return EdaptTestEPackage.Literals.E;
 	}
 
 	/**
@@ -77,13 +77,13 @@
 	 * @generated
 	 */
 	@Override
-	public D getD() {
+	public EdaptTestD getD() {
 		if (d != null && d.eIsProxy()) {
 			final InternalEObject oldD = (InternalEObject) d;
-			d = (D) eResolveProxy(oldD);
+			d = (EdaptTestD) eResolveProxy(oldD);
 			if (d != oldD) {
 				if (eNotificationRequired()) {
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EEPackage.E__D, oldD, d));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestEPackage.E__D, oldD, d));
 				}
 			}
 		}
@@ -96,7 +96,7 @@
 	 * 
 	 * @generated
 	 */
-	public D basicGetD() {
+	public EdaptTestD basicGetD() {
 		return d;
 	}
 
@@ -107,11 +107,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setD(D newD) {
-		final D oldD = d;
+	public void setD(EdaptTestD newD) {
+		final EdaptTestD oldD = d;
 		d = newD;
 		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, EEPackage.E__D, oldD, d));
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestEPackage.E__D, oldD, d));
 		}
 	}
 
@@ -122,13 +122,13 @@
 	 * @generated
 	 */
 	@Override
-	public F getF() {
+	public EdaptTestF getF() {
 		if (f != null && f.eIsProxy()) {
 			final InternalEObject oldF = (InternalEObject) f;
-			f = (F) eResolveProxy(oldF);
+			f = (EdaptTestF) eResolveProxy(oldF);
 			if (f != oldF) {
 				if (eNotificationRequired()) {
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EEPackage.E__F, oldF, f));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestEPackage.E__F, oldF, f));
 				}
 			}
 		}
@@ -141,7 +141,7 @@
 	 * 
 	 * @generated
 	 */
-	public F basicGetF() {
+	public EdaptTestF basicGetF() {
 		return f;
 	}
 
@@ -152,11 +152,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setF(F newF) {
-		final F oldF = f;
+	public void setF(EdaptTestF newF) {
+		final EdaptTestF oldF = f;
 		f = newF;
 		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, EEPackage.E__F, oldF, f));
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestEPackage.E__F, oldF, f));
 		}
 	}
 
@@ -169,12 +169,12 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-		case EEPackage.E__D:
+		case EdaptTestEPackage.E__D:
 			if (resolve) {
 				return getD();
 			}
 			return basicGetD();
-		case EEPackage.E__F:
+		case EdaptTestEPackage.E__F:
 			if (resolve) {
 				return getF();
 			}
@@ -192,11 +192,11 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-		case EEPackage.E__D:
-			setD((D) newValue);
+		case EdaptTestEPackage.E__D:
+			setD((EdaptTestD) newValue);
 			return;
-		case EEPackage.E__F:
-			setF((F) newValue);
+		case EdaptTestEPackage.E__F:
+			setF((EdaptTestF) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -211,11 +211,11 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-		case EEPackage.E__D:
-			setD((D) null);
+		case EdaptTestEPackage.E__D:
+			setD((EdaptTestD) null);
 			return;
-		case EEPackage.E__F:
-			setF((F) null);
+		case EdaptTestEPackage.E__F:
+			setF((EdaptTestF) null);
 			return;
 		}
 		super.eUnset(featureID);
@@ -230,12 +230,12 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-		case EEPackage.E__D:
+		case EdaptTestEPackage.E__D:
 			return d != null;
-		case EEPackage.E__F:
+		case EdaptTestEPackage.E__F:
 			return f != null;
 		}
 		return super.eIsSet(featureID);
 	}
 
-} // EImpl
+} // EdaptTestEImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEPackageImpl.java
new file mode 100644
index 0000000..b29513d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEPackageImpl.java
@@ -0,0 +1,283 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestEPackageImpl extends EPackageImpl implements EdaptTestEPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass eEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private EdaptTestEPackageImpl() {
+		super(eNS_URI, EdaptTestEFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link EdaptTestEPackage#eINSTANCE} when that field is accessed. Clients should
+	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static EdaptTestEPackage init() {
+		if (isInited) {
+			return (EdaptTestEPackage) EPackage.Registry.INSTANCE.getEPackage(EdaptTestEPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
+			.get(eNS_URI)
+			: new EdaptTestEPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theEPackage.createPackageContents();
+		theAPackage.createPackageContents();
+		theBPackage.createPackageContents();
+		theCPackage.createPackageContents();
+		theDPackage.createPackageContents();
+		theFPackage.createPackageContents();
+		theWPackage.createPackageContents();
+		theXPackage.createPackageContents();
+		theYPackage.createPackageContents();
+		theZPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theEPackage.initializePackageContents();
+		theAPackage.initializePackageContents();
+		theBPackage.initializePackageContents();
+		theCPackage.initializePackageContents();
+		theDPackage.initializePackageContents();
+		theFPackage.initializePackageContents();
+		theWPackage.initializePackageContents();
+		theXPackage.initializePackageContents();
+		theYPackage.initializePackageContents();
+		theZPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theEPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(EdaptTestEPackage.eNS_URI, theEPackage);
+		return theEPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EClass getE() {
+		return eEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getE_D() {
+		return (EReference) eEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getE_F() {
+		return (EReference) eEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestEFactory getEFactory() {
+		return (EdaptTestEFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		eEClass = createEClass(E);
+		createEReference(eEClass, E__D);
+		createEReference(eEClass, E__F);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		final EdaptTestDPackage theDPackage = (EdaptTestDPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI);
+		final EdaptTestFPackage theFPackage = (EdaptTestFPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(eEClass, EdaptTestE.class, "E", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getE_D(), theDPackage.getD(), null, "d", null, 0, 1, EdaptTestE.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+		initEReference(getE_F(), theFPackage.getF(), null, "f", null, 0, 1, EdaptTestE.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // EdaptTestEPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EAdapterFactory.java
similarity index 80%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EAdapterFactory.java
index d0646ff..99895ac 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EAdapterFactory.java
@@ -6,8 +6,8 @@
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -15,10 +15,10 @@
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage
  * @generated
  */
-public class EEAdapterFactory extends AdapterFactoryImpl {
+public class EAdapterFactory extends AdapterFactoryImpl {
 	/**
 	 * The cached model package.
 	 * <!-- begin-user-doc -->
@@ -26,7 +26,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static EEPackage modelPackage;
+	protected static EdaptTestEPackage modelPackage;
 
 	/**
 	 * Creates an instance of the adapter factory.
@@ -35,9 +35,9 @@
 	 * 
 	 * @generated
 	 */
-	public EEAdapterFactory() {
+	public EAdapterFactory() {
 		if (modelPackage == null) {
-			modelPackage = EEPackage.eINSTANCE;
+			modelPackage = EdaptTestEPackage.eINSTANCE;
 		}
 	}
 
@@ -69,10 +69,10 @@
 	 * 
 	 * @generated
 	 */
-	protected EESwitch<Adapter> modelSwitch =
-		new EESwitch<Adapter>() {
+	protected ESwitch<Adapter> modelSwitch =
+		new ESwitch<Adapter>() {
 			@Override
-			public Adapter caseE(E object) {
+			public Adapter caseE(EdaptTestE object) {
 				return createEAdapter();
 			}
 
@@ -97,7 +97,7 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE
 	 * <em>E</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -105,7 +105,7 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the new adapter.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.E
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE
 	 * @generated
 	 */
 	public Adapter createEAdapter() {
@@ -125,4 +125,4 @@
 		return null;
 	}
 
-} // EEAdapterFactory
+} // EAdapterFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/ESwitch.java
similarity index 85%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/ESwitch.java
index a01c5ee..50dc274 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/ESwitch.java
@@ -5,8 +5,8 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,10 +19,10 @@
  * which is the result of the switch.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage
  * @generated
  */
-public class EESwitch<T> extends Switch<T> {
+public class ESwitch<T> extends Switch<T> {
 	/**
 	 * The cached model package
 	 * <!-- begin-user-doc -->
@@ -30,7 +30,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static EEPackage modelPackage;
+	protected static EdaptTestEPackage modelPackage;
 
 	/**
 	 * Creates an instance of the switch.
@@ -39,9 +39,9 @@
 	 * 
 	 * @generated
 	 */
-	public EESwitch() {
+	public ESwitch() {
 		if (modelPackage == null) {
-			modelPackage = EEPackage.eINSTANCE;
+			modelPackage = EdaptTestEPackage.eINSTANCE;
 		}
 	}
 
@@ -71,8 +71,8 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-		case EEPackage.E: {
-			final E e = (E) theEObject;
+		case EdaptTestEPackage.E: {
+			final EdaptTestE e = (EdaptTestE) theEObject;
 			T result = caseE(e);
 			if (result == null) {
 				result = defaultCase(theEObject);
@@ -96,7 +96,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseE(E object) {
+	public T caseE(EdaptTestE object) {
 		return null;
 	}
 
@@ -117,4 +117,4 @@
 		return null;
 	}
 
-} // EESwitch
+} // ESwitch
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/F.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestF.java
similarity index 62%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/F.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestF.java
index d550626..d98808f 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/F.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestF.java
@@ -3,7 +3,7 @@
 package org.eclipse.emf.ecp.view.edapt.util.test.model.f;
 
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE;
 
 /**
  * <!-- begin-user-doc -->
@@ -13,15 +13,15 @@
  * <p>
  * The following features are supported:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.F#getE <em>E</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF#getE <em>E</em>}</li>
  * </ul>
  * </p>
  *
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage#getF()
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage#getF()
  * @model
  * @generated
  */
-public interface F extends EObject {
+public interface EdaptTestF extends EObject {
 	/**
 	 * Returns the value of the '<em><b>E</b></em>' reference.
 	 * <!-- begin-user-doc -->
@@ -31,15 +31,16 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the value of the '<em>E</em>' reference.
-	 * @see #setE(E)
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage#getF_E()
+	 * @see #setE(EdaptTestE)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage#getF_E()
 	 * @model
 	 * @generated
 	 */
-	E getE();
+	EdaptTestE getE();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.F#getE <em>E</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF#getE <em>E</em>}'
+	 * reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
@@ -47,6 +48,6 @@
 	 * @see #getE()
 	 * @generated
 	 */
-	void setE(E value);
+	void setE(EdaptTestE value);
 
-} // F
+} // EdaptTestF
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/FFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFFactory.java
similarity index 71%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/FFactory.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFFactory.java
index 5ad8792..43bc80a 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/FFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFFactory.java
@@ -10,10 +10,10 @@
  * It provides a create method for each non-abstract class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage
  * @generated
  */
-public interface FFactory extends EFactory {
+public interface EdaptTestFFactory extends EFactory {
 	/**
 	 * The singleton instance of the factory.
 	 * <!-- begin-user-doc -->
@@ -21,7 +21,7 @@
 	 * 
 	 * @generated
 	 */
-	FFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FFactoryImpl.init();
+	EdaptTestFFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFFactoryImpl.init();
 
 	/**
 	 * Returns a new object of class '<em>F</em>'.
@@ -31,7 +31,7 @@
 	 * @return a new object of class '<em>F</em>'.
 	 * @generated
 	 */
-	F createF();
+	EdaptTestF createF();
 
 	/**
 	 * Returns the package supported by this factory.
@@ -41,6 +41,6 @@
 	 * @return the package supported by this factory.
 	 * @generated
 	 */
-	FPackage getFPackage();
+	EdaptTestFPackage getFPackage();
 
-} // FFactory
+} // EdaptTestFFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/FPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFPackage.java
similarity index 77%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/FPackage.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFPackage.java
index 194576a..fc2df56 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/FPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFPackage.java
@@ -19,11 +19,11 @@
  * </ul>
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.FFactory
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFFactory
  * @model kind="package"
  * @generated
  */
-public interface FPackage extends EPackage {
+public interface EdaptTestFPackage extends EPackage {
 	/**
 	 * The package name.
 	 * <!-- begin-user-doc -->
@@ -58,16 +58,16 @@
 	 * 
 	 * @generated
 	 */
-	FPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FPackageImpl.init();
+	EdaptTestFPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl.init();
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FImpl <em>F</em>}'
-	 * class.
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFImpl
+	 * <em>F</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FImpl
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FPackageImpl#getF()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFImpl
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl#getF()
 	 * @generated
 	 */
 	int F = 0;
@@ -103,24 +103,25 @@
 	int F_OPERATION_COUNT = 0;
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.F <em>F</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF <em>F</em>}
+	 * '.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for class '<em>F</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.F
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF
 	 * @generated
 	 */
 	EClass getF();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.F#getE
-	 * <em>E</em>}'.
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF#getE <em>E</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the reference '<em>E</em>'.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.F#getE()
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF#getE()
 	 * @see #getF()
 	 * @generated
 	 */
@@ -134,7 +135,7 @@
 	 * @return the factory that creates the instances of the model.
 	 * @generated
 	 */
-	FFactory getFFactory();
+	EdaptTestFFactory getFFactory();
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -152,13 +153,13 @@
 	 */
 	interface Literals {
 		/**
-		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FImpl
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFImpl
 		 * <em>F</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * 
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FImpl
-		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FPackageImpl#getF()
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFImpl
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl#getF()
 		 * @generated
 		 */
 		EClass F = eINSTANCE.getF();
@@ -174,4 +175,4 @@
 
 	}
 
-} // FPackage
+} // EdaptTestFPackage
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/FFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFFactoryImpl.java
similarity index 63%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/FFactoryImpl.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFFactoryImpl.java
index d5a8993..eab6aaa 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/FFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFFactoryImpl.java
@@ -7,9 +7,9 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.F;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -18,7 +18,7 @@
  * 
  * @generated
  */
-public class FFactoryImpl extends EFactoryImpl implements FFactory {
+public class EdaptTestFFactoryImpl extends EFactoryImpl implements EdaptTestFFactory {
 	/**
 	 * Creates the default factory implementation.
 	 * <!-- begin-user-doc -->
@@ -26,16 +26,17 @@
 	 * 
 	 * @generated
 	 */
-	public static FFactory init() {
+	public static EdaptTestFFactory init() {
 		try {
-			final FFactory theFFactory = (FFactory) EPackage.Registry.INSTANCE.getEFactory(FPackage.eNS_URI);
+			final EdaptTestFFactory theFFactory = (EdaptTestFFactory) EPackage.Registry.INSTANCE
+				.getEFactory(EdaptTestFPackage.eNS_URI);
 			if (theFFactory != null) {
 				return theFFactory;
 			}
 		} catch (final Exception exception) {
 			EcorePlugin.INSTANCE.log(exception);
 		}
-		return new FFactoryImpl();
+		return new EdaptTestFFactoryImpl();
 	}
 
 	/**
@@ -45,7 +46,7 @@
 	 * 
 	 * @generated
 	 */
-	public FFactoryImpl() {
+	public EdaptTestFFactoryImpl() {
 		super();
 	}
 
@@ -58,7 +59,7 @@
 	@Override
 	public EObject create(EClass eClass) {
 		switch (eClass.getClassifierID()) {
-		case FPackage.F:
+		case EdaptTestFPackage.F:
 			return createF();
 		default:
 			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
@@ -72,8 +73,8 @@
 	 * @generated
 	 */
 	@Override
-	public F createF() {
-		final FImpl f = new FImpl();
+	public EdaptTestF createF() {
+		final EdaptTestFImpl f = new EdaptTestFImpl();
 		return f;
 	}
 
@@ -84,8 +85,8 @@
 	 * @generated
 	 */
 	@Override
-	public FPackage getFPackage() {
-		return (FPackage) getEPackage();
+	public EdaptTestFPackage getFPackage() {
+		return (EdaptTestFPackage) getEPackage();
 	}
 
 	/**
@@ -96,8 +97,8 @@
 	 * @generated
 	 */
 	@Deprecated
-	public static FPackage getPackage() {
-		return FPackage.eINSTANCE;
+	public static EdaptTestFPackage getPackage() {
+		return EdaptTestFPackage.eINSTANCE;
 	}
 
-} // FFactoryImpl
+} // EdaptTestFFactoryImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/FImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFImpl.java
similarity index 71%
rename from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/FImpl.java
rename to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFImpl.java
index 66ca46f..c261dda 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/FImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFImpl.java
@@ -7,9 +7,9 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.F;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -18,13 +18,13 @@
  * <p>
  * The following features are implemented:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.FImpl#getE <em>E</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFImpl#getE <em>E</em>}</li>
  * </ul>
  * </p>
  *
  * @generated
  */
-public class FImpl extends MinimalEObjectImpl.Container implements F {
+public class EdaptTestFImpl extends MinimalEObjectImpl.Container implements EdaptTestF {
 	/**
 	 * The cached value of the '{@link #getE() <em>E</em>}' reference.
 	 * <!-- begin-user-doc -->
@@ -34,7 +34,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected E e;
+	protected EdaptTestE e;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -42,7 +42,7 @@
 	 * 
 	 * @generated
 	 */
-	protected FImpl() {
+	protected EdaptTestFImpl() {
 		super();
 	}
 
@@ -54,7 +54,7 @@
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return FPackage.Literals.F;
+		return EdaptTestFPackage.Literals.F;
 	}
 
 	/**
@@ -64,13 +64,13 @@
 	 * @generated
 	 */
 	@Override
-	public E getE() {
+	public EdaptTestE getE() {
 		if (e != null && e.eIsProxy()) {
 			final InternalEObject oldE = (InternalEObject) e;
-			e = (E) eResolveProxy(oldE);
+			e = (EdaptTestE) eResolveProxy(oldE);
 			if (e != oldE) {
 				if (eNotificationRequired()) {
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, FPackage.F__E, oldE, e));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestFPackage.F__E, oldE, e));
 				}
 			}
 		}
@@ -83,7 +83,7 @@
 	 * 
 	 * @generated
 	 */
-	public E basicGetE() {
+	public EdaptTestE basicGetE() {
 		return e;
 	}
 
@@ -94,11 +94,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setE(E newE) {
-		final E oldE = e;
+	public void setE(EdaptTestE newE) {
+		final EdaptTestE oldE = e;
 		e = newE;
 		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, FPackage.F__E, oldE, e));
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestFPackage.F__E, oldE, e));
 		}
 	}
 
@@ -111,7 +111,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-		case FPackage.F__E:
+		case EdaptTestFPackage.F__E:
 			if (resolve) {
 				return getE();
 			}
@@ -129,8 +129,8 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-		case FPackage.F__E:
-			setE((E) newValue);
+		case EdaptTestFPackage.F__E:
+			setE((EdaptTestE) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -145,8 +145,8 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-		case FPackage.F__E:
-			setE((E) null);
+		case EdaptTestFPackage.F__E:
+			setE((EdaptTestE) null);
 			return;
 		}
 		super.eUnset(featureID);
@@ -161,10 +161,10 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-		case FPackage.F__E:
+		case EdaptTestFPackage.F__E:
 			return e != null;
 		}
 		return super.eIsSet(featureID);
 	}
 
-} // FImpl
+} // EdaptTestFImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFPackageImpl.java
new file mode 100644
index 0000000..921038c
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFPackageImpl.java
@@ -0,0 +1,266 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestFPackageImpl extends EPackageImpl implements EdaptTestFPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass fEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private EdaptTestFPackageImpl() {
+		super(eNS_URI, EdaptTestFFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link EdaptTestFPackage#eINSTANCE} when that field is accessed. Clients should
+	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static EdaptTestFPackage init() {
+		if (isInited) {
+			return (EdaptTestFPackage) EPackage.Registry.INSTANCE.getEPackage(EdaptTestFPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
+			.get(eNS_URI)
+			: new EdaptTestFPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theFPackage.createPackageContents();
+		theAPackage.createPackageContents();
+		theBPackage.createPackageContents();
+		theCPackage.createPackageContents();
+		theDPackage.createPackageContents();
+		theEPackage.createPackageContents();
+		theWPackage.createPackageContents();
+		theXPackage.createPackageContents();
+		theYPackage.createPackageContents();
+		theZPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theFPackage.initializePackageContents();
+		theAPackage.initializePackageContents();
+		theBPackage.initializePackageContents();
+		theCPackage.initializePackageContents();
+		theDPackage.initializePackageContents();
+		theEPackage.initializePackageContents();
+		theWPackage.initializePackageContents();
+		theXPackage.initializePackageContents();
+		theYPackage.initializePackageContents();
+		theZPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theFPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(EdaptTestFPackage.eNS_URI, theFPackage);
+		return theFPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EClass getF() {
+		return fEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getF_E() {
+		return (EReference) fEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestFFactory getFFactory() {
+		return (EdaptTestFFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		fEClass = createEClass(F);
+		createEReference(fEClass, F__E);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		final EdaptTestEPackage theEPackage = (EdaptTestEPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(fEClass, EdaptTestF.class, "F", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getF_E(), theEPackage.getE(), null, "e", null, 0, 1, EdaptTestF.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // EdaptTestFPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/FPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/FPackageImpl.java
deleted file mode 100644
index d74c2e0..0000000
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/FPackageImpl.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/**
- */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.APackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.APackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.BPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.BPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.CPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.CPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.DPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.DPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EEPackageImpl;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FFactory;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * 
- * @generated
- */
-public class FPackageImpl extends EPackageImpl implements FPackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private EClass fEClass = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private FPackageImpl() {
-		super(eNS_URI, FFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 *
-	 * <p>
-	 * This method is used to initialize {@link FPackage#eINSTANCE} when that field is accessed. Clients should not
-	 * invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static FPackage init() {
-		if (isInited) {
-			return (FPackage) EPackage.Registry.INSTANCE.getEPackage(FPackage.eNS_URI);
-		}
-
-		// Obtain or create and register package
-		final FPackageImpl theFPackage = (FPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new FPackageImpl());
-
-		isInited = true;
-
-		// Obtain or create and register interdependencies
-		final EEPackageImpl theEEPackage = (EEPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(EEPackage.eNS_URI) instanceof EEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EEPackage.eNS_URI)
-			: EEPackage.eINSTANCE);
-		final DPackageImpl theDPackage = (DPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(DPackage.eNS_URI) instanceof DPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(DPackage.eNS_URI)
-			: DPackage.eINSTANCE);
-		final BPackageImpl theBPackage = (BPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(BPackage.eNS_URI) instanceof BPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(BPackage.eNS_URI)
-			: BPackage.eINSTANCE);
-		final APackageImpl theAPackage = (APackageImpl) (EPackage.Registry.INSTANCE.getEPackage(APackage.eNS_URI) instanceof APackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(APackage.eNS_URI)
-			: APackage.eINSTANCE);
-		final CPackageImpl theCPackage = (CPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(CPackage.eNS_URI) instanceof CPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(CPackage.eNS_URI)
-			: CPackage.eINSTANCE);
-
-		// Create package meta-data objects
-		theFPackage.createPackageContents();
-		theEEPackage.createPackageContents();
-		theDPackage.createPackageContents();
-		theBPackage.createPackageContents();
-		theAPackage.createPackageContents();
-		theCPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theFPackage.initializePackageContents();
-		theEEPackage.initializePackageContents();
-		theDPackage.initializePackageContents();
-		theBPackage.initializePackageContents();
-		theAPackage.initializePackageContents();
-		theCPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theFPackage.freeze();
-
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(FPackage.eNS_URI, theFPackage);
-		return theFPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EClass getF() {
-		return fEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EReference getF_E() {
-		return (EReference) fEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public FFactory getFFactory() {
-		return (FFactory) getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package. This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) {
-			return;
-		}
-		isCreated = true;
-
-		// Create classes and their features
-		fEClass = createEClass(F);
-		createEReference(fEClass, F__E);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model. This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) {
-			return;
-		}
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Obtain other dependent packages
-		final EEPackage theEEPackage = (EEPackage) EPackage.Registry.INSTANCE.getEPackage(EEPackage.eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-
-		// Initialize classes, features, and operations; add parameters
-		initEClass(fEClass, org.eclipse.emf.ecp.view.edapt.util.test.model.f.F.class, "F", !IS_ABSTRACT, !IS_INTERFACE,
-			IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getF_E(), theEEPackage.getE(), null, "e", null, 0, 1,
-			org.eclipse.emf.ecp.view.edapt.util.test.model.f.F.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-			!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} // FPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FAdapterFactory.java
index c788ca9..cbdf7f3 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FAdapterFactory.java
@@ -6,8 +6,8 @@
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.F;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -15,7 +15,7 @@
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage
  * @generated
  */
 public class FAdapterFactory extends AdapterFactoryImpl {
@@ -26,7 +26,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static FPackage modelPackage;
+	protected static EdaptTestFPackage modelPackage;
 
 	/**
 	 * Creates an instance of the adapter factory.
@@ -37,7 +37,7 @@
 	 */
 	public FAdapterFactory() {
 		if (modelPackage == null) {
-			modelPackage = FPackage.eINSTANCE;
+			modelPackage = EdaptTestFPackage.eINSTANCE;
 		}
 	}
 
@@ -72,7 +72,7 @@
 	protected FSwitch<Adapter> modelSwitch =
 		new FSwitch<Adapter>() {
 			@Override
-			public Adapter caseF(F object) {
+			public Adapter caseF(EdaptTestF object) {
 				return createFAdapter();
 			}
 
@@ -97,7 +97,7 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.F
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF
 	 * <em>F</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -105,7 +105,7 @@
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the new adapter.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.F
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF
 	 * @generated
 	 */
 	public Adapter createFAdapter() {
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FSwitch.java
index 2be9e24..0338a5f 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FSwitch.java
@@ -5,8 +5,8 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.F;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,7 +19,7 @@
  * which is the result of the switch.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.FPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage
  * @generated
  */
 public class FSwitch<T> extends Switch<T> {
@@ -30,7 +30,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static FPackage modelPackage;
+	protected static EdaptTestFPackage modelPackage;
 
 	/**
 	 * Creates an instance of the switch.
@@ -41,7 +41,7 @@
 	 */
 	public FSwitch() {
 		if (modelPackage == null) {
-			modelPackage = FPackage.eINSTANCE;
+			modelPackage = EdaptTestFPackage.eINSTANCE;
 		}
 	}
 
@@ -71,8 +71,8 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-		case FPackage.F: {
-			final F f = (F) theEObject;
+		case EdaptTestFPackage.F: {
+			final EdaptTestF f = (EdaptTestF) theEObject;
 			T result = caseF(f);
 			if (result == null) {
 				result = defaultCase(theEObject);
@@ -96,7 +96,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseF(F object) {
+	public T caseF(EdaptTestF object) {
 		return null;
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestW.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestW.java
new file mode 100644
index 0000000..36c5854
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestW.java
@@ -0,0 +1,53 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.w;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>W</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW#getX <em>X</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage#getW()
+ * @model
+ * @generated
+ */
+public interface EdaptTestW extends EObject {
+	/**
+	 * Returns the value of the '<em><b>X</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>X</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>X</em>' reference.
+	 * @see #setX(EdaptTestX)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage#getW_X()
+	 * @model
+	 * @generated
+	 */
+	EdaptTestX getX();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW#getX <em>X</em>}'
+	 * reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @param value the new value of the '<em>X</em>' reference.
+	 * @see #getX()
+	 * @generated
+	 */
+	void setX(EdaptTestX value);
+
+} // EdaptTestW
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWFactory.java
new file mode 100644
index 0000000..81cfcaf
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWFactory.java
@@ -0,0 +1,46 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.w;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * 
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage
+ * @generated
+ */
+public interface EdaptTestWFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	EdaptTestWFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>W</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return a new object of class '<em>W</em>'.
+	 * @generated
+	 */
+	EdaptTestW createW();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	EdaptTestWPackage getWPackage();
+
+} // EdaptTestWFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWPackage.java
new file mode 100644
index 0000000..630fbb5
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWPackage.java
@@ -0,0 +1,178 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.w;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * 
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface EdaptTestWPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNAME = "w";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_URI = "http://example.org/w";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_PREFIX = "w";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	EdaptTestWPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWImpl
+	 * <em>W</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWImpl
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl#getW()
+	 * @generated
+	 */
+	int W = 0;
+
+	/**
+	 * The feature id for the '<em><b>X</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int W__X = 0;
+
+	/**
+	 * The number of structural features of the '<em>W</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int W_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>W</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int W_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW <em>W</em>}
+	 * '.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for class '<em>W</em>'.
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW
+	 * @generated
+	 */
+	EClass getW();
+
+	/**
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW#getX <em>X</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the reference '<em>X</em>'.
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW#getX()
+	 * @see #getW()
+	 * @generated
+	 */
+	EReference getW_X();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	EdaptTestWFactory getWFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 * <li>each class,</li>
+	 * <li>each feature of each class,</li>
+	 * <li>each operation of each class,</li>
+	 * <li>each enum,</li>
+	 * <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWImpl
+		 * <em>W</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * 
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWImpl
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl#getW()
+		 * @generated
+		 */
+		EClass W = eINSTANCE.getW();
+
+		/**
+		 * The meta object literal for the '<em><b>X</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EReference W__X = eINSTANCE.getW_X();
+
+	}
+
+} // EdaptTestWPackage
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWFactoryImpl.java
new file mode 100644
index 0000000..a14ca0f
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWFactoryImpl.java
@@ -0,0 +1,104 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestWFactoryImpl extends EFactoryImpl implements EdaptTestWFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static EdaptTestWFactory init() {
+		try {
+			final EdaptTestWFactory theWFactory = (EdaptTestWFactory) EPackage.Registry.INSTANCE
+				.getEFactory(EdaptTestWPackage.eNS_URI);
+			if (theWFactory != null) {
+				return theWFactory;
+			}
+		} catch (final Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new EdaptTestWFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EdaptTestWFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case EdaptTestWPackage.W:
+			return createW();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestW createW() {
+		final EdaptTestWImpl w = new EdaptTestWImpl();
+		return w;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestWPackage getWPackage() {
+		return (EdaptTestWPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static EdaptTestWPackage getPackage() {
+		return EdaptTestWPackage.eINSTANCE;
+	}
+
+} // EdaptTestWFactoryImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWImpl.java
new file mode 100644
index 0000000..beb776a
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWImpl.java
@@ -0,0 +1,170 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>W</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWImpl#getX <em>X</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EdaptTestWImpl extends MinimalEObjectImpl.Container implements EdaptTestW {
+	/**
+	 * The cached value of the '{@link #getX() <em>X</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected EdaptTestX x;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected EdaptTestWImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return EdaptTestWPackage.Literals.W;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestX getX() {
+		if (x != null && x.eIsProxy()) {
+			final InternalEObject oldX = (InternalEObject) x;
+			x = (EdaptTestX) eResolveProxy(oldX);
+			if (x != oldX) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestWPackage.W__X, oldX, x));
+				}
+			}
+		}
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EdaptTestX basicGetX() {
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void setX(EdaptTestX newX) {
+		final EdaptTestX oldX = x;
+		x = newX;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestWPackage.W__X, oldX, x));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case EdaptTestWPackage.W__X:
+			if (resolve) {
+				return getX();
+			}
+			return basicGetX();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case EdaptTestWPackage.W__X:
+			setX((EdaptTestX) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case EdaptTestWPackage.W__X:
+			setX((EdaptTestX) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case EdaptTestWPackage.W__X:
+			return x != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // EdaptTestWImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWPackageImpl.java
new file mode 100644
index 0000000..7979ec1
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWPackageImpl.java
@@ -0,0 +1,266 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestWPackageImpl extends EPackageImpl implements EdaptTestWPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass wEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private EdaptTestWPackageImpl() {
+		super(eNS_URI, EdaptTestWFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link EdaptTestWPackage#eINSTANCE} when that field is accessed. Clients should
+	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static EdaptTestWPackage init() {
+		if (isInited) {
+			return (EdaptTestWPackage) EPackage.Registry.INSTANCE.getEPackage(EdaptTestWPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
+			.get(eNS_URI)
+			: new EdaptTestWPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theWPackage.createPackageContents();
+		theAPackage.createPackageContents();
+		theBPackage.createPackageContents();
+		theCPackage.createPackageContents();
+		theDPackage.createPackageContents();
+		theEPackage.createPackageContents();
+		theFPackage.createPackageContents();
+		theXPackage.createPackageContents();
+		theYPackage.createPackageContents();
+		theZPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theWPackage.initializePackageContents();
+		theAPackage.initializePackageContents();
+		theBPackage.initializePackageContents();
+		theCPackage.initializePackageContents();
+		theDPackage.initializePackageContents();
+		theEPackage.initializePackageContents();
+		theFPackage.initializePackageContents();
+		theXPackage.initializePackageContents();
+		theYPackage.initializePackageContents();
+		theZPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theWPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(EdaptTestWPackage.eNS_URI, theWPackage);
+		return theWPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EClass getW() {
+		return wEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getW_X() {
+		return (EReference) wEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestWFactory getWFactory() {
+		return (EdaptTestWFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		wEClass = createEClass(W);
+		createEReference(wEClass, W__X);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		final EdaptTestXPackage theXPackage = (EdaptTestXPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(wEClass, EdaptTestW.class, "W", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getW_X(), theXPackage.getX(), null, "x", null, 0, 1, EdaptTestW.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // EdaptTestWPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WAdapterFactory.java
similarity index 76%
copy from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java
copy to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WAdapterFactory.java
index d0646ff..7db3c6e 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WAdapterFactory.java
@@ -1,13 +1,13 @@
 /**
  */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;
+package org.eclipse.emf.ecp.view.edapt.util.test.model.w.util;
 
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -15,10 +15,10 @@
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage
  * @generated
  */
-public class EEAdapterFactory extends AdapterFactoryImpl {
+public class WAdapterFactory extends AdapterFactoryImpl {
 	/**
 	 * The cached model package.
 	 * <!-- begin-user-doc -->
@@ -26,7 +26,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static EEPackage modelPackage;
+	protected static EdaptTestWPackage modelPackage;
 
 	/**
 	 * Creates an instance of the adapter factory.
@@ -35,9 +35,9 @@
 	 * 
 	 * @generated
 	 */
-	public EEAdapterFactory() {
+	public WAdapterFactory() {
 		if (modelPackage == null) {
-			modelPackage = EEPackage.eINSTANCE;
+			modelPackage = EdaptTestWPackage.eINSTANCE;
 		}
 	}
 
@@ -69,11 +69,11 @@
 	 * 
 	 * @generated
 	 */
-	protected EESwitch<Adapter> modelSwitch =
-		new EESwitch<Adapter>() {
+	protected WSwitch<Adapter> modelSwitch =
+		new WSwitch<Adapter>() {
 			@Override
-			public Adapter caseE(E object) {
-				return createEAdapter();
+			public Adapter caseW(EdaptTestW object) {
+				return createWAdapter();
 			}
 
 			@Override
@@ -97,18 +97,18 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E
-	 * <em>E</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW
+	 * <em>W</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the new adapter.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.E
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW
 	 * @generated
 	 */
-	public Adapter createEAdapter() {
+	public Adapter createWAdapter() {
 		return null;
 	}
 
@@ -125,4 +125,4 @@
 		return null;
 	}
 
-} // EEAdapterFactory
+} // WAdapterFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WSwitch.java
similarity index 81%
copy from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java
copy to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WSwitch.java
index a01c5ee..c251371 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WSwitch.java
@@ -1,12 +1,12 @@
 /**
  */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;
+package org.eclipse.emf.ecp.view.edapt.util.test.model.w.util;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,10 +19,10 @@
  * which is the result of the switch.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage
  * @generated
  */
-public class EESwitch<T> extends Switch<T> {
+public class WSwitch<T> extends Switch<T> {
 	/**
 	 * The cached model package
 	 * <!-- begin-user-doc -->
@@ -30,7 +30,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static EEPackage modelPackage;
+	protected static EdaptTestWPackage modelPackage;
 
 	/**
 	 * Creates an instance of the switch.
@@ -39,9 +39,9 @@
 	 * 
 	 * @generated
 	 */
-	public EESwitch() {
+	public WSwitch() {
 		if (modelPackage == null) {
-			modelPackage = EEPackage.eINSTANCE;
+			modelPackage = EdaptTestWPackage.eINSTANCE;
 		}
 	}
 
@@ -71,9 +71,9 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-		case EEPackage.E: {
-			final E e = (E) theEObject;
-			T result = caseE(e);
+		case EdaptTestWPackage.W: {
+			final EdaptTestW w = (EdaptTestW) theEObject;
+			T result = caseW(w);
 			if (result == null) {
 				result = defaultCase(theEObject);
 			}
@@ -85,18 +85,18 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>E</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>W</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * 
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>E</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>W</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseE(E object) {
+	public T caseW(EdaptTestW object) {
 		return null;
 	}
 
@@ -117,4 +117,4 @@
 		return null;
 	}
 
-} // EESwitch
+} // WSwitch
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestX.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestX.java
new file mode 100644
index 0000000..bd96825
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestX.java
@@ -0,0 +1,53 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.x;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>X</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX#getW <em>W</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage#getX()
+ * @model
+ * @generated
+ */
+public interface EdaptTestX extends EObject {
+	/**
+	 * Returns the value of the '<em><b>W</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>W</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>W</em>' reference.
+	 * @see #setW(EdaptTestW)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage#getX_W()
+	 * @model
+	 * @generated
+	 */
+	EdaptTestW getW();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX#getW <em>W</em>}'
+	 * reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @param value the new value of the '<em>W</em>' reference.
+	 * @see #getW()
+	 * @generated
+	 */
+	void setW(EdaptTestW value);
+
+} // EdaptTestX
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXFactory.java
new file mode 100644
index 0000000..6da1e3d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXFactory.java
@@ -0,0 +1,46 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.x;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * 
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage
+ * @generated
+ */
+public interface EdaptTestXFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	EdaptTestXFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>X</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return a new object of class '<em>X</em>'.
+	 * @generated
+	 */
+	EdaptTestX createX();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	EdaptTestXPackage getXPackage();
+
+} // EdaptTestXFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXPackage.java
new file mode 100644
index 0000000..f733659
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXPackage.java
@@ -0,0 +1,178 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.x;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * 
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface EdaptTestXPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNAME = "x";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_URI = "http://example.org/x";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_PREFIX = "x";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	EdaptTestXPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXImpl
+	 * <em>X</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXImpl
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl#getX()
+	 * @generated
+	 */
+	int X = 0;
+
+	/**
+	 * The feature id for the '<em><b>W</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int X__W = 0;
+
+	/**
+	 * The number of structural features of the '<em>X</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int X_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>X</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int X_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX <em>X</em>}
+	 * '.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for class '<em>X</em>'.
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX
+	 * @generated
+	 */
+	EClass getX();
+
+	/**
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX#getW <em>W</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the reference '<em>W</em>'.
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX#getW()
+	 * @see #getX()
+	 * @generated
+	 */
+	EReference getX_W();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	EdaptTestXFactory getXFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 * <li>each class,</li>
+	 * <li>each feature of each class,</li>
+	 * <li>each operation of each class,</li>
+	 * <li>each enum,</li>
+	 * <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXImpl
+		 * <em>X</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * 
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXImpl
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl#getX()
+		 * @generated
+		 */
+		EClass X = eINSTANCE.getX();
+
+		/**
+		 * The meta object literal for the '<em><b>W</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EReference X__W = eINSTANCE.getX_W();
+
+	}
+
+} // EdaptTestXPackage
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXFactoryImpl.java
new file mode 100644
index 0000000..8605c95
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXFactoryImpl.java
@@ -0,0 +1,104 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestXFactoryImpl extends EFactoryImpl implements EdaptTestXFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static EdaptTestXFactory init() {
+		try {
+			final EdaptTestXFactory theXFactory = (EdaptTestXFactory) EPackage.Registry.INSTANCE
+				.getEFactory(EdaptTestXPackage.eNS_URI);
+			if (theXFactory != null) {
+				return theXFactory;
+			}
+		} catch (final Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new EdaptTestXFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EdaptTestXFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case EdaptTestXPackage.X:
+			return createX();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestX createX() {
+		final EdaptTestXImpl x = new EdaptTestXImpl();
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestXPackage getXPackage() {
+		return (EdaptTestXPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static EdaptTestXPackage getPackage() {
+		return EdaptTestXPackage.eINSTANCE;
+	}
+
+} // EdaptTestXFactoryImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXImpl.java
new file mode 100644
index 0000000..d3eda7e
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXImpl.java
@@ -0,0 +1,170 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>X</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXImpl#getW <em>W</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EdaptTestXImpl extends MinimalEObjectImpl.Container implements EdaptTestX {
+	/**
+	 * The cached value of the '{@link #getW() <em>W</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #getW()
+	 * @generated
+	 * @ordered
+	 */
+	protected EdaptTestW w;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected EdaptTestXImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return EdaptTestXPackage.Literals.X;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestW getW() {
+		if (w != null && w.eIsProxy()) {
+			final InternalEObject oldW = (InternalEObject) w;
+			w = (EdaptTestW) eResolveProxy(oldW);
+			if (w != oldW) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestXPackage.X__W, oldW, w));
+				}
+			}
+		}
+		return w;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EdaptTestW basicGetW() {
+		return w;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void setW(EdaptTestW newW) {
+		final EdaptTestW oldW = w;
+		w = newW;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestXPackage.X__W, oldW, w));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case EdaptTestXPackage.X__W:
+			if (resolve) {
+				return getW();
+			}
+			return basicGetW();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case EdaptTestXPackage.X__W:
+			setW((EdaptTestW) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case EdaptTestXPackage.X__W:
+			setW((EdaptTestW) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case EdaptTestXPackage.X__W:
+			return w != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // EdaptTestXImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXPackageImpl.java
new file mode 100644
index 0000000..b0ddc50
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXPackageImpl.java
@@ -0,0 +1,266 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestXPackageImpl extends EPackageImpl implements EdaptTestXPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass xEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private EdaptTestXPackageImpl() {
+		super(eNS_URI, EdaptTestXFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link EdaptTestXPackage#eINSTANCE} when that field is accessed. Clients should
+	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static EdaptTestXPackage init() {
+		if (isInited) {
+			return (EdaptTestXPackage) EPackage.Registry.INSTANCE.getEPackage(EdaptTestXPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
+			.get(eNS_URI)
+			: new EdaptTestXPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theXPackage.createPackageContents();
+		theAPackage.createPackageContents();
+		theBPackage.createPackageContents();
+		theCPackage.createPackageContents();
+		theDPackage.createPackageContents();
+		theEPackage.createPackageContents();
+		theFPackage.createPackageContents();
+		theWPackage.createPackageContents();
+		theYPackage.createPackageContents();
+		theZPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theXPackage.initializePackageContents();
+		theAPackage.initializePackageContents();
+		theBPackage.initializePackageContents();
+		theCPackage.initializePackageContents();
+		theDPackage.initializePackageContents();
+		theEPackage.initializePackageContents();
+		theFPackage.initializePackageContents();
+		theWPackage.initializePackageContents();
+		theYPackage.initializePackageContents();
+		theZPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theXPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(EdaptTestXPackage.eNS_URI, theXPackage);
+		return theXPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EClass getX() {
+		return xEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getX_W() {
+		return (EReference) xEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestXFactory getXFactory() {
+		return (EdaptTestXFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		xEClass = createEClass(X);
+		createEReference(xEClass, X__W);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		final EdaptTestWPackage theWPackage = (EdaptTestWPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(xEClass, EdaptTestX.class, "X", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getX_W(), theWPackage.getW(), null, "w", null, 0, 1, EdaptTestX.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // EdaptTestXPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XAdapterFactory.java
similarity index 76%
copy from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java
copy to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XAdapterFactory.java
index d0646ff..448f999 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XAdapterFactory.java
@@ -1,13 +1,13 @@
 /**
  */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;
+package org.eclipse.emf.ecp.view.edapt.util.test.model.x.util;
 
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -15,10 +15,10 @@
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage
  * @generated
  */
-public class EEAdapterFactory extends AdapterFactoryImpl {
+public class XAdapterFactory extends AdapterFactoryImpl {
 	/**
 	 * The cached model package.
 	 * <!-- begin-user-doc -->
@@ -26,7 +26,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static EEPackage modelPackage;
+	protected static EdaptTestXPackage modelPackage;
 
 	/**
 	 * Creates an instance of the adapter factory.
@@ -35,9 +35,9 @@
 	 * 
 	 * @generated
 	 */
-	public EEAdapterFactory() {
+	public XAdapterFactory() {
 		if (modelPackage == null) {
-			modelPackage = EEPackage.eINSTANCE;
+			modelPackage = EdaptTestXPackage.eINSTANCE;
 		}
 	}
 
@@ -69,11 +69,11 @@
 	 * 
 	 * @generated
 	 */
-	protected EESwitch<Adapter> modelSwitch =
-		new EESwitch<Adapter>() {
+	protected XSwitch<Adapter> modelSwitch =
+		new XSwitch<Adapter>() {
 			@Override
-			public Adapter caseE(E object) {
-				return createEAdapter();
+			public Adapter caseX(EdaptTestX object) {
+				return createXAdapter();
 			}
 
 			@Override
@@ -97,18 +97,18 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E
-	 * <em>E</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX
+	 * <em>X</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the new adapter.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.E
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX
 	 * @generated
 	 */
-	public Adapter createEAdapter() {
+	public Adapter createXAdapter() {
 		return null;
 	}
 
@@ -125,4 +125,4 @@
 		return null;
 	}
 
-} // EEAdapterFactory
+} // XAdapterFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XSwitch.java
similarity index 81%
copy from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java
copy to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XSwitch.java
index a01c5ee..36fe360 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XSwitch.java
@@ -1,12 +1,12 @@
 /**
  */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;
+package org.eclipse.emf.ecp.view.edapt.util.test.model.x.util;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,10 +19,10 @@
  * which is the result of the switch.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage
  * @generated
  */
-public class EESwitch<T> extends Switch<T> {
+public class XSwitch<T> extends Switch<T> {
 	/**
 	 * The cached model package
 	 * <!-- begin-user-doc -->
@@ -30,7 +30,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static EEPackage modelPackage;
+	protected static EdaptTestXPackage modelPackage;
 
 	/**
 	 * Creates an instance of the switch.
@@ -39,9 +39,9 @@
 	 * 
 	 * @generated
 	 */
-	public EESwitch() {
+	public XSwitch() {
 		if (modelPackage == null) {
-			modelPackage = EEPackage.eINSTANCE;
+			modelPackage = EdaptTestXPackage.eINSTANCE;
 		}
 	}
 
@@ -71,9 +71,9 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-		case EEPackage.E: {
-			final E e = (E) theEObject;
-			T result = caseE(e);
+		case EdaptTestXPackage.X: {
+			final EdaptTestX x = (EdaptTestX) theEObject;
+			T result = caseX(x);
 			if (result == null) {
 				result = defaultCase(theEObject);
 			}
@@ -85,18 +85,18 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>E</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>X</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * 
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>E</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>X</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseE(E object) {
+	public T caseX(EdaptTestX object) {
 		return null;
 	}
 
@@ -117,4 +117,4 @@
 		return null;
 	}
 
-} // EESwitch
+} // XSwitch
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestY.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestY.java
new file mode 100644
index 0000000..380ea2d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestY.java
@@ -0,0 +1,83 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.y;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Y</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY#getX <em>X</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY#getZ <em>Z</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage#getY()
+ * @model
+ * @generated
+ */
+public interface EdaptTestY extends EObject {
+	/**
+	 * Returns the value of the '<em><b>X</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>X</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>X</em>' reference.
+	 * @see #setX(EdaptTestX)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage#getY_X()
+	 * @model
+	 * @generated
+	 */
+	EdaptTestX getX();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY#getX <em>X</em>}'
+	 * reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @param value the new value of the '<em>X</em>' reference.
+	 * @see #getX()
+	 * @generated
+	 */
+	void setX(EdaptTestX value);
+
+	/**
+	 * Returns the value of the '<em><b>Z</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Z</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Z</em>' reference.
+	 * @see #setZ(EdaptTestZ)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage#getY_Z()
+	 * @model
+	 * @generated
+	 */
+	EdaptTestZ getZ();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY#getZ <em>Z</em>}'
+	 * reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @param value the new value of the '<em>Z</em>' reference.
+	 * @see #getZ()
+	 * @generated
+	 */
+	void setZ(EdaptTestZ value);
+
+} // EdaptTestY
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYFactory.java
new file mode 100644
index 0000000..375cf67
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYFactory.java
@@ -0,0 +1,46 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.y;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * 
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage
+ * @generated
+ */
+public interface EdaptTestYFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	EdaptTestYFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Y</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return a new object of class '<em>Y</em>'.
+	 * @generated
+	 */
+	EdaptTestY createY();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	EdaptTestYPackage getYPackage();
+
+} // EdaptTestYFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYPackage.java
new file mode 100644
index 0000000..8f50e69
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYPackage.java
@@ -0,0 +1,210 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.y;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * 
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface EdaptTestYPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNAME = "y";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_URI = "http://example.org/y";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_PREFIX = "y";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	EdaptTestYPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYImpl
+	 * <em>Y</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYImpl
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl#getY()
+	 * @generated
+	 */
+	int Y = 0;
+
+	/**
+	 * The feature id for the '<em><b>X</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int Y__X = 0;
+
+	/**
+	 * The feature id for the '<em><b>Z</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int Y__Z = 1;
+
+	/**
+	 * The number of structural features of the '<em>Y</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int Y_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Y</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int Y_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY <em>Y</em>}
+	 * '.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for class '<em>Y</em>'.
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY
+	 * @generated
+	 */
+	EClass getY();
+
+	/**
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY#getX <em>X</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the reference '<em>X</em>'.
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY#getX()
+	 * @see #getY()
+	 * @generated
+	 */
+	EReference getY_X();
+
+	/**
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY#getZ <em>Z</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the reference '<em>Z</em>'.
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY#getZ()
+	 * @see #getY()
+	 * @generated
+	 */
+	EReference getY_Z();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	EdaptTestYFactory getYFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 * <li>each class,</li>
+	 * <li>each feature of each class,</li>
+	 * <li>each operation of each class,</li>
+	 * <li>each enum,</li>
+	 * <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYImpl
+		 * <em>Y</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * 
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYImpl
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl#getY()
+		 * @generated
+		 */
+		EClass Y = eINSTANCE.getY();
+
+		/**
+		 * The meta object literal for the '<em><b>X</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EReference Y__X = eINSTANCE.getY_X();
+
+		/**
+		 * The meta object literal for the '<em><b>Z</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EReference Y__Z = eINSTANCE.getY_Z();
+
+	}
+
+} // EdaptTestYPackage
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYFactoryImpl.java
new file mode 100644
index 0000000..bf2e1c1
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYFactoryImpl.java
@@ -0,0 +1,104 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestYFactoryImpl extends EFactoryImpl implements EdaptTestYFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static EdaptTestYFactory init() {
+		try {
+			final EdaptTestYFactory theYFactory = (EdaptTestYFactory) EPackage.Registry.INSTANCE
+				.getEFactory(EdaptTestYPackage.eNS_URI);
+			if (theYFactory != null) {
+				return theYFactory;
+			}
+		} catch (final Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new EdaptTestYFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EdaptTestYFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case EdaptTestYPackage.Y:
+			return createY();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestY createY() {
+		final EdaptTestYImpl y = new EdaptTestYImpl();
+		return y;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestYPackage getYPackage() {
+		return (EdaptTestYPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static EdaptTestYPackage getPackage() {
+		return EdaptTestYPackage.eINSTANCE;
+	}
+
+} // EdaptTestYFactoryImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYImpl.java
new file mode 100644
index 0000000..06b4aa3
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYImpl.java
@@ -0,0 +1,241 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Y</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYImpl#getX <em>X</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYImpl#getZ <em>Z</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EdaptTestYImpl extends MinimalEObjectImpl.Container implements EdaptTestY {
+	/**
+	 * The cached value of the '{@link #getX() <em>X</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected EdaptTestX x;
+
+	/**
+	 * The cached value of the '{@link #getZ() <em>Z</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #getZ()
+	 * @generated
+	 * @ordered
+	 */
+	protected EdaptTestZ z;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected EdaptTestYImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return EdaptTestYPackage.Literals.Y;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestX getX() {
+		if (x != null && x.eIsProxy()) {
+			final InternalEObject oldX = (InternalEObject) x;
+			x = (EdaptTestX) eResolveProxy(oldX);
+			if (x != oldX) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestYPackage.Y__X, oldX, x));
+				}
+			}
+		}
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EdaptTestX basicGetX() {
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void setX(EdaptTestX newX) {
+		final EdaptTestX oldX = x;
+		x = newX;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestYPackage.Y__X, oldX, x));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestZ getZ() {
+		if (z != null && z.eIsProxy()) {
+			final InternalEObject oldZ = (InternalEObject) z;
+			z = (EdaptTestZ) eResolveProxy(oldZ);
+			if (z != oldZ) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestYPackage.Y__Z, oldZ, z));
+				}
+			}
+		}
+		return z;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EdaptTestZ basicGetZ() {
+		return z;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void setZ(EdaptTestZ newZ) {
+		final EdaptTestZ oldZ = z;
+		z = newZ;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestYPackage.Y__Z, oldZ, z));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case EdaptTestYPackage.Y__X:
+			if (resolve) {
+				return getX();
+			}
+			return basicGetX();
+		case EdaptTestYPackage.Y__Z:
+			if (resolve) {
+				return getZ();
+			}
+			return basicGetZ();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case EdaptTestYPackage.Y__X:
+			setX((EdaptTestX) newValue);
+			return;
+		case EdaptTestYPackage.Y__Z:
+			setZ((EdaptTestZ) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case EdaptTestYPackage.Y__X:
+			setX((EdaptTestX) null);
+			return;
+		case EdaptTestYPackage.Y__Z:
+			setZ((EdaptTestZ) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case EdaptTestYPackage.Y__X:
+			return x != null;
+		case EdaptTestYPackage.Y__Z:
+			return z != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // EdaptTestYImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYPackageImpl.java
new file mode 100644
index 0000000..2e5c848
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYPackageImpl.java
@@ -0,0 +1,283 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestYPackageImpl extends EPackageImpl implements EdaptTestYPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass yEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private EdaptTestYPackageImpl() {
+		super(eNS_URI, EdaptTestYFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link EdaptTestYPackage#eINSTANCE} when that field is accessed. Clients should
+	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static EdaptTestYPackage init() {
+		if (isInited) {
+			return (EdaptTestYPackage) EPackage.Registry.INSTANCE.getEPackage(EdaptTestYPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
+			.get(eNS_URI)
+			: new EdaptTestYPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theYPackage.createPackageContents();
+		theAPackage.createPackageContents();
+		theBPackage.createPackageContents();
+		theCPackage.createPackageContents();
+		theDPackage.createPackageContents();
+		theEPackage.createPackageContents();
+		theFPackage.createPackageContents();
+		theWPackage.createPackageContents();
+		theXPackage.createPackageContents();
+		theZPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theYPackage.initializePackageContents();
+		theAPackage.initializePackageContents();
+		theBPackage.initializePackageContents();
+		theCPackage.initializePackageContents();
+		theDPackage.initializePackageContents();
+		theEPackage.initializePackageContents();
+		theFPackage.initializePackageContents();
+		theWPackage.initializePackageContents();
+		theXPackage.initializePackageContents();
+		theZPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theYPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(EdaptTestYPackage.eNS_URI, theYPackage);
+		return theYPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EClass getY() {
+		return yEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getY_X() {
+		return (EReference) yEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getY_Z() {
+		return (EReference) yEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestYFactory getYFactory() {
+		return (EdaptTestYFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		yEClass = createEClass(Y);
+		createEReference(yEClass, Y__X);
+		createEReference(yEClass, Y__Z);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		final EdaptTestXPackage theXPackage = (EdaptTestXPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI);
+		final EdaptTestZPackage theZPackage = (EdaptTestZPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestZPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(yEClass, EdaptTestY.class, "Y", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getY_X(), theXPackage.getX(), null, "x", null, 0, 1, EdaptTestY.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+		initEReference(getY_Z(), theZPackage.getZ(), null, "z", null, 0, 1, EdaptTestY.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // EdaptTestYPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YAdapterFactory.java
similarity index 76%
copy from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java
copy to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YAdapterFactory.java
index d0646ff..61c41a8 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YAdapterFactory.java
@@ -1,13 +1,13 @@
 /**
  */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;
+package org.eclipse.emf.ecp.view.edapt.util.test.model.y.util;
 
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -15,10 +15,10 @@
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage
  * @generated
  */
-public class EEAdapterFactory extends AdapterFactoryImpl {
+public class YAdapterFactory extends AdapterFactoryImpl {
 	/**
 	 * The cached model package.
 	 * <!-- begin-user-doc -->
@@ -26,7 +26,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static EEPackage modelPackage;
+	protected static EdaptTestYPackage modelPackage;
 
 	/**
 	 * Creates an instance of the adapter factory.
@@ -35,9 +35,9 @@
 	 * 
 	 * @generated
 	 */
-	public EEAdapterFactory() {
+	public YAdapterFactory() {
 		if (modelPackage == null) {
-			modelPackage = EEPackage.eINSTANCE;
+			modelPackage = EdaptTestYPackage.eINSTANCE;
 		}
 	}
 
@@ -69,11 +69,11 @@
 	 * 
 	 * @generated
 	 */
-	protected EESwitch<Adapter> modelSwitch =
-		new EESwitch<Adapter>() {
+	protected YSwitch<Adapter> modelSwitch =
+		new YSwitch<Adapter>() {
 			@Override
-			public Adapter caseE(E object) {
-				return createEAdapter();
+			public Adapter caseY(EdaptTestY object) {
+				return createYAdapter();
 			}
 
 			@Override
@@ -97,18 +97,18 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E
-	 * <em>E</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY
+	 * <em>Y</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the new adapter.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.E
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY
 	 * @generated
 	 */
-	public Adapter createEAdapter() {
+	public Adapter createYAdapter() {
 		return null;
 	}
 
@@ -125,4 +125,4 @@
 		return null;
 	}
 
-} // EEAdapterFactory
+} // YAdapterFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YSwitch.java
similarity index 81%
copy from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java
copy to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YSwitch.java
index a01c5ee..9f60acc 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YSwitch.java
@@ -1,12 +1,12 @@
 /**
  */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;
+package org.eclipse.emf.ecp.view.edapt.util.test.model.y.util;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,10 +19,10 @@
  * which is the result of the switch.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage
  * @generated
  */
-public class EESwitch<T> extends Switch<T> {
+public class YSwitch<T> extends Switch<T> {
 	/**
 	 * The cached model package
 	 * <!-- begin-user-doc -->
@@ -30,7 +30,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static EEPackage modelPackage;
+	protected static EdaptTestYPackage modelPackage;
 
 	/**
 	 * Creates an instance of the switch.
@@ -39,9 +39,9 @@
 	 * 
 	 * @generated
 	 */
-	public EESwitch() {
+	public YSwitch() {
 		if (modelPackage == null) {
-			modelPackage = EEPackage.eINSTANCE;
+			modelPackage = EdaptTestYPackage.eINSTANCE;
 		}
 	}
 
@@ -71,9 +71,9 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-		case EEPackage.E: {
-			final E e = (E) theEObject;
-			T result = caseE(e);
+		case EdaptTestYPackage.Y: {
+			final EdaptTestY y = (EdaptTestY) theEObject;
+			T result = caseY(y);
 			if (result == null) {
 				result = defaultCase(theEObject);
 			}
@@ -85,18 +85,18 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>E</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Y</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * 
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>E</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Y</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseE(E object) {
+	public T caseY(EdaptTestY object) {
 		return null;
 	}
 
@@ -117,4 +117,4 @@
 		return null;
 	}
 
-} // EESwitch
+} // YSwitch
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZ.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZ.java
new file mode 100644
index 0000000..43717b4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZ.java
@@ -0,0 +1,53 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.z;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Z</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ#getY <em>Y</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage#getZ()
+ * @model
+ * @generated
+ */
+public interface EdaptTestZ extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Y</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Y</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Y</em>' reference.
+	 * @see #setY(EdaptTestY)
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage#getZ_Y()
+	 * @model
+	 * @generated
+	 */
+	EdaptTestY getY();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ#getY <em>Y</em>}'
+	 * reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @param value the new value of the '<em>Y</em>' reference.
+	 * @see #getY()
+	 * @generated
+	 */
+	void setY(EdaptTestY value);
+
+} // EdaptTestZ
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZFactory.java
new file mode 100644
index 0000000..81a7e0f
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZFactory.java
@@ -0,0 +1,46 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.z;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * 
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage
+ * @generated
+ */
+public interface EdaptTestZFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	EdaptTestZFactory eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Z</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return a new object of class '<em>Z</em>'.
+	 * @generated
+	 */
+	EdaptTestZ createZ();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	EdaptTestZPackage getZPackage();
+
+} // EdaptTestZFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZPackage.java
new file mode 100644
index 0000000..84eb3b3
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZPackage.java
@@ -0,0 +1,178 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.z;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * 
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface EdaptTestZPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNAME = "z";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_URI = "http://example.org/z";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_PREFIX = "z";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	EdaptTestZPackage eINSTANCE = org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZImpl
+	 * <em>Z</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZImpl
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl#getZ()
+	 * @generated
+	 */
+	int Z = 0;
+
+	/**
+	 * The feature id for the '<em><b>Y</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int Z__Y = 0;
+
+	/**
+	 * The number of structural features of the '<em>Z</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int Z_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Z</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int Z_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ <em>Z</em>}
+	 * '.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for class '<em>Z</em>'.
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ
+	 * @generated
+	 */
+	EClass getZ();
+
+	/**
+	 * Returns the meta object for the reference '
+	 * {@link org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ#getY <em>Y</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the reference '<em>Y</em>'.
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ#getY()
+	 * @see #getZ()
+	 * @generated
+	 */
+	EReference getZ_Y();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	EdaptTestZFactory getZFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 * <li>each class,</li>
+	 * <li>each feature of each class,</li>
+	 * <li>each operation of each class,</li>
+	 * <li>each enum,</li>
+	 * <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZImpl
+		 * <em>Z</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * 
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZImpl
+		 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZPackageImpl#getZ()
+		 * @generated
+		 */
+		EClass Z = eINSTANCE.getZ();
+
+		/**
+		 * The meta object literal for the '<em><b>Y</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EReference Z__Y = eINSTANCE.getZ_Y();
+
+	}
+
+} // EdaptTestZPackage
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZFactoryImpl.java
new file mode 100644
index 0000000..8d08d94
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZFactoryImpl.java
@@ -0,0 +1,104 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestZFactoryImpl extends EFactoryImpl implements EdaptTestZFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static EdaptTestZFactory init() {
+		try {
+			final EdaptTestZFactory theZFactory = (EdaptTestZFactory) EPackage.Registry.INSTANCE
+				.getEFactory(EdaptTestZPackage.eNS_URI);
+			if (theZFactory != null) {
+				return theZFactory;
+			}
+		} catch (final Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new EdaptTestZFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EdaptTestZFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case EdaptTestZPackage.Z:
+			return createZ();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestZ createZ() {
+		final EdaptTestZImpl z = new EdaptTestZImpl();
+		return z;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestZPackage getZPackage() {
+		return (EdaptTestZPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static EdaptTestZPackage getPackage() {
+		return EdaptTestZPackage.eINSTANCE;
+	}
+
+} // EdaptTestZFactoryImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZImpl.java
new file mode 100644
index 0000000..ccfba14
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZImpl.java
@@ -0,0 +1,170 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Z</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZImpl#getY <em>Y</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EdaptTestZImpl extends MinimalEObjectImpl.Container implements EdaptTestZ {
+	/**
+	 * The cached value of the '{@link #getY() <em>Y</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected EdaptTestY y;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected EdaptTestZImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return EdaptTestZPackage.Literals.Z;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestY getY() {
+		if (y != null && y.eIsProxy()) {
+			final InternalEObject oldY = (InternalEObject) y;
+			y = (EdaptTestY) eResolveProxy(oldY);
+			if (y != oldY) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, EdaptTestZPackage.Z__Y, oldY, y));
+				}
+			}
+		}
+		return y;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EdaptTestY basicGetY() {
+		return y;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void setY(EdaptTestY newY) {
+		final EdaptTestY oldY = y;
+		y = newY;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, EdaptTestZPackage.Z__Y, oldY, y));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case EdaptTestZPackage.Z__Y:
+			if (resolve) {
+				return getY();
+			}
+			return basicGetY();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case EdaptTestZPackage.Z__Y:
+			setY((EdaptTestY) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case EdaptTestZPackage.Z__Y:
+			setY((EdaptTestY) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case EdaptTestZPackage.Z__Y:
+			return y != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // EdaptTestZImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZPackageImpl.java
new file mode 100644
index 0000000..17238c5
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZPackageImpl.java
@@ -0,0 +1,266 @@
+/**
+ */
+package org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl.EdaptTestAPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYPackageImpl;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZFactory;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class EdaptTestZPackageImpl extends EPackageImpl implements EdaptTestZPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass zEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private EdaptTestZPackageImpl() {
+		super(eNS_URI, EdaptTestZFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link EdaptTestZPackage#eINSTANCE} when that field is accessed. Clients should
+	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static EdaptTestZPackage init() {
+		if (isInited) {
+			return (EdaptTestZPackage) EPackage.Registry.INSTANCE.getEPackage(EdaptTestZPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
+			.get(eNS_URI)
+			: new EdaptTestZPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theZPackage.createPackageContents();
+		theAPackage.createPackageContents();
+		theBPackage.createPackageContents();
+		theCPackage.createPackageContents();
+		theDPackage.createPackageContents();
+		theEPackage.createPackageContents();
+		theFPackage.createPackageContents();
+		theWPackage.createPackageContents();
+		theXPackage.createPackageContents();
+		theYPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theZPackage.initializePackageContents();
+		theAPackage.initializePackageContents();
+		theBPackage.initializePackageContents();
+		theCPackage.initializePackageContents();
+		theDPackage.initializePackageContents();
+		theEPackage.initializePackageContents();
+		theFPackage.initializePackageContents();
+		theWPackage.initializePackageContents();
+		theXPackage.initializePackageContents();
+		theYPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theZPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(EdaptTestZPackage.eNS_URI, theZPackage);
+		return theZPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EClass getZ() {
+		return zEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getZ_Y() {
+		return (EReference) zEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EdaptTestZFactory getZFactory() {
+		return (EdaptTestZFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		zEClass = createEClass(Z);
+		createEReference(zEClass, Z__Y);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		final EdaptTestYPackage theYPackage = (EdaptTestYPackage) EPackage.Registry.INSTANCE
+			.getEPackage(EdaptTestYPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(zEClass, EdaptTestZ.class, "Z", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getZ_Y(), theYPackage.getY(), null, "y", null, 0, 1, EdaptTestZ.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // EdaptTestZPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZAdapterFactory.java
similarity index 76%
copy from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java
copy to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZAdapterFactory.java
index d0646ff..53534aa 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EEAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZAdapterFactory.java
@@ -1,13 +1,13 @@
 /**
  */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;
+package org.eclipse.emf.ecp.view.edapt.util.test.model.z.util;
 
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -15,10 +15,10 @@
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage
  * @generated
  */
-public class EEAdapterFactory extends AdapterFactoryImpl {
+public class ZAdapterFactory extends AdapterFactoryImpl {
 	/**
 	 * The cached model package.
 	 * <!-- begin-user-doc -->
@@ -26,7 +26,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static EEPackage modelPackage;
+	protected static EdaptTestZPackage modelPackage;
 
 	/**
 	 * Creates an instance of the adapter factory.
@@ -35,9 +35,9 @@
 	 * 
 	 * @generated
 	 */
-	public EEAdapterFactory() {
+	public ZAdapterFactory() {
 		if (modelPackage == null) {
-			modelPackage = EEPackage.eINSTANCE;
+			modelPackage = EdaptTestZPackage.eINSTANCE;
 		}
 	}
 
@@ -69,11 +69,11 @@
 	 * 
 	 * @generated
 	 */
-	protected EESwitch<Adapter> modelSwitch =
-		new EESwitch<Adapter>() {
+	protected ZSwitch<Adapter> modelSwitch =
+		new ZSwitch<Adapter>() {
 			@Override
-			public Adapter caseE(E object) {
-				return createEAdapter();
+			public Adapter caseZ(EdaptTestZ object) {
+				return createZAdapter();
 			}
 
 			@Override
@@ -97,18 +97,18 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.E
-	 * <em>E</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ
+	 * <em>Z</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * 
 	 * @return the new adapter.
-	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.E
+	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ
 	 * @generated
 	 */
-	public Adapter createEAdapter() {
+	public Adapter createZAdapter() {
 		return null;
 	}
 
@@ -125,4 +125,4 @@
 		return null;
 	}
 
-} // EEAdapterFactory
+} // ZAdapterFactory
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZSwitch.java
similarity index 81%
copy from tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java
copy to tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZSwitch.java
index a01c5ee..aae577e 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EESwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZSwitch.java
@@ -1,12 +1,12 @@
 /**
  */
-package org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;
+package org.eclipse.emf.ecp.view.edapt.util.test.model.z.util;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.E;
-import org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ;
+import org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,10 +19,10 @@
  * which is the result of the switch.
  * <!-- end-user-doc -->
  * 
- * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EEPackage
+ * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage
  * @generated
  */
-public class EESwitch<T> extends Switch<T> {
+public class ZSwitch<T> extends Switch<T> {
 	/**
 	 * The cached model package
 	 * <!-- begin-user-doc -->
@@ -30,7 +30,7 @@
 	 * 
 	 * @generated
 	 */
-	protected static EEPackage modelPackage;
+	protected static EdaptTestZPackage modelPackage;
 
 	/**
 	 * Creates an instance of the switch.
@@ -39,9 +39,9 @@
 	 * 
 	 * @generated
 	 */
-	public EESwitch() {
+	public ZSwitch() {
 		if (modelPackage == null) {
-			modelPackage = EEPackage.eINSTANCE;
+			modelPackage = EdaptTestZPackage.eINSTANCE;
 		}
 	}
 
@@ -71,9 +71,9 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-		case EEPackage.E: {
-			final E e = (E) theEObject;
-			T result = caseE(e);
+		case EdaptTestZPackage.Z: {
+			final EdaptTestZ z = (EdaptTestZ) theEObject;
+			T result = caseZ(z);
 			if (result == null) {
 				result = defaultCase(theEObject);
 			}
@@ -85,18 +85,18 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>E</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Z</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * 
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>E</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Z</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseE(E object) {
+	public T caseZ(EdaptTestZ object) {
 		return null;
 	}
 
@@ -117,4 +117,4 @@
 		return null;
 	}
 
-} // EESwitch
+} // ZSwitch
diff --git a/tests/org.eclipse.emf.ecp.view.ui.editor.test/src/org/eclipse/emf/ecp/view/ui/editor/test/AllUITests.java b/tests/org.eclipse.emf.ecp.view.ui.editor.test/src/org/eclipse/emf/ecp/view/ui/editor/test/AllUITests.java
index 2ae7473..feda5d3 100644
--- a/tests/org.eclipse.emf.ecp.view.ui.editor.test/src/org/eclipse/emf/ecp/view/ui/editor/test/AllUITests.java
+++ b/tests/org.eclipse.emf.ecp.view.ui.editor.test/src/org/eclipse/emf/ecp/view/ui/editor/test/AllUITests.java
@@ -11,9 +11,6 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.ui.editor.test;
 
-import org.eclipse.emf.ecp.view.ui.editor.test.controls.ControlsSWTBot_PTest;
-import org.eclipse.emf.ecp.view.ui.editor.test.controls.TableControlSWTBot_PTest;
-import org.eclipse.emf.ecp.view.ui.editor.test.controls.XmlDateControlSWTBotPTest;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 
@@ -23,13 +20,13 @@
  */
 @RunWith(Suite.class)
 @Suite.SuiteClasses({
-	OpenEditor_PTest.class,
-	// ModifyNavigatorTest.class,
-	DynamicContainmentTreeSWTBot_PTest.class,
-	ControlsSWTBot_PTest.class,
-	TableControlSWTBot_PTest.class,
-	XmlDateControlSWTBotPTest.class,
-	CellReadOnly_PTest.class
+	OpenEditor_PTest.class // ,
+// ModifyNavigatorTest.class,
+// DynamicContainmentTreeSWTBot_PTest.class,
+// ControlsSWTBot_PTest.class,
+// TableControlSWTBot_PTest.class,
+// XmlDateControlSWTBotPTest.class,
+// CellReadOnly_PTest.class
 })
 public class AllUITests {