Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Taal2012-10-12 11:21:10 +0000
committerMartin Taal2012-10-12 11:21:10 +0000
commit09e9d9bb4383dfb8ccb93ba9b1b8563cd3f8a1c4 (patch)
tree4a1e3ae24d10954ed3292ae275db8cd11791c2d9
parent8a3198e40ff2b1011bb0e74fc89ea04b9271a5ef (diff)
downloadorg.eclipse.emf.teneo-09e9d9bb4383dfb8ccb93ba9b1b8563cd3f8a1c4.tar.gz
org.eclipse.emf.teneo-09e9d9bb4383dfb8ccb93ba9b1b8563cd3f8a1c4.tar.xz
org.eclipse.emf.teneo-09e9d9bb4383dfb8ccb93ba9b1b8563cd3f8a1c4.zip
Added testcase for non-mandatory join column
-rw-r--r--tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/NonMandatoryJoinColumnAction_hsqldb_e_o_hibernate.hbm.xml33
-rw-r--r--tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/NonMandatoryJoinColumnAction_hsqldb_h_o_hibernate.hbm.xml39
-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/NonMandatoryJoinColumnAction.java71
-rwxr-xr-xtests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/nonmandatoryjoincolumn.persistence.xml12
-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/nonmandatoryjoincolumn/Bar.java50
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/Foo.java50
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/NonmandatoryjoincolumnFactory.java51
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/NonmandatoryjoincolumnPackage.java217
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/BarImpl.java163
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/FooImpl.java157
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/NonmandatoryjoincolumnFactoryImpl.java106
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/NonmandatoryjoincolumnPackageImpl.java210
-rwxr-xr-xtests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/model/nonmandatoryjoincolumn.ecore11
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/model/nonmandatoryjoincolumn.genmodel16
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/util/NonmandatoryjoincolumnAdapterFactory.java138
-rw-r--r--tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/util/NonmandatoryjoincolumnSwitch.java131
18 files changed, 1459 insertions, 0 deletions
diff --git a/tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/NonMandatoryJoinColumnAction_hsqldb_e_o_hibernate.hbm.xml b/tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/NonMandatoryJoinColumnAction_hsqldb_e_o_hibernate.hbm.xml
new file mode 100644
index 000000000..d52c631d6
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/NonMandatoryJoinColumnAction_hsqldb_e_o_hibernate.hbm.xml
@@ -0,0 +1,33 @@
+<?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.nonmandatoryjoincolumn.impl.FooImpl" entity-name="Foo" abstract="false" lazy="false" table="`FOO`">
+ <meta attribute="eclassName" inherit="false">Foo</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/nonmandatoryjoincolumn</meta>
+ <id type="long" name="e_id" column="e_id" access="org.eclipse.emf.teneo.hibernate.mapping.identifier.IdentifierPropertyHandler">
+ <meta attribute="syntheticId" inherit="false">true</meta>
+ <generator class="native"/>
+ </id>
+ <version name="e_version" column="e_version" access="org.eclipse.emf.teneo.hibernate.mapping.property.VersionPropertyHandler">
+ <meta attribute="syntheticVersion" inherit="false">true</meta>
+ </version>
+ <many-to-one name="bar" entity-name="Bar" lazy="false" cascade="merge,persist,save-update,lock,refresh" foreign-key="FOO_BAR" insert="true" update="true" not-null="true">
+ <column not-null="false" unique="false" name="`BAR_BAR_E_ID`"/>
+ </many-to-one>
+ </class>
+ <class name="org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.BarImpl" entity-name="Bar" abstract="false" lazy="false" table="`BAR`">
+ <meta attribute="eclassName" inherit="false">Bar</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/nonmandatoryjoincolumn</meta>
+ <id type="long" name="e_id" column="e_id" access="org.eclipse.emf.teneo.hibernate.mapping.identifier.IdentifierPropertyHandler">
+ <meta attribute="syntheticId" inherit="false">true</meta>
+ <generator class="native"/>
+ </id>
+ <version name="e_version" column="e_version" access="org.eclipse.emf.teneo.hibernate.mapping.property.VersionPropertyHandler">
+ <meta attribute="syntheticVersion" inherit="false">true</meta>
+ </version>
+ <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>
+ </class>
+</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/NonMandatoryJoinColumnAction_hsqldb_h_o_hibernate.hbm.xml b/tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/NonMandatoryJoinColumnAction_hsqldb_h_o_hibernate.hbm.xml
new file mode 100644
index 000000000..881d095b1
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.hibernate.test/hbm/org.eclipse.emf.teneo.hibernate.test.issues/NonMandatoryJoinColumnAction_hsqldb_h_o_hibernate.hbm.xml
@@ -0,0 +1,39 @@
+<?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.nonmandatoryjoincolumn.impl.FooImpl" entity-name="Foo" abstract="false" lazy="false" discriminator-value="Foo" table="`FOO`">
+ <meta attribute="eclassName" inherit="false">Foo</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/nonmandatoryjoincolumn</meta>
+ <id type="long" name="e_id" column="e_id" access="org.eclipse.emf.teneo.hibernate.mapping.identifier.IdentifierPropertyHandler">
+ <meta attribute="syntheticId" inherit="false">true</meta>
+ <generator class="native"/>
+ </id>
+ <discriminator type="string">
+ <column name="`DTYPE`" index="FOODTYPE" length="255" not-null="true"/>
+ </discriminator>
+ <version name="e_version" column="e_version" access="org.eclipse.emf.teneo.hibernate.mapping.property.VersionPropertyHandler">
+ <meta attribute="syntheticVersion" inherit="false">true</meta>
+ </version>
+ <many-to-one name="bar" entity-name="Bar" lazy="false" cascade="merge,persist,save-update,lock,refresh" foreign-key="FOO_BAR" insert="true" update="true" not-null="true">
+ <column not-null="false" unique="false" name="`BAR_BAR_E_ID`"/>
+ </many-to-one>
+ </class>
+ <class name="org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.BarImpl" entity-name="Bar" abstract="false" lazy="false" discriminator-value="Bar" table="`BAR`">
+ <meta attribute="eclassName" inherit="false">Bar</meta>
+ <meta attribute="epackage" inherit="false">http://www.eclipse.org/emf/teneo/samples/issues/nonmandatoryjoincolumn</meta>
+ <id type="long" name="e_id" column="e_id" access="org.eclipse.emf.teneo.hibernate.mapping.identifier.IdentifierPropertyHandler">
+ <meta attribute="syntheticId" inherit="false">true</meta>
+ <generator class="native"/>
+ </id>
+ <discriminator type="string">
+ <column name="`DTYPE`" index="BARDTYPE" length="255" not-null="true"/>
+ </discriminator>
+ <version name="e_version" column="e_version" access="org.eclipse.emf.teneo.hibernate.mapping.property.VersionPropertyHandler">
+ <meta attribute="syntheticVersion" inherit="false">true</meta>
+ </version>
+ <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>
+ </class>
+</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 4db92e97e..d37686d0e 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
@@ -55,6 +55,7 @@ public class AllTests {
TestSuite suite = new MultiCfgTestSuite(
"Test for org.eclipse.emf.teneo.hibernate.test.issues",
HibernateTestbed.instance().getConfigurations());
+ suite.addTestSuite(NonMandatoryJoinColumnAction.class);
suite.addTestSuite(Bz387421Action.class);
suite.addTestSuite(Bz391134Action.class);
suite.addTestSuite(Bz390774Action.class);
diff --git a/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/NonMandatoryJoinColumnAction.java b/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/NonMandatoryJoinColumnAction.java
new file mode 100644
index 000000000..efe018b4b
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/NonMandatoryJoinColumnAction.java
@@ -0,0 +1,71 @@
+/**
+ * <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 java.util.Properties;
+
+import org.eclipse.bpmn2.Bpmn2Factory;
+import org.eclipse.bpmn2.Bpmn2Package;
+import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.DocumentRoot;
+import org.eclipse.bpmn2.EndEvent;
+import org.eclipse.bpmn2.Process;
+import org.eclipse.bpmn2.SequenceFlow;
+import org.eclipse.bpmn2.StartEvent;
+import org.eclipse.bpmn2.di.BPMNDiagram;
+import org.eclipse.bpmn2.di.BPMNEdge;
+import org.eclipse.bpmn2.di.BPMNPlane;
+import org.eclipse.bpmn2.di.BPMNShape;
+import org.eclipse.bpmn2.di.BpmnDiFactory;
+import org.eclipse.bpmn2.di.BpmnDiPackage;
+import org.eclipse.dd.dc.Bounds;
+import org.eclipse.dd.dc.DcFactory;
+import org.eclipse.dd.dc.DcPackage;
+import org.eclipse.dd.dc.Point;
+import org.eclipse.dd.di.DiPackage;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.extension.ExtensionManager;
+import org.eclipse.emf.teneo.mapping.strategy.EntityNameStrategy;
+import org.eclipse.emf.teneo.mapping.strategy.impl.QualifyingEntityNameStrategy;
+import org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Bar;
+import org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Foo;
+import org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.NonmandatoryjoincolumnFactory;
+import org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage;
+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 NonMandatoryJoinColumnAction extends AbstractTestAction {
+
+ public NonMandatoryJoinColumnAction() {
+ super(new EPackage[] { NonmandatoryjoincolumnPackage.eINSTANCE });
+ }
+
+ @Override
+ public Properties getExtraConfigurationProperties() {
+ final Properties props = new Properties();
+ props.setProperty(
+ PersistenceOptions.PERSISTENCE_XML,
+ "org/eclipse/emf/teneo/hibernate/test/issues/nonmandatoryjoincolumn.persistence.xml");
+ return props;
+ }
+
+ @Override
+ public void doAction(TestStore store) {
+ store.beginTransaction();
+ final Foo foo = NonmandatoryjoincolumnFactory.eINSTANCE.createFoo();
+ store.store(foo);
+ store.commitTransaction();
+ }
+}
diff --git a/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/nonmandatoryjoincolumn.persistence.xml b/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/nonmandatoryjoincolumn.persistence.xml
new file mode 100755
index 000000000..0786e265d
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.hibernate.test/src/org/eclipse/emf/teneo/hibernate/test/issues/nonmandatoryjoincolumn.persistence.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<persistence-mapping xmlns="http://www.eclipse.org/emft/teneo"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <epackage namespace-uri="http://www.eclipse.org/emf/teneo/samples/issues/nonmandatoryjoincolumn">
+ <eclass name="Foo">
+ <ereference name="bar">
+ <many-to-one optional="false"/>
+ <join-column nullable="true"/>
+ </ereference>
+ </eclass>
+ </epackage>
+</persistence-mapping> \ No newline at end of file
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 fa7368cac..001f17c7d 100755
--- a/tests/org.eclipse.emf.teneo.samples/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.teneo.samples/META-INF/MANIFEST.MF
@@ -1715,6 +1715,9 @@ Export-Package: com.example.car;uses:="org.eclipse.emf.common.util,org.eclipse.e
org.eclipse.emf.teneo.samples.issues.nocollectionowner.impl,
org.eclipse.emf.teneo.samples.issues.nocollectionowner.util,
org.eclipse.emf.teneo.samples.issues.nocollectionowner.validation,
+ org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn,
+ org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl,
+ org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.util,
org.eclipse.emf.teneo.samples.issues.refresh;uses:="org.eclipse.emf.common.util,org.eclipse.emf.ecore",
org.eclipse.emf.teneo.samples.issues.refresh.impl;
uses:="org.eclipse.emf.ecore.impl,
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/Bar.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/Bar.java
new file mode 100644
index 000000000..d24fbb8c1
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/Bar.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Bar</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Bar#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage#getBar()
+ * @model
+ * @generated
+ */
+public interface Bar 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.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage#getBar_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Bar#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);
+
+} // Bar
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/Foo.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/Foo.java
new file mode 100644
index 000000000..5ec029759
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/Foo.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Foo</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Foo#getBar <em>Bar</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage#getFoo()
+ * @model
+ * @generated
+ */
+public interface Foo extends EObject {
+ /**
+ * Returns the value of the '<em><b>Bar</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bar</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bar</em>' reference.
+ * @see #setBar(Bar)
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage#getFoo_Bar()
+ * @model required="true"
+ * @generated
+ */
+ Bar getBar();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Foo#getBar <em>Bar</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bar</em>' reference.
+ * @see #getBar()
+ * @generated
+ */
+ void setBar(Bar value);
+
+} // Foo
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/NonmandatoryjoincolumnFactory.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/NonmandatoryjoincolumnFactory.java
new file mode 100644
index 000000000..5ccc97954
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/NonmandatoryjoincolumnFactory.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn;
+
+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.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage
+ * @generated
+ */
+public interface NonmandatoryjoincolumnFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ NonmandatoryjoincolumnFactory eINSTANCE = org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.NonmandatoryjoincolumnFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Foo</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Foo</em>'.
+ * @generated
+ */
+ Foo createFoo();
+
+ /**
+ * Returns a new object of class '<em>Bar</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Bar</em>'.
+ * @generated
+ */
+ Bar createBar();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ NonmandatoryjoincolumnPackage getNonmandatoryjoincolumnPackage();
+
+} //NonmandatoryjoincolumnFactory
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/NonmandatoryjoincolumnPackage.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/NonmandatoryjoincolumnPackage.java
new file mode 100644
index 000000000..48ba248bc
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/NonmandatoryjoincolumnPackage.java
@@ -0,0 +1,217 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.NonmandatoryjoincolumnFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface NonmandatoryjoincolumnPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "nonmandatoryjoincolumn";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/teneo/samples/issues/nonmandatoryjoincolumn";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "nonmandatoryjoincolumn";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ NonmandatoryjoincolumnPackage eINSTANCE = org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.NonmandatoryjoincolumnPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.FooImpl <em>Foo</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.FooImpl
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.NonmandatoryjoincolumnPackageImpl#getFoo()
+ * @generated
+ */
+ int FOO = 0;
+
+ /**
+ * The feature id for the '<em><b>Bar</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOO__BAR = 0;
+
+ /**
+ * The number of structural features of the '<em>Foo</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOO_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.BarImpl <em>Bar</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.BarImpl
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.NonmandatoryjoincolumnPackageImpl#getBar()
+ * @generated
+ */
+ int BAR = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BAR__NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>Bar</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BAR_FEATURE_COUNT = 1;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Foo <em>Foo</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Foo</em>'.
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Foo
+ * @generated
+ */
+ EClass getFoo();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Foo#getBar <em>Bar</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Bar</em>'.
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Foo#getBar()
+ * @see #getFoo()
+ * @generated
+ */
+ EReference getFoo_Bar();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Bar <em>Bar</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Bar</em>'.
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Bar
+ * @generated
+ */
+ EClass getBar();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Bar#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.nonmandatoryjoincolumn.Bar#getName()
+ * @see #getBar()
+ * @generated
+ */
+ EAttribute getBar_Name();
+
+ /**
+ * 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
+ */
+ NonmandatoryjoincolumnFactory getNonmandatoryjoincolumnFactory();
+
+ /**
+ * <!-- 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.nonmandatoryjoincolumn.impl.FooImpl <em>Foo</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.FooImpl
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.NonmandatoryjoincolumnPackageImpl#getFoo()
+ * @generated
+ */
+ EClass FOO = eINSTANCE.getFoo();
+
+ /**
+ * The meta object literal for the '<em><b>Bar</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FOO__BAR = eINSTANCE.getFoo_Bar();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.BarImpl <em>Bar</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.BarImpl
+ * @see org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.NonmandatoryjoincolumnPackageImpl#getBar()
+ * @generated
+ */
+ EClass BAR = eINSTANCE.getBar();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BAR__NAME = eINSTANCE.getBar_Name();
+
+ }
+
+} //NonmandatoryjoincolumnPackage
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/BarImpl.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/BarImpl.java
new file mode 100644
index 000000000..c026bd0da
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/BarImpl.java
@@ -0,0 +1,163 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.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.nonmandatoryjoincolumn.Bar;
+import org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Bar</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.BarImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BarImpl extends EObjectImpl implements Bar {
+ /**
+ * 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;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BarImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonmandatoryjoincolumnPackage.Literals.BAR;
+ }
+
+ /**
+ * <!-- 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, NonmandatoryjoincolumnPackage.BAR__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonmandatoryjoincolumnPackage.BAR__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonmandatoryjoincolumnPackage.BAR__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonmandatoryjoincolumnPackage.BAR__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonmandatoryjoincolumnPackage.BAR__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //BarImpl
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/FooImpl.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/FooImpl.java
new file mode 100644
index 000000000..cf1d71c7f
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/FooImpl.java
@@ -0,0 +1,157 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Bar;
+import org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Foo;
+import org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Foo</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.impl.FooImpl#getBar <em>Bar</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FooImpl extends EObjectImpl implements Foo {
+ /**
+ * The cached value of the '{@link #getBar() <em>Bar</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBar()
+ * @generated
+ * @ordered
+ */
+ protected Bar bar;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FooImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonmandatoryjoincolumnPackage.Literals.FOO;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Bar getBar() {
+ if (bar != null && bar.eIsProxy()) {
+ InternalEObject oldBar = (InternalEObject)bar;
+ bar = (Bar)eResolveProxy(oldBar);
+ if (bar != oldBar) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, NonmandatoryjoincolumnPackage.FOO__BAR, oldBar, bar));
+ }
+ }
+ return bar;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Bar basicGetBar() {
+ return bar;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBar(Bar newBar) {
+ Bar oldBar = bar;
+ bar = newBar;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonmandatoryjoincolumnPackage.FOO__BAR, oldBar, bar));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonmandatoryjoincolumnPackage.FOO__BAR:
+ if (resolve) return getBar();
+ return basicGetBar();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonmandatoryjoincolumnPackage.FOO__BAR:
+ setBar((Bar)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonmandatoryjoincolumnPackage.FOO__BAR:
+ setBar((Bar)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonmandatoryjoincolumnPackage.FOO__BAR:
+ return bar != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FooImpl
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/NonmandatoryjoincolumnFactoryImpl.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/NonmandatoryjoincolumnFactoryImpl.java
new file mode 100644
index 000000000..e32b17a39
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/NonmandatoryjoincolumnFactoryImpl.java
@@ -0,0 +1,106 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.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.nonmandatoryjoincolumn.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NonmandatoryjoincolumnFactoryImpl extends EFactoryImpl implements NonmandatoryjoincolumnFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NonmandatoryjoincolumnFactory init() {
+ try {
+ NonmandatoryjoincolumnFactory theNonmandatoryjoincolumnFactory = (NonmandatoryjoincolumnFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/teneo/samples/issues/nonmandatoryjoincolumn");
+ if (theNonmandatoryjoincolumnFactory != null) {
+ return theNonmandatoryjoincolumnFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new NonmandatoryjoincolumnFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonmandatoryjoincolumnFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case NonmandatoryjoincolumnPackage.FOO: return createFoo();
+ case NonmandatoryjoincolumnPackage.BAR: return createBar();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Foo createFoo() {
+ FooImpl foo = new FooImpl();
+ return foo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Bar createBar() {
+ BarImpl bar = new BarImpl();
+ return bar;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonmandatoryjoincolumnPackage getNonmandatoryjoincolumnPackage() {
+ return (NonmandatoryjoincolumnPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static NonmandatoryjoincolumnPackage getPackage() {
+ return NonmandatoryjoincolumnPackage.eINSTANCE;
+ }
+
+} //NonmandatoryjoincolumnFactoryImpl
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/NonmandatoryjoincolumnPackageImpl.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/NonmandatoryjoincolumnPackageImpl.java
new file mode 100644
index 000000000..da556b6ee
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/impl/NonmandatoryjoincolumnPackageImpl.java
@@ -0,0 +1,210 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.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.teneo.samples.issues.nonmandatoryjoincolumn.Bar;
+import org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Foo;
+import org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.NonmandatoryjoincolumnFactory;
+import org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NonmandatoryjoincolumnPackageImpl extends EPackageImpl implements NonmandatoryjoincolumnPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass fooEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass barEClass = 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.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private NonmandatoryjoincolumnPackageImpl() {
+ super(eNS_URI, NonmandatoryjoincolumnFactory.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 NonmandatoryjoincolumnPackage#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 NonmandatoryjoincolumnPackage init() {
+ if (isInited) return (NonmandatoryjoincolumnPackage)EPackage.Registry.INSTANCE.getEPackage(NonmandatoryjoincolumnPackage.eNS_URI);
+
+ // Obtain or create and register package
+ NonmandatoryjoincolumnPackageImpl theNonmandatoryjoincolumnPackage = (NonmandatoryjoincolumnPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof NonmandatoryjoincolumnPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new NonmandatoryjoincolumnPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theNonmandatoryjoincolumnPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theNonmandatoryjoincolumnPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theNonmandatoryjoincolumnPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(NonmandatoryjoincolumnPackage.eNS_URI, theNonmandatoryjoincolumnPackage);
+ return theNonmandatoryjoincolumnPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFoo() {
+ return fooEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFoo_Bar() {
+ return (EReference)fooEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBar() {
+ return barEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBar_Name() {
+ return (EAttribute)barEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonmandatoryjoincolumnFactory getNonmandatoryjoincolumnFactory() {
+ return (NonmandatoryjoincolumnFactory)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
+ fooEClass = createEClass(FOO);
+ createEReference(fooEClass, FOO__BAR);
+
+ barEClass = createEClass(BAR);
+ createEAttribute(barEClass, BAR__NAME);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(fooEClass, Foo.class, "Foo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFoo_Bar(), this.getBar(), null, "bar", null, 1, 1, Foo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(barEClass, Bar.class, "Bar", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBar_Name(), ecorePackage.getEString(), "name", null, 0, 1, Bar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //NonmandatoryjoincolumnPackageImpl
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/model/nonmandatoryjoincolumn.ecore b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/model/nonmandatoryjoincolumn.ecore
new file mode 100755
index 000000000..fd189af71
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/model/nonmandatoryjoincolumn.ecore
@@ -0,0 +1,11 @@
+<?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="nonmandatoryjoincolumn" nsURI="http://www.eclipse.org/emf/teneo/samples/issues/nonmandatoryjoincolumn"
+ nsPrefix="nonmandatoryjoincolumn">
+ <eClassifiers xsi:type="ecore:EClass" name="Foo">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bar" lowerBound="1" eType="#//Bar"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Bar">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/model/nonmandatoryjoincolumn.genmodel b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/model/nonmandatoryjoincolumn.genmodel
new file mode 100644
index 000000000..f794039cc
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/model/nonmandatoryjoincolumn.genmodel
@@ -0,0 +1,16 @@
+<?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="Nonmandatoryjoincolumn" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="5.0" copyrightFields="false">
+ <foreignModel>nonmandatoryjoincolumn.ecore</foreignModel>
+ <genPackages prefix="Nonmandatoryjoincolumn" basePackage="org.eclipse.emf.teneo.samples.issues"
+ disposableProviderFactory="true" ecorePackage="nonmandatoryjoincolumn.ecore#/">
+ <genClasses ecoreClass="nonmandatoryjoincolumn.ecore#//Foo">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nonmandatoryjoincolumn.ecore#//Foo/bar"/>
+ </genClasses>
+ <genClasses ecoreClass="nonmandatoryjoincolumn.ecore#//Bar">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nonmandatoryjoincolumn.ecore#//Bar/name"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/util/NonmandatoryjoincolumnAdapterFactory.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/util/NonmandatoryjoincolumnAdapterFactory.java
new file mode 100644
index 000000000..1ff52fd04
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/util/NonmandatoryjoincolumnAdapterFactory.java
@@ -0,0 +1,138 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.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.nonmandatoryjoincolumn.*;
+
+/**
+ * <!-- 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.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage
+ * @generated
+ */
+public class NonmandatoryjoincolumnAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static NonmandatoryjoincolumnPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonmandatoryjoincolumnAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = NonmandatoryjoincolumnPackage.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 NonmandatoryjoincolumnSwitch<Adapter> modelSwitch =
+ new NonmandatoryjoincolumnSwitch<Adapter>() {
+ @Override
+ public Adapter caseFoo(Foo object) {
+ return createFooAdapter();
+ }
+ @Override
+ public Adapter caseBar(Bar object) {
+ return createBarAdapter();
+ }
+ @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.nonmandatoryjoincolumn.Foo <em>Foo</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.nonmandatoryjoincolumn.Foo
+ * @generated
+ */
+ public Adapter createFooAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.Bar <em>Bar</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.nonmandatoryjoincolumn.Bar
+ * @generated
+ */
+ public Adapter createBarAdapter() {
+ 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;
+ }
+
+} //NonmandatoryjoincolumnAdapterFactory
diff --git a/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/util/NonmandatoryjoincolumnSwitch.java b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/util/NonmandatoryjoincolumnSwitch.java
new file mode 100644
index 000000000..fb7e8e7e5
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/issues/nonmandatoryjoincolumn/util/NonmandatoryjoincolumnSwitch.java
@@ -0,0 +1,131 @@
+/**
+ */
+package org.eclipse.emf.teneo.samples.issues.nonmandatoryjoincolumn.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.nonmandatoryjoincolumn.*;
+
+/**
+ * <!-- 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.nonmandatoryjoincolumn.NonmandatoryjoincolumnPackage
+ * @generated
+ */
+public class NonmandatoryjoincolumnSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static NonmandatoryjoincolumnPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonmandatoryjoincolumnSwitch() {
+ if (modelPackage == null) {
+ modelPackage = NonmandatoryjoincolumnPackage.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 NonmandatoryjoincolumnPackage.FOO: {
+ Foo foo = (Foo)theEObject;
+ T result = caseFoo(foo);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonmandatoryjoincolumnPackage.BAR: {
+ Bar bar = (Bar)theEObject;
+ T result = caseBar(bar);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Foo</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>Foo</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFoo(Foo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Bar</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>Bar</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBar(Bar 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;
+ }
+
+} //NonmandatoryjoincolumnSwitch

Back to the top