diff options
author | Martin Taal | 2012-10-12 11:21:10 +0000 |
---|---|---|
committer | Martin Taal | 2012-10-12 11:21:10 +0000 |
commit | 09e9d9bb4383dfb8ccb93ba9b1b8563cd3f8a1c4 (patch) | |
tree | 4a1e3ae24d10954ed3292ae275db8cd11791c2d9 | |
parent | 8a3198e40ff2b1011bb0e74fc89ea04b9271a5ef (diff) | |
download | org.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
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 |