Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Taal2013-02-28 17:42:25 -0500
committerMartin Taal2013-02-28 17:42:25 -0500
commit0c96040de3c3f55446c38927f06bfac279bbc472 (patch)
tree7f2c00b5aa6fb3a708e7cdd54f19a1b70af47d97
parente727e76559c5a87fdcb7743a34548c6eafb3f2b2 (diff)
downloadorg.eclipse.emf.teneo-0c96040de3c3f55446c38927f06bfac279bbc472.tar.gz
org.eclipse.emf.teneo-0c96040de3c3f55446c38927f06bfac279bbc472.tar.xz
org.eclipse.emf.teneo-0c96040de3c3f55446c38927f06bfac279bbc472.zip
Fixes issue 401710
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditHandler.java3
-rw-r--r--tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/Bz401710Action_hsqldb_e_o_hibernate.hbm.xml107
-rw-r--r--tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/Bz401710Action_hsqldb_h_o_hibernate.hbm.xml110
-rwxr-xr-xtests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/AllTests.java1
-rw-r--r--tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/Bz401710Action.java29
-rwxr-xr-xtests/org.eclipse.emf.teneo.samples/META-INF/MANIFEST.MF3
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/Bz401710Factory.java42
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/Bz401710Package.java310
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/IDummy.java51
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/IIdentifiable.java77
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/RealClass.java17
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/Bz401710FactoryImpl.java95
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/Bz401710PackageImpl.java275
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/RealClassImpl.java306
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/model/bz401710.ecore24
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/model/bz401710.genmodel18
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/util/Bz401710AdapterFactory.java156
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/util/Bz401710Switch.java154
18 files changed, 1778 insertions, 0 deletions
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditHandler.java b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditHandler.java
index 7d4960732..c5a5a5abb 100644
--- a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditHandler.java
+++ b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditHandler.java
@@ -586,6 +586,9 @@ public class AuditHandler implements ExtensionPoint {
auditingEClass.getESuperTypes().add(TeneoauditingPackage.eINSTANCE.getTeneoAuditEntry());
} else {
for (EClass eSuperClass : eClass.getESuperTypes()) {
+ if (isNoAuditing(po, eSuperClass)) {
+ continue;
+ }
auditingEClass.getESuperTypes().add(
getSuperAuditingEClass(dataStore, eSuperClass, registry, po));
}
diff --git a/tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/Bz401710Action_hsqldb_e_o_hibernate.hbm.xml b/tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/Bz401710Action_hsqldb_e_o_hibernate.hbm.xml
new file mode 100644
index 000000000..1b4297d24
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/Bz401710Action_hsqldb_e_o_hibernate.hbm.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping auto-import="false">
+ <class name="org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable" entity-name="IIdentifiable" abstract="true" lazy="false" table="`IIDENTIFIABLE`">
+ <meta attribute="eclassName" inherit="false">IIdentifiable</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/bz401710</meta>
+ <id name="id" type="java.lang.String">
+ <column not-null="true" unique="false" name="`BDS_ID`"/>
+ </id>
+ <version name="bdsVersion" type="long">
+ <column not-null="false" unique="false" name="`BDS_VERSION`"/>
+ </version>
+ </class>
+ <joined-subclass name="org.eclipse.emf.teneo.samples.issues.bz401710.impl.RealClassImpl" entity-name="RealClass" abstract="false" lazy="false" extends="IIdentifiable" table="`REALCLASS`">
+ <meta attribute="eclassName" inherit="false">RealClass</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/bz401710</meta>
+ <key>
+ <column name="`IDUMMY_E_ID`"/>
+ </key>
+ <property name="name" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`NAME`"/>
+ </property>
+ </joined-subclass>
+ <class name="org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.impl.TeneoAuditCommitInfoImpl" entity-name="TeneoAuditCommitInfo" abstract="false" lazy="false" table="`TENEOAUDITCOMMITINFO`">
+ <meta attribute="eclassName" inherit="false">TeneoAuditCommitInfo</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/hibernate/auditing</meta>
+ <id name="id" type="long" unsaved-value="0">
+ <column not-null="true" unique="false" name="`ID`"/>
+ <generator class="native"/>
+ </id>
+ <version name="version" type="long">
+ <column not-null="true" unique="false" name="`VERSION`"/>
+ </version>
+ <property name="user" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`USER`"/>
+ </property>
+ <property name="comment" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`COMMENT`" length="2000"/>
+ </property>
+ <property name="commitTime" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`COMMITTIME`"/>
+ </property>
+ </class>
+ <class name="org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.impl.TeneoAuditEntryImpl" entity-name="IIdentifiableAuditing" abstract="false" lazy="false" table="`IIDENTIFIABLEAUDITING`">
+ <meta attribute="eclassName" inherit="false">IIdentifiableAuditing</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/bz401710Auditing</meta>
+ <id name="teneo_audit_id" type="long" unsaved-value="0">
+ <column not-null="true" unique="false" name="`TENEO_AUDIT_ID`"/>
+ <generator class="native"/>
+ </id>
+ <version name="teneo_version" type="long">
+ <column not-null="true" unique="false" name="`TENEO_VERSION`"/>
+ </version>
+ <property name="teneo_object_id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`TENEO_OBJECT_ID`" unique-key="c0,c1,c2"/>
+ </property>
+ <property name="teneo_owner_object_id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`TENEO_OWNER_OBJECT_ID`"/>
+ </property>
+ <property name="teneo_start" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`TENEO_START`" unique-key="c0"/>
+ </property>
+ <property name="teneo_end" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`TENEO_END`" unique-key="c1"/>
+ </property>
+ <many-to-one name="teneo_commit_info" entity-name="TeneoAuditCommitInfo" lazy="false" cascade="merge,persist,save-update,lock,refresh" foreign-key="IIDENTIFIABLEAUDITING_TENEO_COMMIT_INFO" insert="true" update="true" not-null="true">
+ <column not-null="true" unique="false" name="`TENEOAUDITCOMMITINFO_TENEO_COMMIT_INFO_ID`"/>
+ </many-to-one>
+ <property name="teneo_audit_kind" lazy="false" not-null="true" insert="true" update="true" unique="false">
+ <column not-null="true" unique="false" name="`TENEO_AUDIT_KIND`"/>
+ <type name="org.eclipse.emf.teneo.hibernate.mapping.ENumUserType">
+ <param name="enumClass">org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.TeneoAuditKind</param>
+ <param name="eclassifier">TeneoAuditKind</param>
+ <param name="epackage">http://www.eclipse.org/emf/teneo/hibernate/auditing</param>
+ </type>
+ </property>
+ <property name="teneo_container_id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`TENEO_CONTAINER_ID`"/>
+ </property>
+ <property name="teneo_container_feature_id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="int">
+ <column not-null="false" unique="false" name="`TENEO_CONTAINER_FEATURE_ID`"/>
+ </property>
+ <property name="teneo_previous_start" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`TENEO_PREVIOUS_START`" unique-key="c2"/>
+ </property>
+ <property name="teneo_object_version" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`TENEO_OBJECT_VERSION`"/>
+ </property>
+ <property name="teneo_resourceid" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`TENEO_RESOURCEID`"/>
+ </property>
+ <property name="id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`ID`"/>
+ </property>
+ <property name="bdsVersion" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`BDSVERSION`"/>
+ </property>
+ </class>
+ <joined-subclass name="org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.impl.TeneoAuditEntryImpl" entity-name="RealClassAuditing" abstract="false" lazy="false" extends="IIdentifiableAuditing" table="`REALCLASSAUDITING`">
+ <meta attribute="eclassName" inherit="false">RealClassAuditing</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/bz401710Auditing</meta>
+ <key>
+ <column name="`IIDENTIFIABLEAUDITING_TENEO_AUDIT_ID`"/>
+ </key>
+ </joined-subclass>
+</hibernate-mapping> \ No newline at end of file
diff --git a/tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/Bz401710Action_hsqldb_h_o_hibernate.hbm.xml b/tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/Bz401710Action_hsqldb_h_o_hibernate.hbm.xml
new file mode 100644
index 000000000..0090df0a4
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/Bz401710Action_hsqldb_h_o_hibernate.hbm.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping auto-import="false">
+ <class name="org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable" entity-name="IIdentifiable" abstract="true" lazy="false" discriminator-value="IIdentifiable" table="`IIDENTIFIABLE`">
+ <meta attribute="eclassName" inherit="false">IIdentifiable</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/bz401710</meta>
+ <id name="id" type="java.lang.String">
+ <column not-null="true" unique="false" name="`BDS_ID`"/>
+ </id>
+ <discriminator type="string">
+ <column name="`DTYPE`" index="IIDENTIFIABLEDTYPE" length="255" not-null="true"/>
+ </discriminator>
+ <version name="bdsVersion" type="long">
+ <column not-null="false" unique="false" name="`BDS_VERSION`"/>
+ </version>
+ </class>
+ <subclass name="org.eclipse.emf.teneo.samples.issues.bz401710.impl.RealClassImpl" entity-name="RealClass" abstract="false" lazy="false" extends="IIdentifiable" discriminator-value="RealClass">
+ <meta attribute="eclassName" inherit="false">RealClass</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/bz401710</meta>
+ <property name="name" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`NAME`"/>
+ </property>
+ </subclass>
+ <class name="org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.impl.TeneoAuditCommitInfoImpl" entity-name="TeneoAuditCommitInfo" abstract="false" lazy="false" discriminator-value="TeneoAuditCommitInfo" table="`TENEOAUDITCOMMITINFO`">
+ <meta attribute="eclassName" inherit="false">TeneoAuditCommitInfo</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/hibernate/auditing</meta>
+ <id name="id" type="long" unsaved-value="0">
+ <column not-null="true" unique="false" name="`ID`"/>
+ <generator class="native"/>
+ </id>
+ <discriminator type="string">
+ <column name="`DTYPE`" index="TENEOAUDITCOMMITINFODTYPE" length="255" not-null="true"/>
+ </discriminator>
+ <version name="version" type="long">
+ <column not-null="true" unique="false" name="`VERSION`"/>
+ </version>
+ <property name="user" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`USER`"/>
+ </property>
+ <property name="comment" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`COMMENT`" length="2000"/>
+ </property>
+ <property name="commitTime" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`COMMITTIME`"/>
+ </property>
+ </class>
+ <class name="org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.impl.TeneoAuditEntryImpl" entity-name="IIdentifiableAuditing" abstract="false" lazy="false" discriminator-value="IIdentifiableAuditing" table="`IIDENTIFIABLEAUDITING`">
+ <meta attribute="eclassName" inherit="false">IIdentifiableAuditing</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/bz401710Auditing</meta>
+ <id name="teneo_audit_id" type="long" unsaved-value="0">
+ <column not-null="true" unique="false" name="`TENEO_AUDIT_ID`"/>
+ <generator class="native"/>
+ </id>
+ <discriminator type="string">
+ <column name="`DTYPE`" index="IIDENTIFIABLEAUDITINGDTYPE" length="255" not-null="true"/>
+ </discriminator>
+ <version name="teneo_version" type="long">
+ <column not-null="true" unique="false" name="`TENEO_VERSION`"/>
+ </version>
+ <property name="teneo_object_id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`TENEO_OBJECT_ID`" unique-key="c0,c1,c2"/>
+ </property>
+ <property name="teneo_owner_object_id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`TENEO_OWNER_OBJECT_ID`"/>
+ </property>
+ <property name="teneo_start" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`TENEO_START`" unique-key="c0"/>
+ </property>
+ <property name="teneo_end" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`TENEO_END`" unique-key="c1"/>
+ </property>
+ <many-to-one name="teneo_commit_info" entity-name="TeneoAuditCommitInfo" lazy="false" cascade="merge,persist,save-update,lock,refresh" foreign-key="IIDENTIFIABLEAUDITING_TENEO_COMMIT_INFO" insert="true" update="true" not-null="true">
+ <column not-null="true" unique="false" name="`TENEOAUDITCOMMITINFO_TENEO_COMMIT_INFO_ID`"/>
+ </many-to-one>
+ <property name="teneo_audit_kind" lazy="false" not-null="true" insert="true" update="true" unique="false">
+ <column not-null="true" unique="false" name="`TENEO_AUDIT_KIND`"/>
+ <type name="org.eclipse.emf.teneo.hibernate.mapping.ENumUserType">
+ <param name="enumClass">org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.TeneoAuditKind</param>
+ <param name="eclassifier">TeneoAuditKind</param>
+ <param name="epackage">http://www.eclipse.org/emf/teneo/hibernate/auditing</param>
+ </type>
+ </property>
+ <property name="teneo_container_id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`TENEO_CONTAINER_ID`"/>
+ </property>
+ <property name="teneo_container_feature_id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="int">
+ <column not-null="false" unique="false" name="`TENEO_CONTAINER_FEATURE_ID`"/>
+ </property>
+ <property name="teneo_previous_start" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`TENEO_PREVIOUS_START`" unique-key="c2"/>
+ </property>
+ <property name="teneo_object_version" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`TENEO_OBJECT_VERSION`"/>
+ </property>
+ <property name="teneo_resourceid" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`TENEO_RESOURCEID`"/>
+ </property>
+ <property name="id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
+ <column not-null="false" unique="false" name="`ID`"/>
+ </property>
+ <property name="bdsVersion" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
+ <column not-null="false" unique="false" name="`BDSVERSION`"/>
+ </property>
+ </class>
+ <subclass name="org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.impl.TeneoAuditEntryImpl" entity-name="RealClassAuditing" abstract="false" lazy="false" extends="IIdentifiableAuditing" discriminator-value="RealClassAuditing">
+ <meta attribute="eclassName" inherit="false">RealClassAuditing</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/bz401710Auditing</meta>
+ </subclass>
+</hibernate-mapping> \ No newline at end of file
diff --git a/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/AllTests.java b/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/AllTests.java
index 88789ae7d..986f2ffff 100755
--- a/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/AllTests.java
+++ b/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/AllTests.java
@@ -54,6 +54,7 @@ public class AllTests {
public static Test suite() {
TestSuite suite = new MultiCfgTestSuite("Test for org.eclipse.emf.teneo.hibernate.test.issues",
HibernateTestbed.instance().getConfigurations());
+ suite.addTestSuite(Bz401710Action.class);
suite.addTestSuite(Bz400088Action.class);
// suite.addTestSuite(PersistUMLAction.class);
suite.addTestSuite(Bz387421Action.class);
diff --git a/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/Bz401710Action.java b/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/Bz401710Action.java
new file mode 100644
index 000000000..b942b3c59
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/Bz401710Action.java
@@ -0,0 +1,29 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) 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: Martin Taal </copyright> $Id:
+ * AgilAction.java,v 1.1 2007/03/28 13:58:33 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.test.issues;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package;
+import org.eclipse.emf.teneo.test.AbstractTestAction;
+import org.eclipse.emf.teneo.test.stores.TestStore;
+
+/**
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.1 $
+ */
+public class Bz401710Action extends AbstractTestAction {
+
+ public Bz401710Action() {
+ super(new EPackage[] { Bz401710Package.eINSTANCE });
+ }
+
+ @Override
+ public void doAction(TestStore store) {
+ }
+}
diff --git a/tests/org.eclipse.emf.teneo.samples/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.teneo.samples/META-INF/MANIFEST.MF
index 059026d56..a506f74f5 100755
--- a/tests/org.eclipse.emf.teneo.samples/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.teneo.samples/META-INF/MANIFEST.MF
@@ -1633,6 +1633,9 @@ Export-Package: com.example.car;uses:="org.eclipse.emf.common.util,org.eclipse.e
org.eclipse.emf.teneo.samples.issues.bz400088,
org.eclipse.emf.teneo.samples.issues.bz400088.impl,
org.eclipse.emf.teneo.samples.issues.bz400088.util,
+ org.eclipse.emf.teneo.samples.issues.bz401710,
+ org.eclipse.emf.teneo.samples.issues.bz401710.impl,
+ org.eclipse.emf.teneo.samples.issues.bz401710.util,
org.eclipse.emf.teneo.samples.issues.enumtest;uses:="org.eclipse.emf.common.util,org.eclipse.emf.ecore",
org.eclipse.emf.teneo.samples.issues.enumtest.impl;uses:="org.eclipse.emf.teneo.samples.issues.enumtest,org.eclipse.emf.ecore.impl,org.eclipse.emf.ecore",
org.eclipse.emf.teneo.samples.issues.enumtest.model,
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/Bz401710Factory.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/Bz401710Factory.java
new file mode 100644
index 000000000..29d03db1a
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/Bz401710Factory.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.bz401710;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package
+ * @generated
+ */
+public interface Bz401710Factory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Bz401710Factory eINSTANCE = org.eclipse.emf.teneo.samples.issues.bz401710.impl.Bz401710FactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Real Class</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Real Class</em>'.
+ * @generated
+ */
+ RealClass createRealClass();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Bz401710Package getBz401710Package();
+
+} //Bz401710Factory
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/Bz401710Package.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/Bz401710Package.java
new file mode 100644
index 000000000..48f0306da
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/Bz401710Package.java
@@ -0,0 +1,310 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.bz401710;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Factory
+ * @model kind="package"
+ * @generated
+ */
+public interface Bz401710Package extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "bz401710";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/teneo/samples/issues/bz401710";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "bz401710";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Bz401710Package eINSTANCE = org.eclipse.emf.teneo.samples.issues.bz401710.impl.Bz401710PackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IDummy <em>IDummy</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.IDummy
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.impl.Bz401710PackageImpl#getIDummy()
+ * @generated
+ */
+ int IDUMMY = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDUMMY__NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>IDummy</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDUMMY_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable <em>IIdentifiable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.impl.Bz401710PackageImpl#getIIdentifiable()
+ * @generated
+ */
+ int IIDENTIFIABLE = 1;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IIDENTIFIABLE__ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Bds Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IIDENTIFIABLE__BDS_VERSION = 1;
+
+ /**
+ * The number of structural features of the '<em>IIdentifiable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IIDENTIFIABLE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.issues.bz401710.impl.RealClassImpl <em>Real Class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.impl.RealClassImpl
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.impl.Bz401710PackageImpl#getRealClass()
+ * @generated
+ */
+ int REAL_CLASS = 2;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REAL_CLASS__NAME = IDUMMY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REAL_CLASS__ID = IDUMMY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Bds Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REAL_CLASS__BDS_VERSION = IDUMMY_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Real Class</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REAL_CLASS_FEATURE_COUNT = IDUMMY_FEATURE_COUNT + 2;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IDummy <em>IDummy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>IDummy</em>'.
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.IDummy
+ * @generated
+ */
+ EClass getIDummy();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IDummy#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.IDummy#getName()
+ * @see #getIDummy()
+ * @generated
+ */
+ EAttribute getIDummy_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable <em>IIdentifiable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>IIdentifiable</em>'.
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable
+ * @generated
+ */
+ EClass getIIdentifiable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable#getId()
+ * @see #getIIdentifiable()
+ * @generated
+ */
+ EAttribute getIIdentifiable_Id();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable#getBdsVersion <em>Bds Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bds Version</em>'.
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable#getBdsVersion()
+ * @see #getIIdentifiable()
+ * @generated
+ */
+ EAttribute getIIdentifiable_BdsVersion();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.issues.bz401710.RealClass <em>Real Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Real Class</em>'.
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.RealClass
+ * @generated
+ */
+ EClass getRealClass();
+
+ /**
+ * 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
+ */
+ Bz401710Factory getBz401710Factory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IDummy <em>IDummy</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.IDummy
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.impl.Bz401710PackageImpl#getIDummy()
+ * @generated
+ */
+ EClass IDUMMY = eINSTANCE.getIDummy();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute IDUMMY__NAME = eINSTANCE.getIDummy_Name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable <em>IIdentifiable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.impl.Bz401710PackageImpl#getIIdentifiable()
+ * @generated
+ */
+ EClass IIDENTIFIABLE = eINSTANCE.getIIdentifiable();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute IIDENTIFIABLE__ID = eINSTANCE.getIIdentifiable_Id();
+
+ /**
+ * The meta object literal for the '<em><b>Bds Version</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute IIDENTIFIABLE__BDS_VERSION = eINSTANCE.getIIdentifiable_BdsVersion();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.samples.issues.bz401710.impl.RealClassImpl <em>Real Class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.impl.RealClassImpl
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.impl.Bz401710PackageImpl#getRealClass()
+ * @generated
+ */
+ EClass REAL_CLASS = eINSTANCE.getRealClass();
+
+ }
+
+} //Bz401710Package
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/IDummy.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/IDummy.java
new file mode 100644
index 000000000..45e2cf8fb
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/IDummy.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.bz401710;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IDummy</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.issues.bz401710.IDummy#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package#getIDummy()
+ * @model interface="true" abstract="true"
+ * annotation="teneo.jpa value='@Transient'"
+ * @generated
+ */
+public interface IDummy extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package#getIDummy_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IDummy#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // IDummy
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/IIdentifiable.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/IIdentifiable.java
new file mode 100644
index 000000000..a11e2ce16
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/IIdentifiable.java
@@ -0,0 +1,77 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.bz401710;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IIdentifiable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable#getBdsVersion <em>Bds Version</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package#getIIdentifiable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface IIdentifiable extends EObject {
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package#getIIdentifiable_Id()
+ * @model annotation="teneo.jpa value='@Id @Column(name=\"BDS_ID\", nullable=\"false\")'"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Bds Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bds Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bds Version</em>' attribute.
+ * @see #setBdsVersion(long)
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package#getIIdentifiable_BdsVersion()
+ * @model annotation="teneo.jpa value='@Column(name=\"BDS_VERSION\") @Version'"
+ * @generated
+ */
+ long getBdsVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable#getBdsVersion <em>Bds Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bds Version</em>' attribute.
+ * @see #getBdsVersion()
+ * @generated
+ */
+ void setBdsVersion(long value);
+
+} // IIdentifiable
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/RealClass.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/RealClass.java
new file mode 100644
index 000000000..146beef9e
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/RealClass.java
@@ -0,0 +1,17 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.bz401710;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Real Class</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package#getRealClass()
+ * @model
+ * @generated
+ */
+public interface RealClass extends IDummy, IIdentifiable {
+} // RealClass
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/Bz401710FactoryImpl.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/Bz401710FactoryImpl.java
new file mode 100644
index 000000000..aaa7e643c
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/Bz401710FactoryImpl.java
@@ -0,0 +1,95 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.bz401710.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.emf.teneo.samples.issues.bz401710.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Bz401710FactoryImpl extends EFactoryImpl implements Bz401710Factory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Bz401710Factory init() {
+ try {
+ Bz401710Factory theBz401710Factory = (Bz401710Factory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/teneo/samples/issues/bz401710");
+ if (theBz401710Factory != null) {
+ return theBz401710Factory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Bz401710FactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Bz401710FactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Bz401710Package.REAL_CLASS: return createRealClass();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RealClass createRealClass() {
+ RealClassImpl realClass = new RealClassImpl();
+ return realClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Bz401710Package getBz401710Package() {
+ return (Bz401710Package)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Bz401710Package getPackage() {
+ return Bz401710Package.eINSTANCE;
+ }
+
+} //Bz401710FactoryImpl
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/Bz401710PackageImpl.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/Bz401710PackageImpl.java
new file mode 100644
index 000000000..e819a5ddc
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/Bz401710PackageImpl.java
@@ -0,0 +1,275 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.bz401710.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Factory;
+import org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package;
+import org.eclipse.emf.teneo.samples.issues.bz401710.IDummy;
+import org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable;
+import org.eclipse.emf.teneo.samples.issues.bz401710.RealClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Bz401710PackageImpl extends EPackageImpl implements Bz401710Package {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass iDummyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass iIdentifiableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass realClassEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Bz401710PackageImpl() {
+ super(eNS_URI, Bz401710Factory.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 Bz401710Package#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 Bz401710Package init() {
+ if (isInited) return (Bz401710Package)EPackage.Registry.INSTANCE.getEPackage(Bz401710Package.eNS_URI);
+
+ // Obtain or create and register package
+ Bz401710PackageImpl theBz401710Package = (Bz401710PackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof Bz401710PackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new Bz401710PackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theBz401710Package.createPackageContents();
+
+ // Initialize created meta-data
+ theBz401710Package.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theBz401710Package.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Bz401710Package.eNS_URI, theBz401710Package);
+ return theBz401710Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIDummy() {
+ return iDummyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIDummy_Name() {
+ return (EAttribute)iDummyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIIdentifiable() {
+ return iIdentifiableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIIdentifiable_Id() {
+ return (EAttribute)iIdentifiableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIIdentifiable_BdsVersion() {
+ return (EAttribute)iIdentifiableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRealClass() {
+ return realClassEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Bz401710Factory getBz401710Factory() {
+ return (Bz401710Factory)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
+ iDummyEClass = createEClass(IDUMMY);
+ createEAttribute(iDummyEClass, IDUMMY__NAME);
+
+ iIdentifiableEClass = createEClass(IIDENTIFIABLE);
+ createEAttribute(iIdentifiableEClass, IIDENTIFIABLE__ID);
+ createEAttribute(iIdentifiableEClass, IIDENTIFIABLE__BDS_VERSION);
+
+ realClassEClass = createEClass(REAL_CLASS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ realClassEClass.getESuperTypes().add(this.getIDummy());
+ realClassEClass.getESuperTypes().add(this.getIIdentifiable());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(iDummyEClass, IDummy.class, "IDummy", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIDummy_Name(), ecorePackage.getEString(), "name", null, 0, 1, IDummy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(iIdentifiableEClass, IIdentifiable.class, "IIdentifiable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIIdentifiable_Id(), ecorePackage.getEString(), "id", null, 0, 1, IIdentifiable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIIdentifiable_BdsVersion(), ecorePackage.getELong(), "bdsVersion", null, 0, 1, IIdentifiable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(realClassEClass, RealClass.class, "RealClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // teneo.jpa
+ createTeneoAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>teneo.jpa</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createTeneoAnnotations() {
+ String source = "teneo.jpa";
+ addAnnotation
+ (iDummyEClass,
+ source,
+ new String[] {
+ "value", "@Transient"
+ });
+ addAnnotation
+ (getIIdentifiable_Id(),
+ source,
+ new String[] {
+ "value", "@Id @Column(name=\"BDS_ID\", nullable=\"false\")"
+ });
+ addAnnotation
+ (getIIdentifiable_BdsVersion(),
+ source,
+ new String[] {
+ "value", "@Column(name=\"BDS_VERSION\") @Version"
+ });
+ }
+
+} //Bz401710PackageImpl
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/RealClassImpl.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/RealClassImpl.java
new file mode 100644
index 000000000..ab7e83646
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/impl/RealClassImpl.java
@@ -0,0 +1,306 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.bz401710.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package;
+import org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable;
+import org.eclipse.emf.teneo.samples.issues.bz401710.RealClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Real Class</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.issues.bz401710.impl.RealClassImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.issues.bz401710.impl.RealClassImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.issues.bz401710.impl.RealClassImpl#getBdsVersion <em>Bds Version</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RealClassImpl extends EObjectImpl implements RealClass {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBdsVersion() <em>Bds Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBdsVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final long BDS_VERSION_EDEFAULT = 0L;
+
+ /**
+ * The cached value of the '{@link #getBdsVersion() <em>Bds Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBdsVersion()
+ * @generated
+ * @ordered
+ */
+ protected long bdsVersion = BDS_VERSION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RealClassImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Bz401710Package.Literals.REAL_CLASS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Bz401710Package.REAL_CLASS__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId) {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Bz401710Package.REAL_CLASS__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getBdsVersion() {
+ return bdsVersion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBdsVersion(long newBdsVersion) {
+ long oldBdsVersion = bdsVersion;
+ bdsVersion = newBdsVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Bz401710Package.REAL_CLASS__BDS_VERSION, oldBdsVersion, bdsVersion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Bz401710Package.REAL_CLASS__NAME:
+ return getName();
+ case Bz401710Package.REAL_CLASS__ID:
+ return getId();
+ case Bz401710Package.REAL_CLASS__BDS_VERSION:
+ return getBdsVersion();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Bz401710Package.REAL_CLASS__NAME:
+ setName((String)newValue);
+ return;
+ case Bz401710Package.REAL_CLASS__ID:
+ setId((String)newValue);
+ return;
+ case Bz401710Package.REAL_CLASS__BDS_VERSION:
+ setBdsVersion((Long)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Bz401710Package.REAL_CLASS__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case Bz401710Package.REAL_CLASS__ID:
+ setId(ID_EDEFAULT);
+ return;
+ case Bz401710Package.REAL_CLASS__BDS_VERSION:
+ setBdsVersion(BDS_VERSION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Bz401710Package.REAL_CLASS__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case Bz401710Package.REAL_CLASS__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ case Bz401710Package.REAL_CLASS__BDS_VERSION:
+ return bdsVersion != BDS_VERSION_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == IIdentifiable.class) {
+ switch (derivedFeatureID) {
+ case Bz401710Package.REAL_CLASS__ID: return Bz401710Package.IIDENTIFIABLE__ID;
+ case Bz401710Package.REAL_CLASS__BDS_VERSION: return Bz401710Package.IIDENTIFIABLE__BDS_VERSION;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == IIdentifiable.class) {
+ switch (baseFeatureID) {
+ case Bz401710Package.IIDENTIFIABLE__ID: return Bz401710Package.REAL_CLASS__ID;
+ case Bz401710Package.IIDENTIFIABLE__BDS_VERSION: return Bz401710Package.REAL_CLASS__BDS_VERSION;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", id: ");
+ result.append(id);
+ result.append(", bdsVersion: ");
+ result.append(bdsVersion);
+ result.append(')');
+ return result.toString();
+ }
+
+} //RealClassImpl
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/model/bz401710.ecore b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/model/bz401710.ecore
new file mode 100644
index 000000000..c121ab201
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/model/bz401710.ecore
@@ -0,0 +1,24 @@
+<?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="bz401710" nsURI="http://www.eclipse.org/emf/teneo/samples/issues/bz401710"
+ nsPrefix="bz401710">
+ <eClassifiers xsi:type="ecore:EClass" name="IDummy" abstract="true" interface="true">
+ <eAnnotations source="teneo.jpa">
+ <details key="value" value="@Transient"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IIdentifiable" abstract="true" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="teneo.jpa">
+ <details key="value" value="@Id @Column(name=&quot;BDS_ID&quot;, nullable=&quot;false&quot;)"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bdsVersion" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
+ <eAnnotations source="teneo.jpa">
+ <details key="value" value="@Column(name=&quot;BDS_VERSION&quot;) @Version"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RealClass" eSuperTypes="#//IDummy #//IIdentifiable"/>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/model/bz401710.genmodel b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/model/bz401710.genmodel
new file mode 100644
index 000000000..3109233eb
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/model/bz401710.genmodel
@@ -0,0 +1,18 @@
+<?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.teneo.samples/src" modelPluginID="org.eclipse.emf.teneo.samples"
+ modelName="Bz401710" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
+ copyrightFields="false">
+ <foreignModel>bz401710.ecore</foreignModel>
+ <genPackages prefix="Bz401710" basePackage="org.eclipse.emf.teneo.samples.issues"
+ disposableProviderFactory="true" ecorePackage="bz401710.ecore#/">
+ <genClasses image="false" ecoreClass="bz401710.ecore#//IDummy">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute bz401710.ecore#//IDummy/name"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="bz401710.ecore#//IIdentifiable">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute bz401710.ecore#//IIdentifiable/id"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute bz401710.ecore#//IIdentifiable/bdsVersion"/>
+ </genClasses>
+ <genClasses ecoreClass="bz401710.ecore#//RealClass"/>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/util/Bz401710AdapterFactory.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/util/Bz401710AdapterFactory.java
new file mode 100644
index 000000000..8a178ff5e
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/util/Bz401710AdapterFactory.java
@@ -0,0 +1,156 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.bz401710.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.teneo.samples.issues.bz401710.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package
+ * @generated
+ */
+public class Bz401710AdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Bz401710Package modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Bz401710AdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Bz401710Package.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 Bz401710Switch<Adapter> modelSwitch =
+ new Bz401710Switch<Adapter>() {
+ @Override
+ public Adapter caseIDummy(IDummy object) {
+ return createIDummyAdapter();
+ }
+ @Override
+ public Adapter caseIIdentifiable(IIdentifiable object) {
+ return createIIdentifiableAdapter();
+ }
+ @Override
+ public Adapter caseRealClass(RealClass object) {
+ return createRealClassAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IDummy <em>IDummy</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.IDummy
+ * @generated
+ */
+ public Adapter createIDummyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable <em>IIdentifiable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.IIdentifiable
+ * @generated
+ */
+ public Adapter createIIdentifiableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.samples.issues.bz401710.RealClass <em>Real Class</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.RealClass
+ * @generated
+ */
+ public Adapter createRealClassAdapter() {
+ 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;
+ }
+
+} //Bz401710AdapterFactory
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/util/Bz401710Switch.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/util/Bz401710Switch.java
new file mode 100644
index 000000000..91ff3a06d
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/bz401710/util/Bz401710Switch.java
@@ -0,0 +1,154 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.bz401710.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.emf.teneo.samples.issues.bz401710.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.bz401710.Bz401710Package
+ * @generated
+ */
+public class Bz401710Switch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Bz401710Package modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Bz401710Switch() {
+ if (modelPackage == null) {
+ modelPackage = Bz401710Package.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter 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 Bz401710Package.IDUMMY: {
+ IDummy iDummy = (IDummy)theEObject;
+ T result = caseIDummy(iDummy);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Bz401710Package.IIDENTIFIABLE: {
+ IIdentifiable iIdentifiable = (IIdentifiable)theEObject;
+ T result = caseIIdentifiable(iIdentifiable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Bz401710Package.REAL_CLASS: {
+ RealClass realClass = (RealClass)theEObject;
+ T result = caseRealClass(realClass);
+ if (result == null) result = caseIDummy(realClass);
+ if (result == null) result = caseIIdentifiable(realClass);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>IDummy</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>IDummy</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIDummy(IDummy object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>IIdentifiable</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>IIdentifiable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIIdentifiable(IIdentifiable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Real Class</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>Real Class</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRealClass(RealClass 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;
+ }
+
+} //Bz401710Switch

Back to the top