Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2020-05-22 05:14:47 +0000
committerEike Stepper2020-05-22 05:14:47 +0000
commit237678ad4bba83d314a3bb0096e2d4cbdc4efd7a (patch)
tree88c7fd40c41bdeecf1a442fe9d3b1509a2bfb937
parentc468283b6ee1247eaee03c9fd26d3b387159b553 (diff)
downloadcdo-237678ad4bba83d314a3bb0096e2d4cbdc4efd7a.tar.gz
cdo-237678ad4bba83d314a3bb0096e2d4cbdc4efd7a.tar.xz
cdo-237678ad4bba83d314a3bb0096e2d4cbdc4efd7a.zip
[562011] Remove deprecated support for FeatureMaps
https://bugs.eclipse.org/bugs/show_bug.cgi?id=562011
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF5
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/DocumentRoot.java104
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/SomeContentType.java57
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/Testmodel562011Factory.java60
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/Testmodel562011Package.java331
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/DocumentRootImpl.java130
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/SomeContentTypeImpl.java89
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/Testmodel562011FactoryImpl.java132
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/Testmodel562011PackageImpl.java317
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011AdapterFactory.java160
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011ResourceFactoryImpl.java75
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011ResourceImpl.java37
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011Switch.java158
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011XMLProcessor.java61
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.ecore60
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.genmodel24
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.xml3
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.xsd10
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/plugin.xml14
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java1
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BigModelTest.java109
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_562011_Test.java34
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/RepositoryConfig.java7
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java13
24 files changed, 1988 insertions, 3 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF
index acfbaaf048..893cc36590 100644
--- a/plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF
@@ -80,6 +80,9 @@ Export-Package: base;version="4.0.200",
org.eclipse.emf.cdo.tests.all,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.tests.mongodb",
- reference.util;version="4.0.200"
+ reference.util;version="4.0.200",
+ Testmodel562011;version="4.0.200",
+ Testmodel562011.impl;version="4.0.200",
+ Testmodel562011.util;version="4.0.200"
Eclipse-BuddyPolicy: dependent
Automatic-Module-Name: org.eclipse.emf.cdo.tests
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/DocumentRoot.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/DocumentRoot.java
new file mode 100644
index 0000000000..82483abc99
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/DocumentRoot.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011;
+
+import org.eclipse.emf.cdo.CDOObject;
+
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Document Root</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link Testmodel562011.DocumentRoot#getMixed <em>Mixed</em>}</li>
+ * <li>{@link Testmodel562011.DocumentRoot#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}</li>
+ * <li>{@link Testmodel562011.DocumentRoot#getXSISchemaLocation <em>XSI Schema Location</em>}</li>
+ * <li>{@link Testmodel562011.DocumentRoot#getSomeContent <em>Some Content</em>}</li>
+ * </ul>
+ *
+ * @see Testmodel562011.Testmodel562011Package#getDocumentRoot()
+ * @model extendedMetaData="name='' kind='mixed'"
+ * @extends CDOObject
+ * @generated
+ */
+public interface DocumentRoot extends CDOObject
+{
+ /**
+ * Returns the value of the '<em><b>Mixed</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mixed</em>' attribute list.
+ * @see Testmodel562011.Testmodel562011Package#getDocumentRoot_Mixed()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * extendedMetaData="kind='elementWildcard' name=':mixed'"
+ * @generated
+ */
+ FeatureMap getMixed();
+
+ /**
+ * Returns the value of the '<em><b>XMLNS Prefix Map</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>XMLNS Prefix Map</em>' map.
+ * @see Testmodel562011.Testmodel562011Package#getDocumentRoot_XMLNSPrefixMap()
+ * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry&lt;org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString&gt;" transient="true"
+ * extendedMetaData="kind='attribute' name='xmlns:prefix'"
+ * @generated
+ */
+ EMap<String, String> getXMLNSPrefixMap();
+
+ /**
+ * Returns the value of the '<em><b>XSI Schema Location</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>XSI Schema Location</em>' map.
+ * @see Testmodel562011.Testmodel562011Package#getDocumentRoot_XSISchemaLocation()
+ * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry&lt;org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString&gt;" transient="true"
+ * extendedMetaData="kind='attribute' name='xsi:schemaLocation'"
+ * @generated
+ */
+ EMap<String, String> getXSISchemaLocation();
+
+ /**
+ * Returns the value of the '<em><b>Some Content</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Some Content</em>' containment reference.
+ * @see #setSomeContent(SomeContentType)
+ * @see Testmodel562011.Testmodel562011Package#getDocumentRoot_SomeContent()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='SomeContent' namespace='##targetNamespace'"
+ * @generated
+ */
+ SomeContentType getSomeContent();
+
+ /**
+ * Sets the value of the '{@link Testmodel562011.DocumentRoot#getSomeContent <em>Some Content</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Some Content</em>' containment reference.
+ * @see #getSomeContent()
+ * @generated
+ */
+ void setSomeContent(SomeContentType value);
+
+} // DocumentRoot
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/SomeContentType.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/SomeContentType.java
new file mode 100644
index 0000000000..03b5f99232
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/SomeContentType.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011;
+
+import org.eclipse.emf.cdo.CDOObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Some Content Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link Testmodel562011.SomeContentType#getSomeElem <em>Some Elem</em>}</li>
+ * </ul>
+ *
+ * @see Testmodel562011.Testmodel562011Package#getSomeContentType()
+ * @model extendedMetaData="name='SomeContent_._type' kind='elementOnly'"
+ * @extends CDOObject
+ * @generated
+ */
+public interface SomeContentType extends CDOObject
+{
+ /**
+ * Returns the value of the '<em><b>Some Elem</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Some Elem</em>' attribute.
+ * @see #setSomeElem(String)
+ * @see Testmodel562011.Testmodel562011Package#getSomeContentType_SomeElem()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='element' name='SomeElem' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getSomeElem();
+
+ /**
+ * Sets the value of the '{@link Testmodel562011.SomeContentType#getSomeElem <em>Some Elem</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Some Elem</em>' attribute.
+ * @see #getSomeElem()
+ * @generated
+ */
+ void setSomeElem(String value);
+
+} // SomeContentType
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/Testmodel562011Factory.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/Testmodel562011Factory.java
new file mode 100644
index 0000000000..2977b6001b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/Testmodel562011Factory.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011;
+
+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 Testmodel562011.Testmodel562011Package
+ * @generated
+ */
+public interface Testmodel562011Factory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Testmodel562011Factory eINSTANCE = Testmodel562011.impl.Testmodel562011FactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Document Root</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Document Root</em>'.
+ * @generated
+ */
+ DocumentRoot createDocumentRoot();
+
+ /**
+ * Returns a new object of class '<em>Some Content Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Some Content Type</em>'.
+ * @generated
+ */
+ SomeContentType createSomeContentType();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Testmodel562011Package getTestmodel562011Package();
+
+} // Testmodel562011Factory
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/Testmodel562011Package.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/Testmodel562011Package.java
new file mode 100644
index 0000000000..4e18101844
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/Testmodel562011Package.java
@@ -0,0 +1,331 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011;
+
+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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see Testmodel562011.Testmodel562011Factory
+ * @model kind="package"
+ * extendedMetaData="qualified='false'"
+ * @generated
+ */
+public interface Testmodel562011Package extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Testmodel562011";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "platform:/resource/org.eclipse.emf.cdo.tests/model_562011/Testmodel_562011.xsd";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "Testmodel562011";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Testmodel562011Package eINSTANCE = Testmodel562011.impl.Testmodel562011PackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link Testmodel562011.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see Testmodel562011.impl.DocumentRootImpl
+ * @see Testmodel562011.impl.Testmodel562011PackageImpl#getDocumentRoot()
+ * @generated
+ */
+ int DOCUMENT_ROOT = 0;
+
+ /**
+ * The feature id for the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__MIXED = 0;
+
+ /**
+ * The feature id for the '<em><b>XMLNS Prefix Map</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__XMLNS_PREFIX_MAP = 1;
+
+ /**
+ * The feature id for the '<em><b>XSI Schema Location</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = 2;
+
+ /**
+ * The feature id for the '<em><b>Some Content</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__SOME_CONTENT = 3;
+
+ /**
+ * The number of structural features of the '<em>Document Root</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT_FEATURE_COUNT = 4;
+
+ /**
+ * The number of operations of the '<em>Document Root</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link Testmodel562011.impl.SomeContentTypeImpl <em>Some Content Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see Testmodel562011.impl.SomeContentTypeImpl
+ * @see Testmodel562011.impl.Testmodel562011PackageImpl#getSomeContentType()
+ * @generated
+ */
+ int SOME_CONTENT_TYPE = 1;
+
+ /**
+ * The feature id for the '<em><b>Some Elem</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOME_CONTENT_TYPE__SOME_ELEM = 0;
+
+ /**
+ * The number of structural features of the '<em>Some Content Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOME_CONTENT_TYPE_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Some Content Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOME_CONTENT_TYPE_OPERATION_COUNT = 0;
+
+ /**
+ * Returns the meta object for class '{@link Testmodel562011.DocumentRoot <em>Document Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Document Root</em>'.
+ * @see Testmodel562011.DocumentRoot
+ * @generated
+ */
+ EClass getDocumentRoot();
+
+ /**
+ * Returns the meta object for the attribute list '{@link Testmodel562011.DocumentRoot#getMixed <em>Mixed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Mixed</em>'.
+ * @see Testmodel562011.DocumentRoot#getMixed()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EAttribute getDocumentRoot_Mixed();
+
+ /**
+ * Returns the meta object for the map '{@link Testmodel562011.DocumentRoot#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XMLNS Prefix Map</em>'.
+ * @see Testmodel562011.DocumentRoot#getXMLNSPrefixMap()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_XMLNSPrefixMap();
+
+ /**
+ * Returns the meta object for the map '{@link Testmodel562011.DocumentRoot#getXSISchemaLocation <em>XSI Schema Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XSI Schema Location</em>'.
+ * @see Testmodel562011.DocumentRoot#getXSISchemaLocation()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_XSISchemaLocation();
+
+ /**
+ * Returns the meta object for the containment reference '{@link Testmodel562011.DocumentRoot#getSomeContent <em>Some Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Some Content</em>'.
+ * @see Testmodel562011.DocumentRoot#getSomeContent()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_SomeContent();
+
+ /**
+ * Returns the meta object for class '{@link Testmodel562011.SomeContentType <em>Some Content Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Some Content Type</em>'.
+ * @see Testmodel562011.SomeContentType
+ * @generated
+ */
+ EClass getSomeContentType();
+
+ /**
+ * Returns the meta object for the attribute '{@link Testmodel562011.SomeContentType#getSomeElem <em>Some Elem</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Some Elem</em>'.
+ * @see Testmodel562011.SomeContentType#getSomeElem()
+ * @see #getSomeContentType()
+ * @generated
+ */
+ EAttribute getSomeContentType_SomeElem();
+
+ /**
+ * 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
+ */
+ Testmodel562011Factory getTestmodel562011Factory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link Testmodel562011.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see Testmodel562011.impl.DocumentRootImpl
+ * @see Testmodel562011.impl.Testmodel562011PackageImpl#getDocumentRoot()
+ * @generated
+ */
+ EClass DOCUMENT_ROOT = eINSTANCE.getDocumentRoot();
+
+ /**
+ * The meta object literal for the '<em><b>Mixed</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DOCUMENT_ROOT__MIXED = eINSTANCE.getDocumentRoot_Mixed();
+
+ /**
+ * The meta object literal for the '<em><b>XMLNS Prefix Map</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__XMLNS_PREFIX_MAP = eINSTANCE.getDocumentRoot_XMLNSPrefixMap();
+
+ /**
+ * The meta object literal for the '<em><b>XSI Schema Location</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = eINSTANCE.getDocumentRoot_XSISchemaLocation();
+
+ /**
+ * The meta object literal for the '<em><b>Some Content</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__SOME_CONTENT = eINSTANCE.getDocumentRoot_SomeContent();
+
+ /**
+ * The meta object literal for the '{@link Testmodel562011.impl.SomeContentTypeImpl <em>Some Content Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see Testmodel562011.impl.SomeContentTypeImpl
+ * @see Testmodel562011.impl.Testmodel562011PackageImpl#getSomeContentType()
+ * @generated
+ */
+ EClass SOME_CONTENT_TYPE = eINSTANCE.getSomeContentType();
+
+ /**
+ * The meta object literal for the '<em><b>Some Elem</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SOME_CONTENT_TYPE__SOME_ELEM = eINSTANCE.getSomeContentType_SomeElem();
+
+ }
+
+} // Testmodel562011Package
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/DocumentRootImpl.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/DocumentRootImpl.java
new file mode 100644
index 0000000000..6b51e1ee46
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/DocumentRootImpl.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011.impl;
+
+import org.eclipse.emf.internal.cdo.CDOObjectImpl;
+
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+import Testmodel562011.DocumentRoot;
+import Testmodel562011.SomeContentType;
+import Testmodel562011.Testmodel562011Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Document Root</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link Testmodel562011.impl.DocumentRootImpl#getMixed <em>Mixed</em>}</li>
+ * <li>{@link Testmodel562011.impl.DocumentRootImpl#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}</li>
+ * <li>{@link Testmodel562011.impl.DocumentRootImpl#getXSISchemaLocation <em>XSI Schema Location</em>}</li>
+ * <li>{@link Testmodel562011.impl.DocumentRootImpl#getSomeContent <em>Some Content</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DocumentRootImpl extends CDOObjectImpl implements DocumentRoot
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DocumentRootImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return Testmodel562011Package.Literals.DOCUMENT_ROOT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected int eStaticFeatureCount()
+ {
+ return 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public FeatureMap getMixed()
+ {
+ return (FeatureMap)eGet(Testmodel562011Package.Literals.DOCUMENT_ROOT__MIXED, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public EMap<String, String> getXMLNSPrefixMap()
+ {
+ return (EMap<String, String>)eGet(Testmodel562011Package.Literals.DOCUMENT_ROOT__XMLNS_PREFIX_MAP, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public EMap<String, String> getXSISchemaLocation()
+ {
+ return (EMap<String, String>)eGet(Testmodel562011Package.Literals.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public SomeContentType getSomeContent()
+ {
+ return (SomeContentType)eGet(Testmodel562011Package.Literals.DOCUMENT_ROOT__SOME_CONTENT, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSomeContent(SomeContentType newSomeContent)
+ {
+ eSet(Testmodel562011Package.Literals.DOCUMENT_ROOT__SOME_CONTENT, newSomeContent);
+ }
+
+} // DocumentRootImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/SomeContentTypeImpl.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/SomeContentTypeImpl.java
new file mode 100644
index 0000000000..8af2d0d87b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/SomeContentTypeImpl.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011.impl;
+
+import org.eclipse.emf.internal.cdo.CDOObjectImpl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import Testmodel562011.SomeContentType;
+import Testmodel562011.Testmodel562011Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Some Content Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link Testmodel562011.impl.SomeContentTypeImpl#getSomeElem <em>Some Elem</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SomeContentTypeImpl extends CDOObjectImpl implements SomeContentType
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SomeContentTypeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return Testmodel562011Package.Literals.SOME_CONTENT_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected int eStaticFeatureCount()
+ {
+ return 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getSomeElem()
+ {
+ return (String)eGet(Testmodel562011Package.Literals.SOME_CONTENT_TYPE__SOME_ELEM, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSomeElem(String newSomeElem)
+ {
+ eSet(Testmodel562011Package.Literals.SOME_CONTENT_TYPE__SOME_ELEM, newSomeElem);
+ }
+
+} // SomeContentTypeImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/Testmodel562011FactoryImpl.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/Testmodel562011FactoryImpl.java
new file mode 100644
index 0000000000..90a0dde40f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/Testmodel562011FactoryImpl.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import Testmodel562011.DocumentRoot;
+import Testmodel562011.SomeContentType;
+import Testmodel562011.Testmodel562011Factory;
+import Testmodel562011.Testmodel562011Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Testmodel562011FactoryImpl extends EFactoryImpl implements Testmodel562011Factory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Testmodel562011Factory init()
+ {
+ try
+ {
+ Testmodel562011Factory theTestmodel562011Factory = (Testmodel562011Factory)EPackage.Registry.INSTANCE.getEFactory(Testmodel562011Package.eNS_URI);
+ if (theTestmodel562011Factory != null)
+ {
+ return theTestmodel562011Factory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Testmodel562011FactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Testmodel562011FactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case Testmodel562011Package.DOCUMENT_ROOT:
+ return createDocumentRoot();
+ case Testmodel562011Package.SOME_CONTENT_TYPE:
+ return createSomeContentType();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DocumentRoot createDocumentRoot()
+ {
+ DocumentRootImpl documentRoot = new DocumentRootImpl();
+ return documentRoot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public SomeContentType createSomeContentType()
+ {
+ SomeContentTypeImpl someContentType = new SomeContentTypeImpl();
+ return someContentType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Testmodel562011Package getTestmodel562011Package()
+ {
+ return (Testmodel562011Package)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Testmodel562011Package getPackage()
+ {
+ return Testmodel562011Package.eINSTANCE;
+ }
+
+} // Testmodel562011FactoryImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/Testmodel562011PackageImpl.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/Testmodel562011PackageImpl.java
new file mode 100644
index 0000000000..3f86a7a6da
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/impl/Testmodel562011PackageImpl.java
@@ -0,0 +1,317 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011.impl;
+
+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;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+import Testmodel562011.DocumentRoot;
+import Testmodel562011.SomeContentType;
+import Testmodel562011.Testmodel562011Factory;
+import Testmodel562011.Testmodel562011Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Testmodel562011PackageImpl extends EPackageImpl implements Testmodel562011Package
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass documentRootEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass someContentTypeEClass = 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 Testmodel562011.Testmodel562011Package#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Testmodel562011PackageImpl()
+ {
+ super(eNS_URI, Testmodel562011Factory.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 Testmodel562011Package#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 Testmodel562011Package init()
+ {
+ if (isInited)
+ {
+ return (Testmodel562011Package)EPackage.Registry.INSTANCE.getEPackage(Testmodel562011Package.eNS_URI);
+ }
+
+ // Obtain or create and register package
+ Object registeredTestmodel562011Package = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Testmodel562011PackageImpl theTestmodel562011Package = registeredTestmodel562011Package instanceof Testmodel562011PackageImpl
+ ? (Testmodel562011PackageImpl)registeredTestmodel562011Package
+ : new Testmodel562011PackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ XMLTypePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theTestmodel562011Package.createPackageContents();
+
+ // Initialize created meta-data
+ theTestmodel562011Package.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theTestmodel562011Package.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Testmodel562011Package.eNS_URI, theTestmodel562011Package);
+ return theTestmodel562011Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDocumentRoot()
+ {
+ return documentRootEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDocumentRoot_Mixed()
+ {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDocumentRoot_XMLNSPrefixMap()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDocumentRoot_XSISchemaLocation()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDocumentRoot_SomeContent()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSomeContentType()
+ {
+ return someContentTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSomeContentType_SomeElem()
+ {
+ return (EAttribute)someContentTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Testmodel562011Factory getTestmodel562011Factory()
+ {
+ return (Testmodel562011Factory)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
+ documentRootEClass = createEClass(DOCUMENT_ROOT);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__MIXED);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__SOME_CONTENT);
+
+ someContentTypeEClass = createEClass(SOME_CONTENT_TYPE);
+ createEAttribute(someContentTypeEClass, SOME_CONTENT_TYPE__SOME_ELEM);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized)
+ {
+ return;
+ }
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(documentRootEClass, DocumentRoot.class, "DocumentRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDocumentRoot_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XMLNSPrefixMap(), ecorePackage.getEStringToStringMapEntry(), null, "xMLNSPrefixMap", null, 0, -1, null, IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XSISchemaLocation(), ecorePackage.getEStringToStringMapEntry(), null, "xSISchemaLocation", null, 0, -1, null, IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_SomeContent(), getSomeContentType(), null, "someContent", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE,
+ IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ initEClass(someContentTypeEClass, SomeContentType.class, "SomeContentType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSomeContentType_SomeElem(), theXMLTypePackage.getString(), "someElem", null, 1, 1, SomeContentType.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations()
+ {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation(this, source, new String[] { "qualified", "false" });
+ addAnnotation(documentRootEClass, source, new String[] { "name", "", "kind", "mixed" });
+ addAnnotation(getDocumentRoot_Mixed(), source, new String[] { "kind", "elementWildcard", "name", ":mixed" });
+ addAnnotation(getDocumentRoot_XMLNSPrefixMap(), source, new String[] { "kind", "attribute", "name", "xmlns:prefix" });
+ addAnnotation(getDocumentRoot_XSISchemaLocation(), source, new String[] { "kind", "attribute", "name", "xsi:schemaLocation" });
+ addAnnotation(getDocumentRoot_SomeContent(), source, new String[] { "kind", "element", "name", "SomeContent", "namespace", "##targetNamespace" });
+ addAnnotation(someContentTypeEClass, source, new String[] { "name", "SomeContent_._type", "kind", "elementOnly" });
+ addAnnotation(getSomeContentType_SomeElem(), source, new String[] { "kind", "element", "name", "SomeElem", "namespace", "##targetNamespace" });
+ }
+
+} // Testmodel562011PackageImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011AdapterFactory.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011AdapterFactory.java
new file mode 100644
index 0000000000..d9f2f93593
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011AdapterFactory.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+
+import Testmodel562011.DocumentRoot;
+import Testmodel562011.SomeContentType;
+import Testmodel562011.Testmodel562011Package;
+
+/**
+ * <!-- 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 Testmodel562011.Testmodel562011Package
+ * @generated
+ */
+public class Testmodel562011AdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Testmodel562011Package modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Testmodel562011AdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = Testmodel562011Package.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 Testmodel562011Switch<Adapter> modelSwitch = new Testmodel562011Switch<Adapter>()
+ {
+ @Override
+ public Adapter caseDocumentRoot(DocumentRoot object)
+ {
+ return createDocumentRootAdapter();
+ }
+
+ @Override
+ public Adapter caseSomeContentType(SomeContentType object)
+ {
+ return createSomeContentTypeAdapter();
+ }
+
+ @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 Testmodel562011.DocumentRoot <em>Document 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 Testmodel562011.DocumentRoot
+ * @generated
+ */
+ public Adapter createDocumentRootAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link Testmodel562011.SomeContentType <em>Some Content Type</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 Testmodel562011.SomeContentType
+ * @generated
+ */
+ public Adapter createSomeContentTypeAdapter()
+ {
+ 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;
+ }
+
+} // Testmodel562011AdapterFactory
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011ResourceFactoryImpl.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011ResourceFactoryImpl.java
new file mode 100644
index 0000000000..d5256a9d17
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011ResourceFactoryImpl.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageRegistryImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import Testmodel562011.Testmodel562011Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource Factory</b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see Testmodel562011.util.Testmodel562011ResourceImpl
+ * @generated
+ */
+public class Testmodel562011ResourceFactoryImpl extends ResourceFactoryImpl
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExtendedMetaData extendedMetaData;
+
+ /**
+ * Creates an instance of the resource factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Testmodel562011ResourceFactoryImpl()
+ {
+ super();
+ extendedMetaData = new BasicExtendedMetaData(new EPackageRegistryImpl(EPackage.Registry.INSTANCE));
+ extendedMetaData.putPackage(null, Testmodel562011Package.eINSTANCE);
+ }
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Resource createResource(URI uri)
+ {
+ XMLResource result = new Testmodel562011ResourceImpl(uri);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, extendedMetaData);
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, extendedMetaData);
+
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+ return result;
+ }
+
+} // Testmodel562011ResourceFactoryImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011ResourceImpl.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011ResourceImpl.java
new file mode 100644
index 0000000000..c8e221449a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011ResourceImpl.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see Testmodel562011.util.Testmodel562011ResourceFactoryImpl
+ * @generated
+ */
+public class Testmodel562011ResourceImpl extends XMLResourceImpl
+{
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param uri the URI of the new resource.
+ * @generated
+ */
+ public Testmodel562011ResourceImpl(URI uri)
+ {
+ super(uri);
+ }
+
+} // Testmodel562011ResourceImpl
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011Switch.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011Switch.java
new file mode 100644
index 0000000000..4b378e1d81
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011Switch.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+
+import Testmodel562011.DocumentRoot;
+import Testmodel562011.SomeContentType;
+import Testmodel562011.Testmodel562011Package;
+
+/**
+ * <!-- 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 Testmodel562011.Testmodel562011Package
+ * @generated
+ */
+public class Testmodel562011Switch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Testmodel562011Package modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Testmodel562011Switch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = Testmodel562011Package.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * 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
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case Testmodel562011Package.DOCUMENT_ROOT:
+ {
+ DocumentRoot documentRoot = (DocumentRoot)theEObject;
+ T result = caseDocumentRoot(documentRoot);
+ if (result == null)
+ {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case Testmodel562011Package.SOME_CONTENT_TYPE:
+ {
+ SomeContentType someContentType = (SomeContentType)theEObject;
+ T result = caseSomeContentType(someContentType);
+ if (result == null)
+ {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Document 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>Document Root</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDocumentRoot(DocumentRoot object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Some Content Type</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>Some Content Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSomeContentType(SomeContentType 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
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} // Testmodel562011Switch
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011XMLProcessor.java b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011XMLProcessor.java
new file mode 100644
index 0000000000..81f3b1ee1b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel562011/util/Testmodel562011XMLProcessor.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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 Testmodel562011.util;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageRegistryImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.util.XMLProcessor;
+
+import java.util.Map;
+
+import Testmodel562011.Testmodel562011Package;
+
+/**
+ * This class contains helper methods to serialize and deserialize XML documents
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Testmodel562011XMLProcessor extends XMLProcessor
+{
+
+ /**
+ * Public constructor to instantiate the helper.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Testmodel562011XMLProcessor()
+ {
+ super(new EPackageRegistryImpl(EPackage.Registry.INSTANCE));
+ extendedMetaData.putPackage(null, Testmodel562011Package.eINSTANCE);
+ }
+
+ /**
+ * Register for "*" and "xml" file extensions the Testmodel562011ResourceFactoryImpl factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Map<String, Resource.Factory> getRegistrations()
+ {
+ if (registrations == null)
+ {
+ super.getRegistrations();
+ registrations.put(XML_EXTENSION, new Testmodel562011ResourceFactoryImpl());
+ registrations.put(STAR_EXTENSION, new Testmodel562011ResourceFactoryImpl());
+ }
+ return registrations;
+ }
+
+} // Testmodel562011XMLProcessor
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.ecore b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.ecore
new file mode 100644
index 0000000000..8c696619d2
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.ecore
@@ -0,0 +1,60 @@
+<?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="Testmodel562011" nsURI="platform:/resource/org.eclipse.emf.cdo.tests/model_562011/Testmodel_562011.xsd"
+ nsPrefix="Testmodel562011">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="qualified" value="false"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="DocumentRoot">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value=""/>
+ <details key="kind" value="mixed"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mixed" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="elementWildcard"/>
+ <details key="name" value=":mixed"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="xMLNSPrefixMap" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ transient="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="xmlns:prefix"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="xSISchemaLocation" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ transient="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="xsi:schemaLocation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="someContent" upperBound="-2"
+ eType="#//SomeContentType" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="SomeContent"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SomeContentType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="SomeContent_._type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="someElem" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="SomeElem"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.genmodel b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.genmodel
new file mode 100644
index 0000000000..3b112f8480
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.genmodel
@@ -0,0 +1,24 @@
+<?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" modelDirectory="/org.eclipse.emf.cdo.tests/model" editDirectory=""
+ editorDirectory="" modelPluginID="org.eclipse.emf.cdo.tests" modelName="Testmodel_562011"
+ updateClasspath="false" rootExtendsInterface="org.eclipse.emf.cdo.CDOObject" rootExtendsClass="org.eclipse.emf.internal.cdo.CDOObjectImpl"
+ reflectiveDelegation="true" testsDirectory="" importerID="org.eclipse.xsd.ecore.importer"
+ featureDelegation="Reflective" complianceLevel="8.0" copyrightFields="false" providerRootExtendsClass="org.eclipse.emf.cdo.edit.CDOItemProviderAdapter"
+ operationReflection="true" importOrganizing="true" cleanup="true">
+ <foreignModel>Testmodel_562011.xsd</foreignModel>
+ <modelPluginVariables>CDO=org.eclipse.emf.cdo</modelPluginVariables>
+ <editPluginVariables>CDO_EDIT=org.eclipse.emf.cdo.edit</editPluginVariables>
+ <genPackages prefix="Testmodel562011" resource="XML" disposableProviderFactory="true"
+ ecorePackage="Testmodel_562011.ecore#/">
+ <genClasses ecoreClass="Testmodel_562011.ecore#//DocumentRoot">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute Testmodel_562011.ecore#//DocumentRoot/mixed"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference Testmodel_562011.ecore#//DocumentRoot/xMLNSPrefixMap"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference Testmodel_562011.ecore#//DocumentRoot/xSISchemaLocation"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Testmodel_562011.ecore#//DocumentRoot/someContent"/>
+ </genClasses>
+ <genClasses ecoreClass="Testmodel_562011.ecore#//SomeContentType">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Testmodel_562011.ecore#//SomeContentType/someElem"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.xml b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.xml
new file mode 100644
index 0000000000..d1aae14e0c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.xml
@@ -0,0 +1,3 @@
+<SomeContent>
+ <SomeElem>Hello</SomeElem>
+</SomeContent> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.xsd b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.xsd
new file mode 100644
index 0000000000..d7882387bf
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/model/Testmodel_562011.xsd
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="SomeContent">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="SomeElem" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.tests/plugin.xml b/plugins/org.eclipse.emf.cdo.tests/plugin.xml
index fc882b72ad..4041104358 100644
--- a/plugins/org.eclipse.emf.cdo.tests/plugin.xml
+++ b/plugins/org.eclipse.emf.cdo.tests/plugin.xml
@@ -35,4 +35,18 @@
</package>
</extension>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated Testmodel_562011 -->
+ <package
+ uri="platform:/resource/org.eclipse.emf.cdo.tests/model_562011/Testmodel_562011.xsd"
+ class="Testmodel562011.Testmodel562011Package"
+ genModel="model/Testmodel_562011.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.extension_parser">
+ <!-- @generated Testmodel_562011 -->
+ <parser
+ type="testmodel562011"
+ class="Testmodel562011.util.Testmodel562011ResourceFactoryImpl"/>
+ </extension>
</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java
index 77a44288d6..e2909930b7 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java
@@ -47,6 +47,7 @@ public class AllConfigs extends ConfigTestSuite
testClasses.add(ComplexTest.class);
testClasses.add(AttributeTest.class);
// testClasses.add(CommitPerformanceTest.class);
+ // testClasses.add(BigModelTest.class);
testClasses.add(EnumTest.class);
testClasses.add(EMapTest.class);
testClasses.add(UnsetTest.class);
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BigModelTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BigModelTest.java
new file mode 100644
index 0000000000..c9285d347c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BigModelTest.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2010-2012 Eike Stepper (Loehne, 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;
+
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.tests.model1.Category;
+import org.eclipse.emf.cdo.tests.model1.Product1;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.util.CDOUtil;
+
+import org.eclipse.net4j.util.io.IOUtil;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * @author Eike Stepper
+ */
+public class BigModelTest extends AbstractCDOTest
+{
+ private static final int LEVELS = 5;
+
+ private static final int CATEGORIES = 5;
+
+ private static final int PRODUCTS = 100;
+
+ private Category root;
+
+ @Override
+ protected void doSetUp() throws Exception
+ {
+ super.doSetUp();
+
+ root = getModel1Factory().createCategory();
+ root.setName("ROOT");
+ createModel(root, LEVELS);
+
+ CDOSession session = openSession();
+ CDOTransaction transaction = session.openTransaction();
+ Resource resource = transaction.createResource(getResourcePath("res1"));
+ resource.getContents().add(root);
+ log("Committing new objects: " + transaction.getLastSavepoint().getNewObjects().size());
+ }
+
+ private void createModel(Category parent, int levels)
+ {
+ EList<Category> categories = parent.getCategories();
+ for (int i = 0; i < CATEGORIES; i++)
+ {
+ Category category = getModel1Factory().createCategory();
+ category.setName("Category" + levels + "-" + i);
+ categories.add(category);
+ }
+
+ EList<Product1> products = parent.getProducts();
+ for (int i = 0; i < PRODUCTS; i++)
+ {
+ Product1 product = getModel1Factory().createProduct1();
+ product.setName("Product" + levels + "-" + i);
+ products.add(product);
+ }
+
+ if (levels > 0)
+ {
+ for (Category category : categories)
+ {
+ createModel(category, levels - 1);
+ }
+ }
+ }
+
+ public void testBigModel() throws Exception
+ {
+ CDOTransaction transaction = (CDOTransaction)CDOUtil.getCDOObject(root).cdoView();
+ long start = System.currentTimeMillis();
+
+ transaction.commit();
+ long end = System.currentTimeMillis();
+
+ double seconds = (end - start) / 1000d;
+ log("Took: " + seconds + " seconds");
+ }
+
+ protected void log(String message)
+ {
+ IOUtil.OUT().println(message);
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ public static final class WarmUp extends BigModelTest
+ {
+
+ @Override
+ protected void log(String message)
+ {
+ // Do nothing.
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_562011_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_562011_Test.java
new file mode 100644
index 0000000000..3a6cb45948
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_562011_Test.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2020 Eike Stepper (Loehne, 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:
+ * Robert Schulk - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.bugzilla;
+
+import org.eclipse.emf.cdo.tests.AbstractCDOTest;
+import org.eclipse.emf.cdo.tests.bundle.OM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+
+import Testmodel562011.util.Testmodel562011ResourceFactoryImpl;
+
+/**
+ * @author Robert Schulk
+ */
+public class Bugzilla_562011_Test extends AbstractCDOTest
+{
+ public void testDocumentRoot_FeatureMap() throws Exception
+ {
+ Resource resource = new Testmodel562011ResourceFactoryImpl().createResource(null);
+ resource.load(OM.BUNDLE.getInputStream("model/Testmodel_562011.xml"), null);
+
+ EObject eObject = resource.getContents().get(0);
+ System.out.println(eObject);
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/RepositoryConfig.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/RepositoryConfig.java
index 94274551f0..fc043cc107 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/RepositoryConfig.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/RepositoryConfig.java
@@ -640,6 +640,13 @@ public abstract class RepositoryConfig extends Config implements IRepositoryConf
super.tearDown();
}
+ @Override
+ public void mainSuiteFinished() throws Exception
+ {
+ deactivateRepositories();
+ super.mainSuiteFinished();
+ }
+
protected boolean isOptimizing()
{
return false;
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
index 4ca6bb0368..ce67f763e9 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
@@ -60,10 +60,12 @@ import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.BasicEObjectImpl;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EStoreEObjectImpl;
+import org.eclipse.emf.ecore.impl.EStoreEObjectImpl.BasicEStoreFeatureMap;
import org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.Resource.Internal;
import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.emf.spi.cdo.CDOStore;
import org.eclipse.emf.spi.cdo.FSMUtil;
@@ -704,9 +706,16 @@ public class CDOObjectImpl extends MinimalEStoreEObjectImpl implements InternalC
if (result == null)
{
EStructuralFeature eStructuralFeature = eDynamicFeature(dynamicFeatureID);
- if (classInfo.isPersistent(dynamicFeatureID) && eStructuralFeature.isMany())
+ if (classInfo.isPersistent(dynamicFeatureID))
{
- eSettings[index] = result = createList(eStructuralFeature);
+ if (classInfo.hasPersistentFeatureMaps() && FeatureMapUtil.isFeatureMap(eStructuralFeature))
+ {
+ eSettings[index] = result = new BasicEStoreFeatureMap(this, eStructuralFeature);
+ }
+ else if (eStructuralFeature.isMany())
+ {
+ eSettings[index] = result = createList(eStructuralFeature);
+ }
}
}

Back to the top