diff options
author | Eike Stepper | 2020-05-22 05:14:47 +0000 |
---|---|---|
committer | Eike Stepper | 2020-05-22 05:14:47 +0000 |
commit | 237678ad4bba83d314a3bb0096e2d4cbdc4efd7a (patch) | |
tree | 88c7fd40c41bdeecf1a442fe9d3b1509a2bfb937 /plugins | |
parent | c468283b6ee1247eaee03c9fd26d3b387159b553 (diff) | |
download | cdo-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
Diffstat (limited to 'plugins')
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<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" 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<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" 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); + } } } |