Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2011-04-13 14:32:43 +0000
committerEike Stepper2011-04-13 14:32:43 +0000
commitca4f56dc35173cd60e9e713c012383b441fac82e (patch)
treec547d0a7f7e3294164934300e524c076245384a8 /plugins/org.eclipse.emf.cdo.tests.model6
parenta56c7d7dbb56ec9a48becf0851c1698cb78ce5ee (diff)
downloadcdo-ca4f56dc35173cd60e9e713c012383b441fac82e.tar.gz
cdo-ca4f56dc35173cd60e9e713c012383b441fac82e.tar.xz
cdo-ca4f56dc35173cd60e9e713c012383b441fac82e.zip
[341469] Make CDOMergingConflictResolver stable
https://bugs.eclipse.org/bugs/show_bug.cgi?id=341469
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests.model6')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/.classpath7
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/.project28
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/META-INF/CDO.MF1
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/META-INF/MANIFEST.MF36
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/about.html28
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/build.properties21
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/copyright.txt8
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/model/model6.ecore34
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/model/model6.genmodel36
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/model/model6.legacy.genmodel34
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/plugin.properties11
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/plugin.xml24
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/Model6Factory.java88
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/Model6Package.java505
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/BaseObjectImpl.java288
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/ContainmentObjectImpl.java258
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/Model6FactoryImpl.java150
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/Model6PackageImpl.java425
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/ReferenceObjectImpl.java221
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/RootImpl.java278
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/util/Model6AdapterFactory.java199
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/util/Model6Switch.java226
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/BaseObject.java104
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/ContainmentObject.java75
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Model6Factory.java78
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Model6Package.java616
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/ReferenceObject.java75
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Root.java101
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/BaseObjectImpl.java118
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/ContainmentObjectImpl.java89
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/Model6FactoryImpl.java141
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/Model6PackageImpl.java417
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/ReferenceObjectImpl.java88
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/RootImpl.java113
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/util/Model6AdapterFactory.java184
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/util/Model6Switch.java203
36 files changed, 5308 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/.classpath b/plugins/org.eclipse.emf.cdo.tests.model6/.classpath
new file mode 100644
index 0000000000..2d1a4302f0
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/.project b/plugins/org.eclipse.emf.cdo.tests.model6/.project
new file mode 100644
index 0000000000..3da770e40f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.cdo.tests.model6</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/META-INF/CDO.MF b/plugins/org.eclipse.emf.cdo.tests.model6/META-INF/CDO.MF
new file mode 100644
index 0000000000..bbfa1b0550
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/META-INF/CDO.MF
@@ -0,0 +1 @@
+This is a marker file for bundles with CDO native models.
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.tests.model6/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..1e49ed0cf4
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/META-INF/MANIFEST.MF
@@ -0,0 +1,36 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.cdo.tests.model6;singleton:=true
+Bundle-Version: 4.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.cdo.tests.legacy.model6;version="4.0.0";uses:="org.eclipse.emf.ecore,org.eclipse.emf.common.util",
+ org.eclipse.emf.cdo.tests.legacy.model6.impl;version="4.0.0";
+ uses:="org.eclipse.emf.ecore,
+ org.eclipse.emf.common.util,
+ org.eclipse.emf.cdo.tests.legacy.model6,
+ org.eclipse.emf.common.notify,
+ org.eclipse.emf.ecore.impl",
+ org.eclipse.emf.cdo.tests.legacy.model6.util;version="4.0.0";
+ uses:="org.eclipse.emf.ecore,
+ org.eclipse.emf.common.notify.impl,
+ org.eclipse.emf.cdo.tests.legacy.model6,
+ org.eclipse.emf.common.notify",
+ org.eclipse.emf.cdo.tests.model6;version="4.0.0";uses:="org.eclipse.emf.ecore,org.eclipse.emf.common.util",
+ org.eclipse.emf.cdo.tests.model6.impl;version="4.0.0";
+ uses:="org.eclipse.emf.ecore,
+ org.eclipse.emf.common.util,
+ org.eclipse.emf.internal.cdo,
+ org.eclipse.emf.ecore.impl,
+ org.eclipse.emf.cdo.tests.model6",
+ org.eclipse.emf.cdo.tests.model6.util;version="4.0.0";
+ uses:="org.eclipse.emf.ecore,
+ org.eclipse.emf.common.notify.impl,
+ org.eclipse.emf.cdo.tests.model6,
+ org.eclipse.emf.common.notify"
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.cdo;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/about.html b/plugins/org.eclipse.emf.cdo.tests.model6/about.html
new file mode 100644
index 0000000000..d35d5aed64
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/build.properties b/plugins/org.eclipse.emf.cdo.tests.model6/build.properties
new file mode 100644
index 0000000000..c8c1de3287
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/build.properties
@@ -0,0 +1,21 @@
+# Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+# Eike Stepper - initial API and implementation
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html,\
+ copyright.txt
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html,\
+ copyright.txt
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/copyright.txt b/plugins/org.eclipse.emf.cdo.tests.model6/copyright.txt
new file mode 100644
index 0000000000..e921242cf0
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/copyright.txt
@@ -0,0 +1,8 @@
+Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ Eike Stepper - initial API and implementation \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/model/model6.ecore b/plugins/org.eclipse.emf.cdo.tests.model6/model/model6.ecore
new file mode 100644
index 0000000000..5a36dbbee0
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/model/model6.ecore
@@ -0,0 +1,34 @@
+<?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="model6"
+ nsURI="http://www.eclipse.org/emf/CDO/tests/model6/1.0.0" nsPrefix="model6">
+ <eClassifiers xsi:type="ecore:EClass" name="Root">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="listA" upperBound="-1"
+ eType="#//BaseObject" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="listB" upperBound="-1"
+ eType="#//BaseObject" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="listC" upperBound="-1"
+ eType="#//BaseObject" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="listD" upperBound="-1"
+ eType="#//BaseObject" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BaseObject">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="attributeOptional" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="attributeRequired" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="attributeList" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReferenceObject" eSuperTypes="#//BaseObject">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="referenceOptional" eType="#//BaseObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="referenceList" upperBound="-1"
+ eType="#//BaseObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ContainmentObject" eSuperTypes="#//BaseObject">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentOptional" eType="#//BaseObject"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentList" upperBound="-1"
+ eType="#//BaseObject" containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/model/model6.genmodel b/plugins/org.eclipse.emf.cdo.tests.model6/model/model6.genmodel
new file mode 100644
index 0000000000..daa9902c98
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/model/model6.genmodel
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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" copyrightText="Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA; Eike Stepper - initial API and implementation"
+ modelDirectory="/org.eclipse.emf.cdo.tests.model6/src" editDirectory="" editorDirectory=""
+ modelPluginID="org.eclipse.emf.cdo.tests.model6" modelName="model6" editPluginClass="org.eclipse.emf.cdo.tests.model6.provider.Model6EditPlugin"
+ editorPluginClass="org.eclipse.emf.cdo.tests.model6.presentation.Model6EditorPlugin"
+ updateClasspath="false" rootExtendsClass="org.eclipse.emf.internal.cdo.CDOObjectImpl"
+ reflectiveDelegation="true" codeFormatting="true" testsDirectory="" testSuiteClass="org.eclipse.emf.cdo.tests.model6.tests.model6AllTests"
+ importerID="org.eclipse.emf.importer.cdo" featureDelegation="Reflective" complianceLevel="5.0"
+ copyrightFields="false" editPluginID="org.eclipse.emf.cdo.tests.model6.edit">
+ <foreignModel>model6.ecore</foreignModel>
+ <modelPluginVariables>CDO=org.eclipse.emf.cdo</modelPluginVariables>
+ <genPackages prefix="Model6" basePackage="org.eclipse.emf.cdo.tests" disposableProviderFactory="true"
+ ecorePackage="model6.ecore#/">
+ <genClasses ecoreClass="model6.ecore#//Root">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//Root/listA"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//Root/listB"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//Root/listC"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//Root/listD"/>
+ </genClasses>
+ <genClasses ecoreClass="model6.ecore#//BaseObject">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model6.ecore#//BaseObject/attributeOptional"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model6.ecore#//BaseObject/attributeRequired"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model6.ecore#//BaseObject/attributeList"/>
+ </genClasses>
+ <genClasses ecoreClass="model6.ecore#//ReferenceObject">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model6.ecore#//ReferenceObject/referenceOptional"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model6.ecore#//ReferenceObject/referenceList"/>
+ </genClasses>
+ <genClasses ecoreClass="model6.ecore#//ContainmentObject">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//ContainmentObject/containmentOptional"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//ContainmentObject/containmentList"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/model/model6.legacy.genmodel b/plugins/org.eclipse.emf.cdo.tests.model6/model/model6.legacy.genmodel
new file mode 100644
index 0000000000..d3f4231dc3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/model/model6.legacy.genmodel
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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" copyrightText="Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA; Eike Stepper - initial API and implementation"
+ modelDirectory="/org.eclipse.emf.cdo.tests.model6/src" editDirectory="" editorDirectory=""
+ modelPluginID="org.eclipse.emf.cdo.tests.model6" modelName="model6" updateClasspath="false"
+ codeFormatting="true" testsDirectory="" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="5.0" providerRootExtendsClass="">
+ <foreignModel>model6.ecore</foreignModel>
+ <modelPluginVariables>CDO=org.eclipse.emf.cdo</modelPluginVariables>
+ <genPackages prefix="Model6" basePackage="org.eclipse.emf.cdo.tests.legacy" disposableProviderFactory="true"
+ literalsInterface="false" extensibleProviderFactory="true" childCreationExtenders="true"
+ ecorePackage="model6.ecore#/">
+ <genClasses ecoreClass="model6.ecore#//Root">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//Root/listA"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//Root/listB"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//Root/listC"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//Root/listD"/>
+ </genClasses>
+ <genClasses ecoreClass="model6.ecore#//BaseObject">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model6.ecore#//BaseObject/attributeOptional"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model6.ecore#//BaseObject/attributeRequired"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model6.ecore#//BaseObject/attributeList"/>
+ </genClasses>
+ <genClasses ecoreClass="model6.ecore#//ReferenceObject">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model6.ecore#//ReferenceObject/referenceOptional"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model6.ecore#//ReferenceObject/referenceList"/>
+ </genClasses>
+ <genClasses ecoreClass="model6.ecore#//ContainmentObject">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//ContainmentObject/containmentOptional"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model6.ecore#//ContainmentObject/containmentList"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/plugin.properties b/plugins/org.eclipse.emf.cdo.tests.model6/plugin.properties
new file mode 100644
index 0000000000..70c680fdd8
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/plugin.properties
@@ -0,0 +1,11 @@
+# Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+# Eike Stepper - initial API and implementation
+
+pluginName = CDO Model Repository Tests Model6
+providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/plugin.xml b/plugins/org.eclipse.emf.cdo.tests.model6/plugin.xml
new file mode 100644
index 0000000000..4c808ba74e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/plugin.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ Eike Stepper - initial API and implementation
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/emf/CDO/tests/model6/1.0.0"
+ class="org.eclipse.emf.cdo.tests.model6.Model6Package"
+ genModel="model/model6.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/Model6Factory.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/Model6Factory.java
new file mode 100644
index 0000000000..f8c27e51b2
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/Model6Factory.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.legacy.model6;
+
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.ContainmentObject;
+import org.eclipse.emf.cdo.tests.model6.ReferenceObject;
+import org.eclipse.emf.cdo.tests.model6.Root;
+
+/**
+ * <!-- 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.cdo.tests.legacy.model6.Model6Package
+ * @generated
+ */
+public interface Model6Factory extends
+ org.eclipse.emf.cdo.tests.model6.Model6Factory {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String copyright = "Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n Eike Stepper - initial API and implementation";
+
+ /**
+ * The singleton instance of the factory. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ Model6Factory eINSTANCE = org.eclipse.emf.cdo.tests.legacy.model6.impl.Model6FactoryImpl
+ .init();
+
+ /**
+ * Returns a new object of class '<em>Root</em>'. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Root</em>'.
+ * @generated
+ */
+ Root createRoot();
+
+ /**
+ * Returns a new object of class '<em>Base Object</em>'. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Base Object</em>'.
+ * @generated
+ */
+ BaseObject createBaseObject();
+
+ /**
+ * Returns a new object of class '<em>Reference Object</em>'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Reference Object</em>'.
+ * @generated
+ */
+ ReferenceObject createReferenceObject();
+
+ /**
+ * Returns a new object of class '<em>Containment Object</em>'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Containment Object</em>'.
+ * @generated
+ */
+ ContainmentObject createContainmentObject();
+
+ /**
+ * Returns the package supported by this factory. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Model6Package getModel6Package();
+
+} // Model6Factory
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/Model6Package.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/Model6Package.java
new file mode 100644
index 0000000000..a045b42cd4
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/Model6Package.java
@@ -0,0 +1,505 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.legacy.model6;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.Model6Factory
+ * @model kind="package"
+ * @generated
+ */
+public interface Model6Package extends
+ org.eclipse.emf.cdo.tests.model6.Model6Package {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String copyright = "Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n Eike Stepper - initial API and implementation";
+
+ /**
+ * The package name. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNAME = "model6";
+
+ /**
+ * The package namespace URI. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/CDO/tests/model6/1.0.0";
+
+ /**
+ * The package namespace name. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "model6";
+
+ /**
+ * The singleton instance of the package. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ Model6Package eINSTANCE = org.eclipse.emf.cdo.tests.legacy.model6.impl.Model6PackageImpl
+ .init();
+
+ /**
+ * The meta object id for the '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.impl.RootImpl
+ * <em>Root</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.impl.RootImpl
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.impl.Model6PackageImpl#getRoot()
+ * @generated
+ */
+ int ROOT = 0;
+
+ /**
+ * The feature id for the '<em><b>List A</b></em>' containment reference
+ * list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ROOT__LIST_A = 0;
+
+ /**
+ * The feature id for the '<em><b>List B</b></em>' containment reference
+ * list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ROOT__LIST_B = 1;
+
+ /**
+ * The feature id for the '<em><b>List C</b></em>' containment reference
+ * list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ROOT__LIST_C = 2;
+
+ /**
+ * The feature id for the '<em><b>List D</b></em>' containment reference
+ * list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ROOT__LIST_D = 3;
+
+ /**
+ * The number of structural features of the '<em>Root</em>' class. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ROOT_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.impl.BaseObjectImpl
+ * <em>Base Object</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.impl.BaseObjectImpl
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.impl.Model6PackageImpl#getBaseObject()
+ * @generated
+ */
+ int BASE_OBJECT = 1;
+
+ /**
+ * The feature id for the '<em><b>Attribute Optional</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BASE_OBJECT__ATTRIBUTE_OPTIONAL = 0;
+
+ /**
+ * The feature id for the '<em><b>Attribute Required</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BASE_OBJECT__ATTRIBUTE_REQUIRED = 1;
+
+ /**
+ * The feature id for the '<em><b>Attribute List</b></em>' attribute list.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BASE_OBJECT__ATTRIBUTE_LIST = 2;
+
+ /**
+ * The number of structural features of the '<em>Base Object</em>' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BASE_OBJECT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.impl.ReferenceObjectImpl
+ * <em>Reference Object</em>}' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.impl.ReferenceObjectImpl
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.impl.Model6PackageImpl#getReferenceObject()
+ * @generated
+ */
+ int REFERENCE_OBJECT = 2;
+
+ /**
+ * The feature id for the '<em><b>Attribute Optional</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT__ATTRIBUTE_OPTIONAL = BASE_OBJECT__ATTRIBUTE_OPTIONAL;
+
+ /**
+ * The feature id for the '<em><b>Attribute Required</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT__ATTRIBUTE_REQUIRED = BASE_OBJECT__ATTRIBUTE_REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Attribute List</b></em>' attribute list.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT__ATTRIBUTE_LIST = BASE_OBJECT__ATTRIBUTE_LIST;
+
+ /**
+ * The feature id for the '<em><b>Reference Optional</b></em>' reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT__REFERENCE_OPTIONAL = BASE_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Reference List</b></em>' reference list.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT__REFERENCE_LIST = BASE_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Reference Object</em>'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.impl.ContainmentObjectImpl
+ * <em>Containment Object</em>}' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.impl.ContainmentObjectImpl
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.impl.Model6PackageImpl#getContainmentObject()
+ * @generated
+ */
+ int CONTAINMENT_OBJECT = 3;
+
+ /**
+ * The feature id for the '<em><b>Attribute Optional</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT__ATTRIBUTE_OPTIONAL = BASE_OBJECT__ATTRIBUTE_OPTIONAL;
+
+ /**
+ * The feature id for the '<em><b>Attribute Required</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT__ATTRIBUTE_REQUIRED = BASE_OBJECT__ATTRIBUTE_REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Attribute List</b></em>' attribute list.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT__ATTRIBUTE_LIST = BASE_OBJECT__ATTRIBUTE_LIST;
+
+ /**
+ * The feature id for the '<em><b>Containment Optional</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL = BASE_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Containment List</b></em>' containment
+ * reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT__CONTAINMENT_LIST = BASE_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Containment Object</em>'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * Returns the meta object for class '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.Root <em>Root</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Root</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.Root
+ * @generated
+ */
+ EClass getRoot();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.Root#getListA
+ * <em>List A</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '
+ * <em>List A</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.Root#getListA()
+ * @see #getRoot()
+ * @generated
+ */
+ EReference getRoot_ListA();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.Root#getListB
+ * <em>List B</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '
+ * <em>List B</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.Root#getListB()
+ * @see #getRoot()
+ * @generated
+ */
+ EReference getRoot_ListB();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.Root#getListC
+ * <em>List C</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '
+ * <em>List C</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.Root#getListC()
+ * @see #getRoot()
+ * @generated
+ */
+ EReference getRoot_ListC();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.Root#getListD
+ * <em>List D</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '
+ * <em>List D</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.Root#getListD()
+ * @see #getRoot()
+ * @generated
+ */
+ EReference getRoot_ListD();
+
+ /**
+ * Returns the meta object for class '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.BaseObject
+ * <em>Base Object</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Base Object</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.BaseObject
+ * @generated
+ */
+ EClass getBaseObject();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.BaseObject#getAttributeOptional
+ * <em>Attribute Optional</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for the attribute '<em>Attribute Optional</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.BaseObject#getAttributeOptional()
+ * @see #getBaseObject()
+ * @generated
+ */
+ EAttribute getBaseObject_AttributeOptional();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.BaseObject#getAttributeRequired
+ * <em>Attribute Required</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for the attribute '<em>Attribute Required</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.BaseObject#getAttributeRequired()
+ * @see #getBaseObject()
+ * @generated
+ */
+ EAttribute getBaseObject_AttributeRequired();
+
+ /**
+ * Returns the meta object for the attribute list '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.BaseObject#getAttributeList
+ * <em>Attribute List</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute list '<em>Attribute List</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.BaseObject#getAttributeList()
+ * @see #getBaseObject()
+ * @generated
+ */
+ EAttribute getBaseObject_AttributeList();
+
+ /**
+ * Returns the meta object for class '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.ReferenceObject
+ * <em>Reference Object</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for class '<em>Reference Object</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.ReferenceObject
+ * @generated
+ */
+ EClass getReferenceObject();
+
+ /**
+ * Returns the meta object for the reference '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.ReferenceObject#getReferenceOptional
+ * <em>Reference Optional</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for the reference '<em>Reference Optional</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.ReferenceObject#getReferenceOptional()
+ * @see #getReferenceObject()
+ * @generated
+ */
+ EReference getReferenceObject_ReferenceOptional();
+
+ /**
+ * Returns the meta object for the reference list '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.ReferenceObject#getReferenceList
+ * <em>Reference List</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference list '<em>Reference List</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.ReferenceObject#getReferenceList()
+ * @see #getReferenceObject()
+ * @generated
+ */
+ EReference getReferenceObject_ReferenceList();
+
+ /**
+ * Returns the meta object for class '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.ContainmentObject
+ * <em>Containment Object</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for class '<em>Containment Object</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.ContainmentObject
+ * @generated
+ */
+ EClass getContainmentObject();
+
+ /**
+ * Returns the meta object for the containment reference '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.ContainmentObject#getContainmentOptional
+ * <em>Containment Optional</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for the containment reference '
+ * <em>Containment Optional</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.ContainmentObject#getContainmentOptional()
+ * @see #getContainmentObject()
+ * @generated
+ */
+ EReference getContainmentObject_ContainmentOptional();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.ContainmentObject#getContainmentList
+ * <em>Containment List</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for the containment reference list '
+ * <em>Containment List</em>'.
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.ContainmentObject#getContainmentList()
+ * @see #getContainmentObject()
+ * @generated
+ */
+ EReference getContainmentObject_ContainmentList();
+
+ /**
+ * 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
+ */
+ Model6Factory getModel6Factory();
+
+} // Model6Package
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/BaseObjectImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/BaseObjectImpl.java
new file mode 100644
index 0000000000..554d4f03ad
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/BaseObjectImpl.java
@@ -0,0 +1,288 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.legacy.model6.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.cdo.tests.legacy.model6.Model6Package;
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Base Object</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.impl.BaseObjectImpl#getAttributeOptional
+ * <em>Attribute Optional</em>}</li>
+ * <li>
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.impl.BaseObjectImpl#getAttributeRequired
+ * <em>Attribute Required</em>}</li>
+ * <li>
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.impl.BaseObjectImpl#getAttributeList
+ * <em>Attribute List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BaseObjectImpl extends EObjectImpl implements BaseObject {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n Eike Stepper - initial API and implementation";
+
+ /**
+ * The default value of the '{@link #getAttributeOptional()
+ * <em>Attribute Optional</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getAttributeOptional()
+ * @generated
+ * @ordered
+ */
+ protected static final String ATTRIBUTE_OPTIONAL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAttributeOptional()
+ * <em>Attribute Optional</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getAttributeOptional()
+ * @generated
+ * @ordered
+ */
+ protected String attributeOptional = ATTRIBUTE_OPTIONAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAttributeRequired()
+ * <em>Attribute Required</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getAttributeRequired()
+ * @generated
+ * @ordered
+ */
+ protected static final String ATTRIBUTE_REQUIRED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAttributeRequired()
+ * <em>Attribute Required</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getAttributeRequired()
+ * @generated
+ * @ordered
+ */
+ protected String attributeRequired = ATTRIBUTE_REQUIRED_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getAttributeList()
+ * <em>Attribute List</em>}' attribute list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getAttributeList()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> attributeList;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected BaseObjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Model6Package.eINSTANCE.getBaseObject();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getAttributeOptional() {
+ return attributeOptional;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setAttributeOptional(String newAttributeOptional) {
+ String oldAttributeOptional = attributeOptional;
+ attributeOptional = newAttributeOptional;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ Model6Package.BASE_OBJECT__ATTRIBUTE_OPTIONAL,
+ oldAttributeOptional, attributeOptional));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getAttributeRequired() {
+ return attributeRequired;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setAttributeRequired(String newAttributeRequired) {
+ String oldAttributeRequired = attributeRequired;
+ attributeRequired = newAttributeRequired;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ Model6Package.BASE_OBJECT__ATTRIBUTE_REQUIRED,
+ oldAttributeRequired, attributeRequired));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<String> getAttributeList() {
+ if (attributeList == null) {
+ attributeList = new EDataTypeUniqueEList<String>(String.class,
+ this, Model6Package.BASE_OBJECT__ATTRIBUTE_LIST);
+ }
+ return attributeList;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_OPTIONAL:
+ return getAttributeOptional();
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_REQUIRED:
+ return getAttributeRequired();
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_LIST:
+ return getAttributeList();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_OPTIONAL:
+ setAttributeOptional((String) newValue);
+ return;
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_REQUIRED:
+ setAttributeRequired((String) newValue);
+ return;
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_LIST:
+ getAttributeList().clear();
+ getAttributeList().addAll((Collection<? extends String>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_OPTIONAL:
+ setAttributeOptional(ATTRIBUTE_OPTIONAL_EDEFAULT);
+ return;
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_REQUIRED:
+ setAttributeRequired(ATTRIBUTE_REQUIRED_EDEFAULT);
+ return;
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_LIST:
+ getAttributeList().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_OPTIONAL:
+ return ATTRIBUTE_OPTIONAL_EDEFAULT == null ? attributeOptional != null
+ : !ATTRIBUTE_OPTIONAL_EDEFAULT.equals(attributeOptional);
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_REQUIRED:
+ return ATTRIBUTE_REQUIRED_EDEFAULT == null ? attributeRequired != null
+ : !ATTRIBUTE_REQUIRED_EDEFAULT.equals(attributeRequired);
+ case Model6Package.BASE_OBJECT__ATTRIBUTE_LIST:
+ return attributeList != null && !attributeList.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (attributeOptional: ");
+ result.append(attributeOptional);
+ result.append(", attributeRequired: ");
+ result.append(attributeRequired);
+ result.append(", attributeList: ");
+ result.append(attributeList);
+ result.append(')');
+ return result.toString();
+ }
+
+} // BaseObjectImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/ContainmentObjectImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/ContainmentObjectImpl.java
new file mode 100644
index 0000000000..a083ba3040
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/ContainmentObjectImpl.java
@@ -0,0 +1,258 @@
+/**
+ * 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.legacy.model6.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.cdo.tests.legacy.model6.Model6Package;
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.ContainmentObject;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Containment Object</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.impl.ContainmentObjectImpl#getContainmentOptional
+ * <em>Containment Optional</em>}</li>
+ * <li>
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.impl.ContainmentObjectImpl#getContainmentList
+ * <em>Containment List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ContainmentObjectImpl extends BaseObjectImpl implements
+ ContainmentObject {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n Eike Stepper - initial API and implementation";
+
+ /**
+ * The cached value of the '{@link #getContainmentOptional()
+ * <em>Containment Optional</em>}' containment reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getContainmentOptional()
+ * @generated
+ * @ordered
+ */
+ protected BaseObject containmentOptional;
+
+ /**
+ * The cached value of the '{@link #getContainmentList()
+ * <em>Containment List</em>}' containment reference list. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getContainmentList()
+ * @generated
+ * @ordered
+ */
+ protected EList<BaseObject> containmentList;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ContainmentObjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Model6Package.eINSTANCE.getContainmentObject();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public BaseObject getContainmentOptional() {
+ return containmentOptional;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetContainmentOptional(
+ BaseObject newContainmentOptional, NotificationChain msgs) {
+ BaseObject oldContainmentOptional = containmentOptional;
+ containmentOptional = newContainmentOptional;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this,
+ Notification.SET,
+ Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL,
+ oldContainmentOptional, newContainmentOptional);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setContainmentOptional(BaseObject newContainmentOptional) {
+ if (newContainmentOptional != containmentOptional) {
+ NotificationChain msgs = null;
+ if (containmentOptional != null)
+ msgs = ((InternalEObject) containmentOptional)
+ .eInverseRemove(
+ this,
+ EOPPOSITE_FEATURE_BASE
+ - Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL,
+ null, msgs);
+ if (newContainmentOptional != null)
+ msgs = ((InternalEObject) newContainmentOptional)
+ .eInverseAdd(
+ this,
+ EOPPOSITE_FEATURE_BASE
+ - Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL,
+ null, msgs);
+ msgs = basicSetContainmentOptional(newContainmentOptional, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL,
+ newContainmentOptional, newContainmentOptional));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<BaseObject> getContainmentList() {
+ if (containmentList == null) {
+ containmentList = new EObjectContainmentEList<BaseObject>(
+ BaseObject.class, this,
+ Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_LIST);
+ }
+ return containmentList;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd,
+ int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL:
+ return basicSetContainmentOptional(null, msgs);
+ case Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_LIST:
+ return ((InternalEList<?>) getContainmentList()).basicRemove(
+ otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL:
+ return getContainmentOptional();
+ case Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_LIST:
+ return getContainmentList();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL:
+ setContainmentOptional((BaseObject) newValue);
+ return;
+ case Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_LIST:
+ getContainmentList().clear();
+ getContainmentList().addAll(
+ (Collection<? extends BaseObject>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL:
+ setContainmentOptional((BaseObject) null);
+ return;
+ case Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_LIST:
+ getContainmentList().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL:
+ return containmentOptional != null;
+ case Model6Package.CONTAINMENT_OBJECT__CONTAINMENT_LIST:
+ return containmentList != null && !containmentList.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ContainmentObjectImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/Model6FactoryImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/Model6FactoryImpl.java
new file mode 100644
index 0000000000..a53e914b36
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/Model6FactoryImpl.java
@@ -0,0 +1,150 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.legacy.model6.impl;
+
+import org.eclipse.emf.cdo.tests.legacy.model6.Model6Factory;
+import org.eclipse.emf.cdo.tests.legacy.model6.Model6Package;
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.ContainmentObject;
+import org.eclipse.emf.cdo.tests.model6.ReferenceObject;
+import org.eclipse.emf.cdo.tests.model6.Root;
+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;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class Model6FactoryImpl extends EFactoryImpl implements Model6Factory {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n Eike Stepper - initial API and implementation";
+
+ /**
+ * Creates the default factory implementation. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public static Model6Factory init() {
+ try {
+ Model6Factory theModel6Factory = (Model6Factory) EPackage.Registry.INSTANCE
+ .getEFactory("http://www.eclipse.org/emf/CDO/tests/model6/1.0.0");
+ if (theModel6Factory != null) {
+ return theModel6Factory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Model6FactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public Model6FactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Model6Package.ROOT:
+ return createRoot();
+ case Model6Package.BASE_OBJECT:
+ return createBaseObject();
+ case Model6Package.REFERENCE_OBJECT:
+ return createReferenceObject();
+ case Model6Package.CONTAINMENT_OBJECT:
+ return createContainmentObject();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName()
+ + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Root createRoot() {
+ RootImpl root = new RootImpl();
+ return root;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public BaseObject createBaseObject() {
+ BaseObjectImpl baseObject = new BaseObjectImpl();
+ return baseObject;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ReferenceObject createReferenceObject() {
+ ReferenceObjectImpl referenceObject = new ReferenceObjectImpl();
+ return referenceObject;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ContainmentObject createContainmentObject() {
+ ContainmentObjectImpl containmentObject = new ContainmentObjectImpl();
+ return containmentObject;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Model6Package getModel6Package() {
+ return (Model6Package) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Model6Package getPackage() {
+ return Model6Package.eINSTANCE;
+ }
+
+} // Model6FactoryImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/Model6PackageImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/Model6PackageImpl.java
new file mode 100644
index 0000000000..3ca97a41dc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/Model6PackageImpl.java
@@ -0,0 +1,425 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.legacy.model6.impl;
+
+import org.eclipse.emf.cdo.tests.legacy.model6.Model6Factory;
+import org.eclipse.emf.cdo.tests.legacy.model6.Model6Package;
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.ContainmentObject;
+import org.eclipse.emf.cdo.tests.model6.ReferenceObject;
+import org.eclipse.emf.cdo.tests.model6.Root;
+import org.eclipse.emf.ecore.EAttribute;
+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;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class Model6PackageImpl extends EPackageImpl implements Model6Package {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n Eike Stepper - initial API and implementation";
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass rootEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass baseObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass referenceObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass containmentObjectEClass = 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.cdo.tests.legacy.model6.Model6Package#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Model6PackageImpl() {
+ super(eNS_URI, Model6Factory.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 Model6Package#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 Model6Package init() {
+ if (isInited)
+ return (Model6Package) EPackage.Registry.INSTANCE
+ .getEPackage(Model6Package.eNS_URI);
+
+ // Obtain or create and register package
+ Model6PackageImpl theModel6Package = (Model6PackageImpl) (EPackage.Registry.INSTANCE
+ .get(eNS_URI) instanceof Model6PackageImpl ? EPackage.Registry.INSTANCE
+ .get(eNS_URI) : new Model6PackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theModel6Package.createPackageContents();
+
+ // Initialize created meta-data
+ theModel6Package.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theModel6Package.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Model6Package.eNS_URI, theModel6Package);
+ return theModel6Package;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getRoot() {
+ return rootEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getRoot_ListA() {
+ return (EReference) rootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getRoot_ListB() {
+ return (EReference) rootEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getRoot_ListC() {
+ return (EReference) rootEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getRoot_ListD() {
+ return (EReference) rootEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getBaseObject() {
+ return baseObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getBaseObject_AttributeOptional() {
+ return (EAttribute) baseObjectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getBaseObject_AttributeRequired() {
+ return (EAttribute) baseObjectEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getBaseObject_AttributeList() {
+ return (EAttribute) baseObjectEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getReferenceObject() {
+ return referenceObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getReferenceObject_ReferenceOptional() {
+ return (EReference) referenceObjectEClass.getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getReferenceObject_ReferenceList() {
+ return (EReference) referenceObjectEClass.getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getContainmentObject() {
+ return containmentObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getContainmentObject_ContainmentOptional() {
+ return (EReference) containmentObjectEClass.getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getContainmentObject_ContainmentList() {
+ return (EReference) containmentObjectEClass.getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Model6Factory getModel6Factory() {
+ return (Model6Factory) 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
+ rootEClass = createEClass(ROOT);
+ createEReference(rootEClass, ROOT__LIST_A);
+ createEReference(rootEClass, ROOT__LIST_B);
+ createEReference(rootEClass, ROOT__LIST_C);
+ createEReference(rootEClass, ROOT__LIST_D);
+
+ baseObjectEClass = createEClass(BASE_OBJECT);
+ createEAttribute(baseObjectEClass, BASE_OBJECT__ATTRIBUTE_OPTIONAL);
+ createEAttribute(baseObjectEClass, BASE_OBJECT__ATTRIBUTE_REQUIRED);
+ createEAttribute(baseObjectEClass, BASE_OBJECT__ATTRIBUTE_LIST);
+
+ referenceObjectEClass = createEClass(REFERENCE_OBJECT);
+ createEReference(referenceObjectEClass,
+ REFERENCE_OBJECT__REFERENCE_OPTIONAL);
+ createEReference(referenceObjectEClass,
+ REFERENCE_OBJECT__REFERENCE_LIST);
+
+ containmentObjectEClass = createEClass(CONTAINMENT_OBJECT);
+ createEReference(containmentObjectEClass,
+ CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL);
+ createEReference(containmentObjectEClass,
+ CONTAINMENT_OBJECT__CONTAINMENT_LIST);
+ }
+
+ /**
+ * <!-- 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
+ referenceObjectEClass.getESuperTypes().add(this.getBaseObject());
+ containmentObjectEClass.getESuperTypes().add(this.getBaseObject());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(rootEClass, Root.class, "Root", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRoot_ListA(), this.getBaseObject(), null, "listA",
+ null, 0, -1, Root.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRoot_ListB(), this.getBaseObject(), null, "listB",
+ null, 0, -1, Root.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRoot_ListC(), this.getBaseObject(), null, "listC",
+ null, 0, -1, Root.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRoot_ListD(), this.getBaseObject(), null, "listD",
+ null, 0, -1, Root.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(baseObjectEClass, BaseObject.class, "BaseObject",
+ !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBaseObject_AttributeOptional(),
+ ecorePackage.getEString(), "attributeOptional", null, 0, 1,
+ BaseObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBaseObject_AttributeRequired(),
+ ecorePackage.getEString(), "attributeRequired", null, 1, 1,
+ BaseObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBaseObject_AttributeList(),
+ ecorePackage.getEString(), "attributeList", null, 0, -1,
+ BaseObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(referenceObjectEClass, ReferenceObject.class,
+ "ReferenceObject", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getReferenceObject_ReferenceOptional(),
+ this.getBaseObject(), null, "referenceOptional", null, 0, 1,
+ ReferenceObject.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getReferenceObject_ReferenceList(),
+ this.getBaseObject(), null, "referenceList", null, 0, -1,
+ ReferenceObject.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(containmentObjectEClass, ContainmentObject.class,
+ "ContainmentObject", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getContainmentObject_ContainmentOptional(),
+ this.getBaseObject(), null, "containmentOptional", null, 0, 1,
+ ContainmentObject.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getContainmentObject_ContainmentList(),
+ this.getBaseObject(), null, "containmentList", null, 0, -1,
+ ContainmentObject.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);
+ }
+
+} // Model6PackageImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/ReferenceObjectImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/ReferenceObjectImpl.java
new file mode 100644
index 0000000000..0dbfadd757
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/ReferenceObjectImpl.java
@@ -0,0 +1,221 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.legacy.model6.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.cdo.tests.legacy.model6.Model6Package;
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.ReferenceObject;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Reference Object</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.impl.ReferenceObjectImpl#getReferenceOptional
+ * <em>Reference Optional</em>}</li>
+ * <li>
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.impl.ReferenceObjectImpl#getReferenceList
+ * <em>Reference List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReferenceObjectImpl extends BaseObjectImpl implements
+ ReferenceObject {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n Eike Stepper - initial API and implementation";
+
+ /**
+ * The cached value of the '{@link #getReferenceOptional()
+ * <em>Reference Optional</em>}' reference. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getReferenceOptional()
+ * @generated
+ * @ordered
+ */
+ protected BaseObject referenceOptional;
+
+ /**
+ * The cached value of the '{@link #getReferenceList()
+ * <em>Reference List</em>}' reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getReferenceList()
+ * @generated
+ * @ordered
+ */
+ protected EList<BaseObject> referenceList;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ReferenceObjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Model6Package.eINSTANCE.getReferenceObject();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public BaseObject getReferenceOptional() {
+ if (referenceOptional != null && referenceOptional.eIsProxy()) {
+ InternalEObject oldReferenceOptional = (InternalEObject) referenceOptional;
+ referenceOptional = (BaseObject) eResolveProxy(oldReferenceOptional);
+ if (referenceOptional != oldReferenceOptional) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ Model6Package.REFERENCE_OBJECT__REFERENCE_OPTIONAL,
+ oldReferenceOptional, referenceOptional));
+ }
+ }
+ return referenceOptional;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public BaseObject basicGetReferenceOptional() {
+ return referenceOptional;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setReferenceOptional(BaseObject newReferenceOptional) {
+ BaseObject oldReferenceOptional = referenceOptional;
+ referenceOptional = newReferenceOptional;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ Model6Package.REFERENCE_OBJECT__REFERENCE_OPTIONAL,
+ oldReferenceOptional, referenceOptional));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<BaseObject> getReferenceList() {
+ if (referenceList == null) {
+ referenceList = new EObjectResolvingEList<BaseObject>(
+ BaseObject.class, this,
+ Model6Package.REFERENCE_OBJECT__REFERENCE_LIST);
+ }
+ return referenceList;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Model6Package.REFERENCE_OBJECT__REFERENCE_OPTIONAL:
+ if (resolve)
+ return getReferenceOptional();
+ return basicGetReferenceOptional();
+ case Model6Package.REFERENCE_OBJECT__REFERENCE_LIST:
+ return getReferenceList();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Model6Package.REFERENCE_OBJECT__REFERENCE_OPTIONAL:
+ setReferenceOptional((BaseObject) newValue);
+ return;
+ case Model6Package.REFERENCE_OBJECT__REFERENCE_LIST:
+ getReferenceList().clear();
+ getReferenceList().addAll(
+ (Collection<? extends BaseObject>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Model6Package.REFERENCE_OBJECT__REFERENCE_OPTIONAL:
+ setReferenceOptional((BaseObject) null);
+ return;
+ case Model6Package.REFERENCE_OBJECT__REFERENCE_LIST:
+ getReferenceList().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Model6Package.REFERENCE_OBJECT__REFERENCE_OPTIONAL:
+ return referenceOptional != null;
+ case Model6Package.REFERENCE_OBJECT__REFERENCE_LIST:
+ return referenceList != null && !referenceList.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ReferenceObjectImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/RootImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/RootImpl.java
new file mode 100644
index 0000000000..3ceefee6f4
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/impl/RootImpl.java
@@ -0,0 +1,278 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.legacy.model6.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.cdo.tests.legacy.model6.Model6Package;
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.Root;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Root</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.tests.legacy.model6.impl.RootImpl#getListA
+ * <em>List A</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.legacy.model6.impl.RootImpl#getListB
+ * <em>List B</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.legacy.model6.impl.RootImpl#getListC
+ * <em>List C</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.legacy.model6.impl.RootImpl#getListD
+ * <em>List D</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RootImpl extends EObjectImpl implements Root {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n Eike Stepper - initial API and implementation";
+
+ /**
+ * The cached value of the '{@link #getListA() <em>List A</em>}' containment
+ * reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getListA()
+ * @generated
+ * @ordered
+ */
+ protected EList<BaseObject> listA;
+
+ /**
+ * The cached value of the '{@link #getListB() <em>List B</em>}' containment
+ * reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getListB()
+ * @generated
+ * @ordered
+ */
+ protected EList<BaseObject> listB;
+
+ /**
+ * The cached value of the '{@link #getListC() <em>List C</em>}' containment
+ * reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getListC()
+ * @generated
+ * @ordered
+ */
+ protected EList<BaseObject> listC;
+
+ /**
+ * The cached value of the '{@link #getListD() <em>List D</em>}' containment
+ * reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getListD()
+ * @generated
+ * @ordered
+ */
+ protected EList<BaseObject> listD;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected RootImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Model6Package.eINSTANCE.getRoot();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<BaseObject> getListA() {
+ if (listA == null) {
+ listA = new EObjectContainmentEList<BaseObject>(BaseObject.class,
+ this, Model6Package.ROOT__LIST_A);
+ }
+ return listA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<BaseObject> getListB() {
+ if (listB == null) {
+ listB = new EObjectContainmentEList<BaseObject>(BaseObject.class,
+ this, Model6Package.ROOT__LIST_B);
+ }
+ return listB;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<BaseObject> getListC() {
+ if (listC == null) {
+ listC = new EObjectContainmentEList<BaseObject>(BaseObject.class,
+ this, Model6Package.ROOT__LIST_C);
+ }
+ return listC;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<BaseObject> getListD() {
+ if (listD == null) {
+ listD = new EObjectContainmentEList<BaseObject>(BaseObject.class,
+ this, Model6Package.ROOT__LIST_D);
+ }
+ return listD;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd,
+ int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Model6Package.ROOT__LIST_A:
+ return ((InternalEList<?>) getListA()).basicRemove(otherEnd, msgs);
+ case Model6Package.ROOT__LIST_B:
+ return ((InternalEList<?>) getListB()).basicRemove(otherEnd, msgs);
+ case Model6Package.ROOT__LIST_C:
+ return ((InternalEList<?>) getListC()).basicRemove(otherEnd, msgs);
+ case Model6Package.ROOT__LIST_D:
+ return ((InternalEList<?>) getListD()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Model6Package.ROOT__LIST_A:
+ return getListA();
+ case Model6Package.ROOT__LIST_B:
+ return getListB();
+ case Model6Package.ROOT__LIST_C:
+ return getListC();
+ case Model6Package.ROOT__LIST_D:
+ return getListD();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Model6Package.ROOT__LIST_A:
+ getListA().clear();
+ getListA().addAll((Collection<? extends BaseObject>) newValue);
+ return;
+ case Model6Package.ROOT__LIST_B:
+ getListB().clear();
+ getListB().addAll((Collection<? extends BaseObject>) newValue);
+ return;
+ case Model6Package.ROOT__LIST_C:
+ getListC().clear();
+ getListC().addAll((Collection<? extends BaseObject>) newValue);
+ return;
+ case Model6Package.ROOT__LIST_D:
+ getListD().clear();
+ getListD().addAll((Collection<? extends BaseObject>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Model6Package.ROOT__LIST_A:
+ getListA().clear();
+ return;
+ case Model6Package.ROOT__LIST_B:
+ getListB().clear();
+ return;
+ case Model6Package.ROOT__LIST_C:
+ getListC().clear();
+ return;
+ case Model6Package.ROOT__LIST_D:
+ getListD().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Model6Package.ROOT__LIST_A:
+ return listA != null && !listA.isEmpty();
+ case Model6Package.ROOT__LIST_B:
+ return listB != null && !listB.isEmpty();
+ case Model6Package.ROOT__LIST_C:
+ return listC != null && !listC.isEmpty();
+ case Model6Package.ROOT__LIST_D:
+ return listD != null && !listD.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // RootImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/util/Model6AdapterFactory.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/util/Model6AdapterFactory.java
new file mode 100644
index 0000000000..098f7bdef3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/util/Model6AdapterFactory.java
@@ -0,0 +1,199 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.legacy.model6.util;
+
+import org.eclipse.emf.cdo.tests.legacy.model6.Model6Package;
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.ContainmentObject;
+import org.eclipse.emf.cdo.tests.model6.ReferenceObject;
+import org.eclipse.emf.cdo.tests.model6.Root;
+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;
+
+/**
+ * <!-- begin-user-doc --> The <b>Adapter Factory</b> for the model. It provides
+ * an adapter <code>createXXX</code> method for each class of the model. <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.Model6Package
+ * @generated
+ */
+public class Model6AdapterFactory extends AdapterFactoryImpl {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n Eike Stepper - initial API and implementation";
+
+ /**
+ * The cached model package. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static Model6Package modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public Model6AdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Model6Package.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc --> This implementation returns <code>true</code> if
+ * the object is either the model's package or is an instance object of the
+ * model. <!-- end-user-doc -->
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject) object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Model6Switch<Adapter> modelSwitch = new Model6Switch<Adapter>() {
+ @Override
+ public Adapter caseRoot(Root object) {
+ return createRootAdapter();
+ }
+
+ @Override
+ public Adapter caseBaseObject(BaseObject object) {
+ return createBaseObjectAdapter();
+ }
+
+ @Override
+ public Adapter caseReferenceObject(ReferenceObject object) {
+ return createReferenceObjectAdapter();
+ }
+
+ @Override
+ public Adapter caseContainmentObject(ContainmentObject object) {
+ return createContainmentObjectAdapter();
+ }
+
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param target
+ * the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject) target);
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.Root <em>Root</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.cdo.tests.legacy.model6.Root
+ * @generated
+ */
+ public Adapter createRootAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.BaseObject
+ * <em>Base Object</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.cdo.tests.legacy.model6.BaseObject
+ * @generated
+ */
+ public Adapter createBaseObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.ReferenceObject
+ * <em>Reference Object</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.cdo.tests.legacy.model6.ReferenceObject
+ * @generated
+ */
+ public Adapter createReferenceObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.emf.cdo.tests.legacy.model6.ContainmentObject
+ * <em>Containment Object</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.cdo.tests.legacy.model6.ContainmentObject
+ * @generated
+ */
+ public Adapter createContainmentObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case. <!-- begin-user-doc --> This
+ * default implementation returns null. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} // Model6AdapterFactory
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/util/Model6Switch.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/util/Model6Switch.java
new file mode 100644
index 0000000000..7798ee8bc3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/legacy/model6/util/Model6Switch.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.legacy.model6.util;
+
+import java.util.List;
+
+import org.eclipse.emf.cdo.tests.legacy.model6.Model6Package;
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.ContainmentObject;
+import org.eclipse.emf.cdo.tests.model6.ReferenceObject;
+import org.eclipse.emf.cdo.tests.model6.Root;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> The <b>Switch</b> for the model's inheritance
+ * hierarchy. It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object and proceeding up the
+ * inheritance hierarchy until a non-null result is returned, which is the
+ * result of the switch. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.tests.legacy.model6.Model6Package
+ * @generated
+ */
+public class Model6Switch<T> {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n Eike Stepper - initial API and implementation";
+
+ /**
+ * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static Model6Package modelPackage;
+
+ /**
+ * Creates an instance of the switch. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public Model6Switch() {
+ if (modelPackage == null) {
+ modelPackage = Model6Package.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns
+ * a non null result; it yields that result. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code>
+ * call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns
+ * a non null result; it yields that result. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code>
+ * call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ } else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(
+ eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns
+ * a non null result; it yields that result. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code>
+ * call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Model6Package.ROOT: {
+ Root root = (Root) theEObject;
+ T result = caseRoot(root);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case Model6Package.BASE_OBJECT: {
+ BaseObject baseObject = (BaseObject) theEObject;
+ T result = caseBaseObject(baseObject);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case Model6Package.REFERENCE_OBJECT: {
+ ReferenceObject referenceObject = (ReferenceObject) theEObject;
+ T result = caseReferenceObject(referenceObject);
+ if (result == null)
+ result = caseBaseObject(referenceObject);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case Model6Package.CONTAINMENT_OBJECT: {
+ ContainmentObject containmentObject = (ContainmentObject) theEObject;
+ T result = caseContainmentObject(containmentObject);
+ if (result == null)
+ result = caseBaseObject(containmentObject);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Root</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>Root</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRoot(Root object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Base Object</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>Base Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBaseObject(BaseObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Reference Object</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>Reference Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReferenceObject(ReferenceObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Containment Object</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>Containment Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContainmentObject(ContainmentObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>EObject</em>'. <!-- begin-user-doc --> This implementation returns
+ * null; returning a non-null result will terminate the switch, but this is
+ * the last case anyway. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // Model6Switch
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/BaseObject.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/BaseObject.java
new file mode 100644
index 0000000000..2babf0cbcf
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/BaseObject.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Base Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.BaseObject#getAttributeOptional <em>Attribute Optional</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.BaseObject#getAttributeRequired <em>Attribute Required</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.BaseObject#getAttributeList <em>Attribute List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getBaseObject()
+ * @model
+ * @generated
+ */
+public interface BaseObject extends EObject {
+ /**
+ * Returns the value of the '<em><b>Attribute Optional</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute Optional</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute Optional</em>' attribute.
+ * @see #setAttributeOptional(String)
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getBaseObject_AttributeOptional()
+ * @model
+ * @generated
+ */
+ String getAttributeOptional();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.tests.model6.BaseObject#getAttributeOptional <em>Attribute Optional</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attribute Optional</em>' attribute.
+ * @see #getAttributeOptional()
+ * @generated
+ */
+ void setAttributeOptional(String value);
+
+ /**
+ * Returns the value of the '<em><b>Attribute Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute Required</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute Required</em>' attribute.
+ * @see #setAttributeRequired(String)
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getBaseObject_AttributeRequired()
+ * @model required="true"
+ * @generated
+ */
+ String getAttributeRequired();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.tests.model6.BaseObject#getAttributeRequired <em>Attribute Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attribute Required</em>' attribute.
+ * @see #getAttributeRequired()
+ * @generated
+ */
+ void setAttributeRequired(String value);
+
+ /**
+ * Returns the value of the '<em><b>Attribute List</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute List</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute List</em>' attribute list.
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getBaseObject_AttributeList()
+ * @model
+ * @generated
+ */
+ EList<String> getAttributeList();
+
+} // BaseObject
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/ContainmentObject.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/ContainmentObject.java
new file mode 100644
index 0000000000..292a1db804
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/ContainmentObject.java
@@ -0,0 +1,75 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Containment Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.ContainmentObject#getContainmentOptional <em>Containment Optional</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.ContainmentObject#getContainmentList <em>Containment List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getContainmentObject()
+ * @model
+ * @generated
+ */
+public interface ContainmentObject extends BaseObject {
+ /**
+ * Returns the value of the '<em><b>Containment Optional</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Containment Optional</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Containment Optional</em>' containment reference.
+ * @see #setContainmentOptional(BaseObject)
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getContainmentObject_ContainmentOptional()
+ * @model containment="true"
+ * @generated
+ */
+ BaseObject getContainmentOptional();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.tests.model6.ContainmentObject#getContainmentOptional <em>Containment Optional</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Containment Optional</em>' containment reference.
+ * @see #getContainmentOptional()
+ * @generated
+ */
+ void setContainmentOptional(BaseObject value);
+
+ /**
+ * Returns the value of the '<em><b>Containment List</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.tests.model6.BaseObject}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Containment List</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Containment List</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getContainmentObject_ContainmentList()
+ * @model containment="true"
+ * @generated
+ */
+ EList<BaseObject> getContainmentList();
+
+} // ContainmentObject
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Model6Factory.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Model6Factory.java
new file mode 100644
index 0000000000..f6d1f6ffc6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Model6Factory.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6;
+
+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.cdo.tests.model6.Model6Package
+ * @generated
+ */
+public interface Model6Factory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Model6Factory eINSTANCE = org.eclipse.emf.cdo.tests.model6.impl.Model6FactoryImpl
+ .init();
+
+ /**
+ * Returns a new object of class '<em>Root</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Root</em>'.
+ * @generated
+ */
+ Root createRoot();
+
+ /**
+ * Returns a new object of class '<em>Base Object</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Base Object</em>'.
+ * @generated
+ */
+ BaseObject createBaseObject();
+
+ /**
+ * Returns a new object of class '<em>Reference Object</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Reference Object</em>'.
+ * @generated
+ */
+ ReferenceObject createReferenceObject();
+
+ /**
+ * Returns a new object of class '<em>Containment Object</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Containment Object</em>'.
+ * @generated
+ */
+ ContainmentObject createContainmentObject();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Model6Package getModel6Package();
+
+} //Model6Factory
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Model6Package.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Model6Package.java
new file mode 100644
index 0000000000..56d9ac6d62
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Model6Package.java
@@ -0,0 +1,616 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6;
+
+import org.eclipse.emf.ecore.EAttribute;
+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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Factory
+ * @model kind="package"
+ * @generated
+ */
+public interface Model6Package extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "model6";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/CDO/tests/model6/1.0.0";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "model6";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Model6Package eINSTANCE = org.eclipse.emf.cdo.tests.model6.impl.Model6PackageImpl
+ .init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.tests.model6.impl.RootImpl <em>Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.tests.model6.impl.RootImpl
+ * @see org.eclipse.emf.cdo.tests.model6.impl.Model6PackageImpl#getRoot()
+ * @generated
+ */
+ int ROOT = 0;
+
+ /**
+ * The feature id for the '<em><b>List A</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ROOT__LIST_A = 0;
+
+ /**
+ * The feature id for the '<em><b>List B</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ROOT__LIST_B = 1;
+
+ /**
+ * The feature id for the '<em><b>List C</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ROOT__LIST_C = 2;
+
+ /**
+ * The feature id for the '<em><b>List D</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ROOT__LIST_D = 3;
+
+ /**
+ * The number of structural features of the '<em>Root</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ROOT_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.tests.model6.impl.BaseObjectImpl <em>Base Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.tests.model6.impl.BaseObjectImpl
+ * @see org.eclipse.emf.cdo.tests.model6.impl.Model6PackageImpl#getBaseObject()
+ * @generated
+ */
+ int BASE_OBJECT = 1;
+
+ /**
+ * The feature id for the '<em><b>Attribute Optional</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASE_OBJECT__ATTRIBUTE_OPTIONAL = 0;
+
+ /**
+ * The feature id for the '<em><b>Attribute Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASE_OBJECT__ATTRIBUTE_REQUIRED = 1;
+
+ /**
+ * The feature id for the '<em><b>Attribute List</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASE_OBJECT__ATTRIBUTE_LIST = 2;
+
+ /**
+ * The number of structural features of the '<em>Base Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASE_OBJECT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.tests.model6.impl.ReferenceObjectImpl <em>Reference Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.tests.model6.impl.ReferenceObjectImpl
+ * @see org.eclipse.emf.cdo.tests.model6.impl.Model6PackageImpl#getReferenceObject()
+ * @generated
+ */
+ int REFERENCE_OBJECT = 2;
+
+ /**
+ * The feature id for the '<em><b>Attribute Optional</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT__ATTRIBUTE_OPTIONAL = BASE_OBJECT__ATTRIBUTE_OPTIONAL;
+
+ /**
+ * The feature id for the '<em><b>Attribute Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT__ATTRIBUTE_REQUIRED = BASE_OBJECT__ATTRIBUTE_REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Attribute List</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT__ATTRIBUTE_LIST = BASE_OBJECT__ATTRIBUTE_LIST;
+
+ /**
+ * The feature id for the '<em><b>Reference Optional</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT__REFERENCE_OPTIONAL = BASE_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Reference List</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT__REFERENCE_LIST = BASE_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Reference Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_OBJECT_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.tests.model6.impl.ContainmentObjectImpl <em>Containment Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.tests.model6.impl.ContainmentObjectImpl
+ * @see org.eclipse.emf.cdo.tests.model6.impl.Model6PackageImpl#getContainmentObject()
+ * @generated
+ */
+ int CONTAINMENT_OBJECT = 3;
+
+ /**
+ * The feature id for the '<em><b>Attribute Optional</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT__ATTRIBUTE_OPTIONAL = BASE_OBJECT__ATTRIBUTE_OPTIONAL;
+
+ /**
+ * The feature id for the '<em><b>Attribute Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT__ATTRIBUTE_REQUIRED = BASE_OBJECT__ATTRIBUTE_REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Attribute List</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT__ATTRIBUTE_LIST = BASE_OBJECT__ATTRIBUTE_LIST;
+
+ /**
+ * The feature id for the '<em><b>Containment Optional</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL = BASE_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Containment List</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT__CONTAINMENT_LIST = BASE_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Containment Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINMENT_OBJECT_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.tests.model6.Root <em>Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Root</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.Root
+ * @generated
+ */
+ EClass getRoot();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.tests.model6.Root#getListA <em>List A</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>List A</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.Root#getListA()
+ * @see #getRoot()
+ * @generated
+ */
+ EReference getRoot_ListA();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.tests.model6.Root#getListB <em>List B</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>List B</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.Root#getListB()
+ * @see #getRoot()
+ * @generated
+ */
+ EReference getRoot_ListB();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.tests.model6.Root#getListC <em>List C</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>List C</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.Root#getListC()
+ * @see #getRoot()
+ * @generated
+ */
+ EReference getRoot_ListC();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.tests.model6.Root#getListD <em>List D</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>List D</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.Root#getListD()
+ * @see #getRoot()
+ * @generated
+ */
+ EReference getRoot_ListD();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.tests.model6.BaseObject <em>Base Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Base Object</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.BaseObject
+ * @generated
+ */
+ EClass getBaseObject();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.tests.model6.BaseObject#getAttributeOptional <em>Attribute Optional</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Attribute Optional</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.BaseObject#getAttributeOptional()
+ * @see #getBaseObject()
+ * @generated
+ */
+ EAttribute getBaseObject_AttributeOptional();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.tests.model6.BaseObject#getAttributeRequired <em>Attribute Required</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Attribute Required</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.BaseObject#getAttributeRequired()
+ * @see #getBaseObject()
+ * @generated
+ */
+ EAttribute getBaseObject_AttributeRequired();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.emf.cdo.tests.model6.BaseObject#getAttributeList <em>Attribute List</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Attribute List</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.BaseObject#getAttributeList()
+ * @see #getBaseObject()
+ * @generated
+ */
+ EAttribute getBaseObject_AttributeList();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.tests.model6.ReferenceObject <em>Reference Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Reference Object</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.ReferenceObject
+ * @generated
+ */
+ EClass getReferenceObject();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.tests.model6.ReferenceObject#getReferenceOptional <em>Reference Optional</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Reference Optional</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.ReferenceObject#getReferenceOptional()
+ * @see #getReferenceObject()
+ * @generated
+ */
+ EReference getReferenceObject_ReferenceOptional();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.tests.model6.ReferenceObject#getReferenceList <em>Reference List</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Reference List</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.ReferenceObject#getReferenceList()
+ * @see #getReferenceObject()
+ * @generated
+ */
+ EReference getReferenceObject_ReferenceList();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.tests.model6.ContainmentObject <em>Containment Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Containment Object</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.ContainmentObject
+ * @generated
+ */
+ EClass getContainmentObject();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.tests.model6.ContainmentObject#getContainmentOptional <em>Containment Optional</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Containment Optional</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.ContainmentObject#getContainmentOptional()
+ * @see #getContainmentObject()
+ * @generated
+ */
+ EReference getContainmentObject_ContainmentOptional();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.tests.model6.ContainmentObject#getContainmentList <em>Containment List</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Containment List</em>'.
+ * @see org.eclipse.emf.cdo.tests.model6.ContainmentObject#getContainmentList()
+ * @see #getContainmentObject()
+ * @generated
+ */
+ EReference getContainmentObject_ContainmentList();
+
+ /**
+ * 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
+ */
+ Model6Factory getModel6Factory();
+
+ /**
+ * <!-- 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 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.cdo.tests.model6.impl.RootImpl <em>Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.tests.model6.impl.RootImpl
+ * @see org.eclipse.emf.cdo.tests.model6.impl.Model6PackageImpl#getRoot()
+ * @generated
+ */
+ EClass ROOT = eINSTANCE.getRoot();
+
+ /**
+ * The meta object literal for the '<em><b>List A</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ROOT__LIST_A = eINSTANCE.getRoot_ListA();
+
+ /**
+ * The meta object literal for the '<em><b>List B</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ROOT__LIST_B = eINSTANCE.getRoot_ListB();
+
+ /**
+ * The meta object literal for the '<em><b>List C</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ROOT__LIST_C = eINSTANCE.getRoot_ListC();
+
+ /**
+ * The meta object literal for the '<em><b>List D</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ROOT__LIST_D = eINSTANCE.getRoot_ListD();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.tests.model6.impl.BaseObjectImpl <em>Base Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.tests.model6.impl.BaseObjectImpl
+ * @see org.eclipse.emf.cdo.tests.model6.impl.Model6PackageImpl#getBaseObject()
+ * @generated
+ */
+ EClass BASE_OBJECT = eINSTANCE.getBaseObject();
+
+ /**
+ * The meta object literal for the '<em><b>Attribute Optional</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BASE_OBJECT__ATTRIBUTE_OPTIONAL = eINSTANCE
+ .getBaseObject_AttributeOptional();
+
+ /**
+ * The meta object literal for the '<em><b>Attribute Required</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BASE_OBJECT__ATTRIBUTE_REQUIRED = eINSTANCE
+ .getBaseObject_AttributeRequired();
+
+ /**
+ * The meta object literal for the '<em><b>Attribute List</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BASE_OBJECT__ATTRIBUTE_LIST = eINSTANCE
+ .getBaseObject_AttributeList();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.tests.model6.impl.ReferenceObjectImpl <em>Reference Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.tests.model6.impl.ReferenceObjectImpl
+ * @see org.eclipse.emf.cdo.tests.model6.impl.Model6PackageImpl#getReferenceObject()
+ * @generated
+ */
+ EClass REFERENCE_OBJECT = eINSTANCE.getReferenceObject();
+
+ /**
+ * The meta object literal for the '<em><b>Reference Optional</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REFERENCE_OBJECT__REFERENCE_OPTIONAL = eINSTANCE
+ .getReferenceObject_ReferenceOptional();
+
+ /**
+ * The meta object literal for the '<em><b>Reference List</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REFERENCE_OBJECT__REFERENCE_LIST = eINSTANCE
+ .getReferenceObject_ReferenceList();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.tests.model6.impl.ContainmentObjectImpl <em>Containment Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.tests.model6.impl.ContainmentObjectImpl
+ * @see org.eclipse.emf.cdo.tests.model6.impl.Model6PackageImpl#getContainmentObject()
+ * @generated
+ */
+ EClass CONTAINMENT_OBJECT = eINSTANCE.getContainmentObject();
+
+ /**
+ * The meta object literal for the '<em><b>Containment Optional</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL = eINSTANCE
+ .getContainmentObject_ContainmentOptional();
+
+ /**
+ * The meta object literal for the '<em><b>Containment List</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONTAINMENT_OBJECT__CONTAINMENT_LIST = eINSTANCE
+ .getContainmentObject_ContainmentList();
+
+ }
+
+} //Model6Package
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/ReferenceObject.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/ReferenceObject.java
new file mode 100644
index 0000000000..ea3a039827
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/ReferenceObject.java
@@ -0,0 +1,75 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Reference Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.ReferenceObject#getReferenceOptional <em>Reference Optional</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.ReferenceObject#getReferenceList <em>Reference List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getReferenceObject()
+ * @model
+ * @generated
+ */
+public interface ReferenceObject extends BaseObject {
+ /**
+ * Returns the value of the '<em><b>Reference Optional</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Reference Optional</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Reference Optional</em>' reference.
+ * @see #setReferenceOptional(BaseObject)
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getReferenceObject_ReferenceOptional()
+ * @model
+ * @generated
+ */
+ BaseObject getReferenceOptional();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.tests.model6.ReferenceObject#getReferenceOptional <em>Reference Optional</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Reference Optional</em>' reference.
+ * @see #getReferenceOptional()
+ * @generated
+ */
+ void setReferenceOptional(BaseObject value);
+
+ /**
+ * Returns the value of the '<em><b>Reference List</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.tests.model6.BaseObject}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Reference List</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Reference List</em>' reference list.
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getReferenceObject_ReferenceList()
+ * @model
+ * @generated
+ */
+ EList<BaseObject> getReferenceList();
+
+} // ReferenceObject
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Root.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Root.java
new file mode 100644
index 0000000000..c12c9475f7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/Root.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Root</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.Root#getListA <em>List A</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.Root#getListB <em>List B</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.Root#getListC <em>List C</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.Root#getListD <em>List D</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getRoot()
+ * @model
+ * @generated
+ */
+public interface Root extends EObject {
+ /**
+ * Returns the value of the '<em><b>List A</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.tests.model6.BaseObject}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>List A</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>List A</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getRoot_ListA()
+ * @model containment="true"
+ * @generated
+ */
+ EList<BaseObject> getListA();
+
+ /**
+ * Returns the value of the '<em><b>List B</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.tests.model6.BaseObject}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>List B</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>List B</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getRoot_ListB()
+ * @model containment="true"
+ * @generated
+ */
+ EList<BaseObject> getListB();
+
+ /**
+ * Returns the value of the '<em><b>List C</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.tests.model6.BaseObject}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>List C</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>List C</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getRoot_ListC()
+ * @model containment="true"
+ * @generated
+ */
+ EList<BaseObject> getListC();
+
+ /**
+ * Returns the value of the '<em><b>List D</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.tests.model6.BaseObject}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>List D</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>List D</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package#getRoot_ListD()
+ * @model containment="true"
+ * @generated
+ */
+ EList<BaseObject> getListD();
+
+} // Root
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/BaseObjectImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/BaseObjectImpl.java
new file mode 100644
index 0000000000..b0b58cd667
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/BaseObjectImpl.java
@@ -0,0 +1,118 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6.impl;
+
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.Model6Package;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.internal.cdo.CDOObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Base Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.impl.BaseObjectImpl#getAttributeOptional <em>Attribute Optional</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.impl.BaseObjectImpl#getAttributeRequired <em>Attribute Required</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.impl.BaseObjectImpl#getAttributeList <em>Attribute List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BaseObjectImpl extends CDOObjectImpl implements BaseObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BaseObjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Model6Package.Literals.BASE_OBJECT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected int eStaticFeatureCount() {
+ return 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAttributeOptional() {
+ return (String) eGet(
+ Model6Package.Literals.BASE_OBJECT__ATTRIBUTE_OPTIONAL, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAttributeOptional(String newAttributeOptional) {
+ eSet(Model6Package.Literals.BASE_OBJECT__ATTRIBUTE_OPTIONAL,
+ newAttributeOptional);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAttributeRequired() {
+ return (String) eGet(
+ Model6Package.Literals.BASE_OBJECT__ATTRIBUTE_REQUIRED, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAttributeRequired(String newAttributeRequired) {
+ eSet(Model6Package.Literals.BASE_OBJECT__ATTRIBUTE_REQUIRED,
+ newAttributeRequired);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<String> getAttributeList() {
+ return (EList<String>) eGet(
+ Model6Package.Literals.BASE_OBJECT__ATTRIBUTE_LIST, true);
+ }
+
+} //BaseObjectImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/ContainmentObjectImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/ContainmentObjectImpl.java
new file mode 100644
index 0000000000..f77d614c08
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/ContainmentObjectImpl.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6.impl;
+
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.ContainmentObject;
+import org.eclipse.emf.cdo.tests.model6.Model6Package;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Containment Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.impl.ContainmentObjectImpl#getContainmentOptional <em>Containment Optional</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.impl.ContainmentObjectImpl#getContainmentList <em>Containment List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ContainmentObjectImpl extends BaseObjectImpl implements
+ ContainmentObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ContainmentObjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Model6Package.Literals.CONTAINMENT_OBJECT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BaseObject getContainmentOptional() {
+ return (BaseObject) eGet(
+ Model6Package.Literals.CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL,
+ true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setContainmentOptional(BaseObject newContainmentOptional) {
+ eSet(Model6Package.Literals.CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL,
+ newContainmentOptional);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<BaseObject> getContainmentList() {
+ return (EList<BaseObject>) eGet(
+ Model6Package.Literals.CONTAINMENT_OBJECT__CONTAINMENT_LIST,
+ true);
+ }
+
+} //ContainmentObjectImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/Model6FactoryImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/Model6FactoryImpl.java
new file mode 100644
index 0000000000..02635713f0
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/Model6FactoryImpl.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6.impl;
+
+import org.eclipse.emf.cdo.tests.model6.*;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Model6FactoryImpl extends EFactoryImpl implements Model6Factory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Model6Factory init() {
+ try {
+ Model6Factory theModel6Factory = (Model6Factory) EPackage.Registry.INSTANCE
+ .getEFactory("http://www.eclipse.org/emf/CDO/tests/model6/1.0.0");
+ if (theModel6Factory != null) {
+ return theModel6Factory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Model6FactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model6FactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Model6Package.ROOT:
+ return createRoot();
+ case Model6Package.BASE_OBJECT:
+ return createBaseObject();
+ case Model6Package.REFERENCE_OBJECT:
+ return createReferenceObject();
+ case Model6Package.CONTAINMENT_OBJECT:
+ return createContainmentObject();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName()
+ + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Root createRoot() {
+ RootImpl root = new RootImpl();
+ return root;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BaseObject createBaseObject() {
+ BaseObjectImpl baseObject = new BaseObjectImpl();
+ return baseObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReferenceObject createReferenceObject() {
+ ReferenceObjectImpl referenceObject = new ReferenceObjectImpl();
+ return referenceObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ContainmentObject createContainmentObject() {
+ ContainmentObjectImpl containmentObject = new ContainmentObjectImpl();
+ return containmentObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model6Package getModel6Package() {
+ return (Model6Package) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Model6Package getPackage() {
+ return Model6Package.eINSTANCE;
+ }
+
+} //Model6FactoryImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/Model6PackageImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/Model6PackageImpl.java
new file mode 100644
index 0000000000..f222e17463
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/Model6PackageImpl.java
@@ -0,0 +1,417 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6.impl;
+
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.ContainmentObject;
+import org.eclipse.emf.cdo.tests.model6.Model6Factory;
+import org.eclipse.emf.cdo.tests.model6.Model6Package;
+import org.eclipse.emf.cdo.tests.model6.ReferenceObject;
+import org.eclipse.emf.cdo.tests.model6.Root;
+
+import org.eclipse.emf.ecore.EAttribute;
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Model6PackageImpl extends EPackageImpl implements Model6Package {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass rootEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass baseObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass referenceObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass containmentObjectEClass = 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.cdo.tests.model6.Model6Package#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Model6PackageImpl() {
+ super(eNS_URI, Model6Factory.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 Model6Package#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 Model6Package init() {
+ if (isInited)
+ return (Model6Package) EPackage.Registry.INSTANCE
+ .getEPackage(Model6Package.eNS_URI);
+
+ // Obtain or create and register package
+ Model6PackageImpl theModel6Package = (Model6PackageImpl) (EPackage.Registry.INSTANCE
+ .get(eNS_URI) instanceof Model6PackageImpl ? EPackage.Registry.INSTANCE
+ .get(eNS_URI) : new Model6PackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theModel6Package.createPackageContents();
+
+ // Initialize created meta-data
+ theModel6Package.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theModel6Package.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Model6Package.eNS_URI, theModel6Package);
+ return theModel6Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRoot() {
+ return rootEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRoot_ListA() {
+ return (EReference) rootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRoot_ListB() {
+ return (EReference) rootEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRoot_ListC() {
+ return (EReference) rootEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRoot_ListD() {
+ return (EReference) rootEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBaseObject() {
+ return baseObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBaseObject_AttributeOptional() {
+ return (EAttribute) baseObjectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBaseObject_AttributeRequired() {
+ return (EAttribute) baseObjectEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBaseObject_AttributeList() {
+ return (EAttribute) baseObjectEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReferenceObject() {
+ return referenceObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReferenceObject_ReferenceOptional() {
+ return (EReference) referenceObjectEClass.getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReferenceObject_ReferenceList() {
+ return (EReference) referenceObjectEClass.getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getContainmentObject() {
+ return containmentObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getContainmentObject_ContainmentOptional() {
+ return (EReference) containmentObjectEClass.getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getContainmentObject_ContainmentList() {
+ return (EReference) containmentObjectEClass.getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model6Factory getModel6Factory() {
+ return (Model6Factory) 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
+ rootEClass = createEClass(ROOT);
+ createEReference(rootEClass, ROOT__LIST_A);
+ createEReference(rootEClass, ROOT__LIST_B);
+ createEReference(rootEClass, ROOT__LIST_C);
+ createEReference(rootEClass, ROOT__LIST_D);
+
+ baseObjectEClass = createEClass(BASE_OBJECT);
+ createEAttribute(baseObjectEClass, BASE_OBJECT__ATTRIBUTE_OPTIONAL);
+ createEAttribute(baseObjectEClass, BASE_OBJECT__ATTRIBUTE_REQUIRED);
+ createEAttribute(baseObjectEClass, BASE_OBJECT__ATTRIBUTE_LIST);
+
+ referenceObjectEClass = createEClass(REFERENCE_OBJECT);
+ createEReference(referenceObjectEClass,
+ REFERENCE_OBJECT__REFERENCE_OPTIONAL);
+ createEReference(referenceObjectEClass,
+ REFERENCE_OBJECT__REFERENCE_LIST);
+
+ containmentObjectEClass = createEClass(CONTAINMENT_OBJECT);
+ createEReference(containmentObjectEClass,
+ CONTAINMENT_OBJECT__CONTAINMENT_OPTIONAL);
+ createEReference(containmentObjectEClass,
+ CONTAINMENT_OBJECT__CONTAINMENT_LIST);
+ }
+
+ /**
+ * <!-- 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
+ referenceObjectEClass.getESuperTypes().add(this.getBaseObject());
+ containmentObjectEClass.getESuperTypes().add(this.getBaseObject());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(rootEClass, Root.class, "Root", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRoot_ListA(), this.getBaseObject(), null, "listA",
+ null, 0, -1, Root.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRoot_ListB(), this.getBaseObject(), null, "listB",
+ null, 0, -1, Root.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRoot_ListC(), this.getBaseObject(), null, "listC",
+ null, 0, -1, Root.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRoot_ListD(), this.getBaseObject(), null, "listD",
+ null, 0, -1, Root.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(baseObjectEClass, BaseObject.class, "BaseObject",
+ !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBaseObject_AttributeOptional(),
+ ecorePackage.getEString(), "attributeOptional", null, 0, 1,
+ BaseObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBaseObject_AttributeRequired(),
+ ecorePackage.getEString(), "attributeRequired", null, 1, 1,
+ BaseObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBaseObject_AttributeList(),
+ ecorePackage.getEString(), "attributeList", null, 0, -1,
+ BaseObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(referenceObjectEClass, ReferenceObject.class,
+ "ReferenceObject", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getReferenceObject_ReferenceOptional(),
+ this.getBaseObject(), null, "referenceOptional", null, 0, 1,
+ ReferenceObject.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getReferenceObject_ReferenceList(),
+ this.getBaseObject(), null, "referenceList", null, 0, -1,
+ ReferenceObject.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(containmentObjectEClass, ContainmentObject.class,
+ "ContainmentObject", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getContainmentObject_ContainmentOptional(),
+ this.getBaseObject(), null, "containmentOptional", null, 0, 1,
+ ContainmentObject.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getContainmentObject_ContainmentList(),
+ this.getBaseObject(), null, "containmentList", null, 0, -1,
+ ContainmentObject.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);
+ }
+
+} //Model6PackageImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/ReferenceObjectImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/ReferenceObjectImpl.java
new file mode 100644
index 0000000000..3e661607ad
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/ReferenceObjectImpl.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6.impl;
+
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.Model6Package;
+import org.eclipse.emf.cdo.tests.model6.ReferenceObject;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Reference Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.impl.ReferenceObjectImpl#getReferenceOptional <em>Reference Optional</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.impl.ReferenceObjectImpl#getReferenceList <em>Reference List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReferenceObjectImpl extends BaseObjectImpl implements
+ ReferenceObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReferenceObjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Model6Package.Literals.REFERENCE_OBJECT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BaseObject getReferenceOptional() {
+ return (BaseObject) eGet(
+ Model6Package.Literals.REFERENCE_OBJECT__REFERENCE_OPTIONAL,
+ true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReferenceOptional(BaseObject newReferenceOptional) {
+ eSet(Model6Package.Literals.REFERENCE_OBJECT__REFERENCE_OPTIONAL,
+ newReferenceOptional);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<BaseObject> getReferenceList() {
+ return (EList<BaseObject>) eGet(
+ Model6Package.Literals.REFERENCE_OBJECT__REFERENCE_LIST, true);
+ }
+
+} //ReferenceObjectImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/RootImpl.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/RootImpl.java
new file mode 100644
index 0000000000..c6aa499510
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/impl/RootImpl.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6.impl;
+
+import org.eclipse.emf.cdo.tests.model6.BaseObject;
+import org.eclipse.emf.cdo.tests.model6.Model6Package;
+import org.eclipse.emf.cdo.tests.model6.Root;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.internal.cdo.CDOObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Root</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.impl.RootImpl#getListA <em>List A</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.impl.RootImpl#getListB <em>List B</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.impl.RootImpl#getListC <em>List C</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.tests.model6.impl.RootImpl#getListD <em>List D</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RootImpl extends CDOObjectImpl implements Root {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RootImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Model6Package.Literals.ROOT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected int eStaticFeatureCount() {
+ return 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<BaseObject> getListA() {
+ return (EList<BaseObject>) eGet(Model6Package.Literals.ROOT__LIST_A,
+ true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<BaseObject> getListB() {
+ return (EList<BaseObject>) eGet(Model6Package.Literals.ROOT__LIST_B,
+ true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<BaseObject> getListC() {
+ return (EList<BaseObject>) eGet(Model6Package.Literals.ROOT__LIST_C,
+ true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<BaseObject> getListD() {
+ return (EList<BaseObject>) eGet(Model6Package.Literals.ROOT__LIST_D,
+ true);
+ }
+
+} //RootImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/util/Model6AdapterFactory.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/util/Model6AdapterFactory.java
new file mode 100644
index 0000000000..4bcb3a1c8b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/util/Model6AdapterFactory.java
@@ -0,0 +1,184 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6.util;
+
+import org.eclipse.emf.cdo.tests.model6.*;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package
+ * @generated
+ */
+public class Model6AdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Model6Package modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model6AdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Model6Package.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject) object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Model6Switch<Adapter> modelSwitch = new Model6Switch<Adapter>() {
+ @Override
+ public Adapter caseRoot(Root object) {
+ return createRootAdapter();
+ }
+
+ @Override
+ public Adapter caseBaseObject(BaseObject object) {
+ return createBaseObjectAdapter();
+ }
+
+ @Override
+ public Adapter caseReferenceObject(ReferenceObject object) {
+ return createReferenceObjectAdapter();
+ }
+
+ @Override
+ public Adapter caseContainmentObject(ContainmentObject object) {
+ return createContainmentObjectAdapter();
+ }
+
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject) target);
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.tests.model6.Root <em>Root</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.cdo.tests.model6.Root
+ * @generated
+ */
+ public Adapter createRootAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.tests.model6.BaseObject <em>Base Object</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.cdo.tests.model6.BaseObject
+ * @generated
+ */
+ public Adapter createBaseObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.tests.model6.ReferenceObject <em>Reference Object</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.cdo.tests.model6.ReferenceObject
+ * @generated
+ */
+ public Adapter createReferenceObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.tests.model6.ContainmentObject <em>Containment Object</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.cdo.tests.model6.ContainmentObject
+ * @generated
+ */
+ public Adapter createContainmentObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Model6AdapterFactory
diff --git a/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/util/Model6Switch.java b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/util/Model6Switch.java
new file mode 100644
index 0000000000..af8c3df90d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests.model6/src/org/eclipse/emf/cdo/tests/model6/util/Model6Switch.java
@@ -0,0 +1,203 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.model6.util;
+
+import java.util.List;
+
+import org.eclipse.emf.cdo.tests.model6.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.tests.model6.Model6Package
+ * @generated
+ */
+public class Model6Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Model6Package modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model6Switch() {
+ if (modelPackage == null) {
+ modelPackage = Model6Package.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ } else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(
+ eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Model6Package.ROOT: {
+ Root root = (Root) theEObject;
+ T result = caseRoot(root);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case Model6Package.BASE_OBJECT: {
+ BaseObject baseObject = (BaseObject) theEObject;
+ T result = caseBaseObject(baseObject);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case Model6Package.REFERENCE_OBJECT: {
+ ReferenceObject referenceObject = (ReferenceObject) theEObject;
+ T result = caseReferenceObject(referenceObject);
+ if (result == null)
+ result = caseBaseObject(referenceObject);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case Model6Package.CONTAINMENT_OBJECT: {
+ ContainmentObject containmentObject = (ContainmentObject) theEObject;
+ T result = caseContainmentObject(containmentObject);
+ if (result == null)
+ result = caseBaseObject(containmentObject);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Root</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>Root</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRoot(Root object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Base Object</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>Base Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBaseObject(BaseObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Reference Object</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>Reference Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReferenceObject(ReferenceObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Containment Object</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>Containment Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContainmentObject(ContainmentObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Model6Switch

Back to the top