Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Taal2011-11-01 14:12:35 -0400
committerMartin Taal2011-11-01 14:12:35 -0400
commit97842a213a338601aa158b3d9f995f464bb25681 (patch)
tree5b9a657ccdce9960b252f3bc8dcc09a2626bd711 /eclipselink
parent709ec105b89258b5e6b27e57cb3deb177529c54c (diff)
downloadorg.eclipse.emf.teneo-97842a213a338601aa158b3d9f995f464bb25681.tar.gz
org.eclipse.emf.teneo-97842a213a338601aa158b3d9f995f464bb25681.tar.xz
org.eclipse.emf.teneo-97842a213a338601aa158b3d9f995f464bb25681.zip
New structure
Diffstat (limited to 'eclipselink')
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.classpath7
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.project28
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.core.resources.prefs3
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.jdt.core.prefs332
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.jdt.ui.prefs58
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/META-INF/MANIFEST.MF18
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.html24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.ini17
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.properties46
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/build.properties19
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/copyright.txt8
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/epl-v10.html320
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/license.html319
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/modeling32.pngbin0 -> 2414 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/plugin.properties16
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/plugin.xml11
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/Activator.java78
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/internal/messages/Messages.java55
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/internal/messages/messages.properties53
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/preferencepages/BasicDatabasePreferencePage.java138
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/preferencepages/IDatabasePreferenceConstants.java31
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/AbstractLoadModelFromDatabaseWizard.java90
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/pages/AbstractRootObjectAndModelEditorPage.java265
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/pages/BasicModelAndDatabaseAccessParametersPage.java453
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.classpath7
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.cvsignore1
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.project28
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.core.resources.prefs3
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.jdt.core.prefs332
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.jdt.ui.prefs58
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/Based_on_GenClassImpl.getListConstructor_2.2.1.v200609210005.txt139
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/META-INF/MANIFEST.MF13
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.html24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.ini17
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.properties46
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/build.properties19
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/copyright.txt8
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/epl-v10.html320
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/license.html319
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/modeling32.pngbin0 -> 2414 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/plugin.properties14
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/BasicEListFactoryImpl.java532
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/EElementUtil.java242
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/EListFactory.java295
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/ExtendedMetaDataUtil.java54
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/internal/messages/Messages.java22
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/internal/messages/messages.properties8
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.classpath7
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.cvsignore1
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.project28
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.core.resources.prefs3
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.jdt.core.prefs332
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.jdt.ui.prefs58
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/AllTests.launch17
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/META-INF/MANIFEST.MF26
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.html24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.ini17
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.properties46
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/build.properties19
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/config.ini5
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/copyright.txt8
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/createDDL.jdbc28
-rw-r--r--eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/derby.log6
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/dropDDL.jdbc27
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/epl-v10.html320
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/license.html319
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/modeling32.pngbin0 -> 2414 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/plugin.properties15
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/AdHocTest.java95
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/AllTests.java51
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BasicTest.java34
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookCoverTest.java61
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookStylesTest.java74
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookTranslatorTest.java51
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/ContainerTest.java70
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EContainerReferenceTest.java65
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EListEMapTest.java65
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EListTest.java178
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EMapTest.java171
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EObjectTest.java107
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/GenerateORMTest.java34
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/JPATest.java121
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibBookEContainerTest.java79
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibWriterEContainerTest.java77
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEContainerLibraryTest.java72
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEContainerTest.java72
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEnvironmentTest.java85
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryJPATest.java236
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryXMIPersistenceTest.java113
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/ManagedTest.java48
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/OneToOneTest.java38
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/PublisherWriterTest.java170
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/TestSuppressedJPATest.java65
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/TypeWriterTypeTest.java66
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/WriterAddressTest.java62
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/WriterPublisherTest.java71
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/WriterTypewriterTest.java78
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/resource/AbstractEclipseLinkTest.java59
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/resource/AllTests.java28
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/resource/CreateSampleLibrariesWithEclipseLinkResourceTest.java111
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/resource/EclipseLinkAndXMIResourceTest.java250
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/resource/EclipseLinkResourceTest.java140
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/resource/TestModelFactory.java91
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/db.lckbin0 -> 38 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/dbex.lckbin0 -> 4 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/log/log.ctrlbin0 -> 48 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/log/log3.datbin0 -> 1049290 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/log/log4.datbin0 -> 1048576 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/log/logmirror.ctrlbin0 -> 48 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c10.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c101.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c111.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c121.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c130.datbin0 -> 20480 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c141.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c150.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c161.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c171.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c180.datbin0 -> 24576 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c191.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c1a1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c1b1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c1c0.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c1d1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c1e0.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c1f1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c20.datbin0 -> 69632 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c200.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c211.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c221.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c230.datbin0 -> 86016 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c241.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c251.datbin0 -> 12288 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c260.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c271.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c281.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c290.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2a1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2b1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2c1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2d0.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2d60.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2d71.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2d80.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2d91.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2da0.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2db1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2dc0.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2dd1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2de0.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2df1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2e00.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2e1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2e11.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2e20.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2e31.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2e40.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2e51.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2e60.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2e71.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2e80.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2e91.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2ea0.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2eb1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2ec0.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2ed1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2ee0.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2ef1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2f0.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2f01.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2f11.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2f21.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2f31.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2f41.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2f51.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2f61.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2f71.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2f81.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2f91.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2fa1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2fb1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c2fc1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c31.datbin0 -> 16384 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c41.datbin0 -> 20480 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c51.datbin0 -> 16384 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c570.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c581.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c60.datbin0 -> 16384 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c71.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c81.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/c90.datbin0 -> 32768 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/ca1.datbin0 -> 36864 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/cb1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/cc0.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/cd1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/ce1.datbin0 -> 8192 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/cf0.datbin0 -> 20480 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d25f0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2601.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2610.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2621.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2630.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2641.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2650.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2661.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2670.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2681.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2690.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d26a1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d26b0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d26c1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d26d0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d26e1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d26f0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2701.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2710.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2721.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2730.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2741.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2750.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2761.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2770.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2781.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2791.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d27a1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d27b1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d27c1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d27d1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d27e1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d27f1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2801.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2811.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2821.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2831.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2841.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2851.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2860.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2871.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2880.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2891.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d28a0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d28b1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d28c0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d28d1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d28e0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d28f1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2900.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2911.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2920.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2931.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2940.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2951.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2960.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2971.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2980.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2991.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d29a0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d29b1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d29c0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d29d1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d29e0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d29f1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2a01.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2a11.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2a21.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2a31.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2a41.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2a51.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2a61.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2a71.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2a81.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2a91.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2aa1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2ab1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2ac1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2ad0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2ae0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2af1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2b00.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2b11.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2b20.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2b31.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2b40.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2b51.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2b60.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2b71.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2b80.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2b91.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2ba0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2bb1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2bc0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2bd1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2be0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2bf1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2c00.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2c11.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2c20.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2c31.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2c40.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2c51.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2c60.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2c71.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2c81.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2c91.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2ca1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2cb1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2cc1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2cd1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2ce1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2cf1.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2d01.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2d11.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2d21.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2d31.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2d41.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2d50.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/seg0/d2fd0.datbin0 -> 4096 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo/service.properties22
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/test.xml47
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/.classpath7
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/.cvsignore1
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/.project29
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/.settings/org.eclipse.jdt.core.prefs332
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/.settings/org.eclipse.jdt.ui.prefs58
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/.settings/org.eclipse.jpt.core.prefs4
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/META-INF/MANIFEST.MF25
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/about.html24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/about.ini17
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/about.properties46
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/build.properties27
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/copyright.txt8
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/db/dropSchema.sql13
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/db/generateSchema.sql365
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/db/initSequence.sql1
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/epl-v10.html320
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/license.html319
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/model/forum.ecore13
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/model/forum.genmodel24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/model/library.ecore119
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/model/library.genmodel84
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/model/orm.xml251
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/model/orm.xml_old19
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/model/samples/eclipseConForum.forum5
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/model/test_suppressinterfaces.ecore33
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/model/test_suppressinterfaces.genmodel23
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/modeling32.pngbin0 -> 2414 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/plugin.properties20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/plugin.xml22
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/META-INF/Copy of orm.xml262
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/META-INF/generated_orm.xml296
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/META-INF/orm.xml262
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/META-INF/persistence.xml33
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/META-INF/persistence_mysql.xml34
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/AbstractTest.java22
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/Activator.java90
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/Address.java53
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/Book.java241
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/BookCategory.java239
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/Cover.java53
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/Identifiable.java82
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/Library.java90
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/LibraryFactory.java118
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/LibraryPackage.java1755
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/Publisher.java74
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/Style.java53
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/TWriterType.java212
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/Translator.java108
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/TypeWriter.java83
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/Writer.java136
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/forum/Forum.java93
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/forum/ForumFactory.java46
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/forum/ForumPackage.java210
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/forum/impl/ForumFactoryImpl.java99
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/forum/impl/ForumImpl.java245
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/forum/impl/ForumPackageImpl.java219
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/forum/util/ForumAdapterFactory.java124
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/forum/util/ForumSwitch.java130
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/AbstractTestImpl.java43
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/AddressImpl.java163
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/BookImpl.java566
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/BookStylesMapEntryImpl.java305
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/CoverImpl.java163
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/IdentifiableImpl.java218
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/LibraryFactoryImpl.java295
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/LibraryImpl.java260
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/LibraryPackageImpl.java838
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/PublisherImpl.java235
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/StringToBookMapEntryImpl.java324
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/StyleImpl.java163
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/TranslatorImpl.java298
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/TypeWriterImpl.java218
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/impl/WriterImpl.java377
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/util/LibraryAdapterFactory.java350
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/library/util/LibrarySwitch.java404
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/suppressinterfaces/Identifiable.java246
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/suppressinterfaces/SuppressinterfacesFactory.java127
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/suppressinterfaces/SuppressinterfacesPackage.java586
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/suppressinterfaces/Test.java251
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/suppressinterfaces/TestEmbedded.java179
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/suppressinterfaces/util/SuppressinterfacesAdapterFactory.java160
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.examples.library/src/org/eclipse/emf/teneo/eclipselink/examples/suppressinterfaces/util/SuppressinterfacesSwitch.java173
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/.classpath7
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/.project28
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/.settings/org.eclipse.core.resources.prefs3
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/.settings/org.eclipse.jdt.core.prefs332
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/.settings/org.eclipse.jdt.ui.prefs58
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/META-INF/MANIFEST.MF19
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/about.html24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/about.ini17
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/about.properties46
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/build.properties20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/copyright.txt8
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/epl-v10.html320
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/icons/full/etool16/importmdldb_wiz.gifbin0 -> 346 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/license.html319
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/modeling32.pngbin0 -> 2414 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/plugin.properties20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/plugin.xml28
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/src/org/eclipse/emf/teneo/eclipselink/ui/wizards/EclipseLinkModelFromDatabaseImportWizard.java37
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/src/org/eclipse/emf/teneo/eclipselink/ui/wizards/pages/EclipseLinkModelAndDatabaseAccessParametersPage.java70
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink.ui/src/org/eclipse/emf/teneo/eclipselink/ui/wizards/pages/EclipseLinkRootObjectAndModelEditorPage.java57
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/.classpath7
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/.cvsignore1
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/.externalToolBuilders/org.eclipse.dali.core.persistenceBuilder.launch7
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder.launch7
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/.project49
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/.settings/org.eclipse.core.resources.prefs3
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/.settings/org.eclipse.jdt.core.prefs332
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/.settings/org.eclipse.jdt.ui.prefs58
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/META-INF/MANIFEST.MF22
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/about.html24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/about.ini17
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/about.properties46
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/build.properties20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/copyright.txt8
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/epl-v10.html320
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/license.html319
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/modeling32.pngbin0 -> 2414 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/plugin.properties15
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/plugin.xml10
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/EmfCollectionAdjuster.java154
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/EmfHelper.java277
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/EmfInstanceVariableAccessor.java311
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/EmfOwnedValueHolder.java25
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/EmfQueryBasedValueHolder.java107
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/EmfSessionCustomizer.java123
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/EmfSessionEventListener.java61
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/EmfTransparentIndirectionPolicy.java126
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/EmfUnitOfWorkQueryBasedValueHolder.java79
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/IndirectEContainer.java23
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/Utils.java62
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/elist/EListContainerPolicy.java127
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/elist/EclipseLinkEList.java121
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/elist/IndirectEList.java898
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/emap/EMapContainerPolicy.java182
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/emap/EclipseLinkEMap.java92
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/emap/IndirectEMap.java1246
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/internal/messages/Messages.java59
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/internal/messages/messages.properties47
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/resource/EclipseLinkResource.java34
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/resource/EclipseLinkResourceFactoryImpl.java26
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/resource/EclipseLinkResourceImpl.java634
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/resource/EclipseLinkURIUtil.java124
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.eclipselink/src/org/eclipse/emf/teneo/eclipselink/util/MapEntryId.java67
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/.classpath7
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/.cvsignore1
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/.project28
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/.settings/org.eclipse.jdt.core.prefs12
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/META-INF/MANIFEST.MF19
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/about.html24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/about.ini17
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/about.properties46
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/build.properties19
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/copyright.txt8
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/epl-v10.html319
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/license.html319
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/modeling32.pngbin0 -> 2414 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/plugin.properties36
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/plugin.xml29
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/src/org/eclipse/emf/teneo/orm/eclipse/Activator.java87
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm.eclipse/src/org/eclipse/emf/teneo/orm/eclipse/popup/actions/GenerateORMAction.java48
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/.classpath7
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/.cvsignore1
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/.project28
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/.settings/org.eclipse.jdt.core.prefs12
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/.settings/org.eclipse.pde.core.prefs5
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/META-INF/MANIFEST.MF21
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/about.html24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/about.ini17
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/about.properties46
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/build.properties27
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/copyright.txt8
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/epl-v10.html319
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/license.html319
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/model/orm.ecore2445
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/model/orm.genmodel409
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/modeling32.pngbin0 -> 2414 bytes
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/plugin.properties35
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/plugin.xml26
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/GenerateORM.java139
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/convert/ORMGenerator.java726
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AccessType.java220
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AssociationOverride.java87
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AttributeOverride.java95
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Attributes.java231
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Basic.java292
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/CascadeType.java175
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Column.java517
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ColumnResult.java66
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DiscriminatorColumn.java211
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DiscriminatorType.java246
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DocumentRoot.java115
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Embeddable.java240
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmbeddableAttributes.java65
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Embedded.java84
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmbeddedId.java84
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmptyType.java22
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Entity.java875
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityListener.java260
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityListeners.java58
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityMappingsType.java458
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityResult.java116
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EnumType.java222
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/FetchType.java219
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/FieldResult.java95
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/GeneratedValue.java125
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/GenerationType.java273
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Id.java204
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/IdClass.java66
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Inheritance.java96
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/InheritanceType.java247
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/JoinColumn.java378
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/JoinTable.java184
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Lob.java31
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ManyToMany.java295
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ManyToOne.java286
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/MapKey.java66
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/MappedSuperclass.java548
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/NamedNativeQuery.java174
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/NamedQuery.java116
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/OneToMany.java315
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/OneToOne.java333
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/OrmFactory.java523
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/OrmPackage.java9706
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/PersistenceUnitDefaults.java218
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/PersistenceUnitMetadata.java96
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/PostLoad.java64
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/PostPersist.java64
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/PostRemove.java64
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/PostUpdate.java64
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/PrePersist.java64
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/PreRemove.java64
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/PreUpdate.java64
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/PrimaryKeyJoinColumn.java124
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/QueryHint.java95
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/SecondaryTable.java164
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/SequenceGenerator.java207
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/SqlResultSetMapping.java106
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Table.java146
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/TableGenerator.java373
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/TemporalType.java250
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Transient.java64
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/UniqueConstraint.java59
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Version.java120
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/AssociationOverrideImpl.java226
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/AttributeOverrideImpl.java248
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/AttributesImpl.java521
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/BasicImpl.java602
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/CascadeTypeImpl.java444
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/ColumnImpl.java891
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/ColumnResultImpl.java167
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/DiscriminatorColumnImpl.java398
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/DocumentRootImpl.java286
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/EmbeddableAttributesImpl.java193
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/EmbeddableImpl.java479
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/EmbeddedIdImpl.java226
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/EmbeddedImpl.java226
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/EmptyTypeImpl.java45
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/EntityImpl.java1925
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/EntityListenerImpl.java650
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/EntityListenersImpl.java156
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/EntityMappingsTypeImpl.java891
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/EntityResultImpl.java280
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/FieldResultImpl.java221
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/GeneratedValueImpl.java256
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/IdClassImpl.java167
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/IdImpl.java504
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/InheritanceImpl.java202
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/JoinColumnImpl.java681
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/JoinTableImpl.java407
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/LobImpl.java45
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/ManyToManyImpl.java633
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/ManyToOneImpl.java591
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/MapKeyImpl.java167
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/MappedSuperclassImpl.java1215
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/NamedNativeQueryImpl.java388
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/NamedQueryImpl.java280
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/OneToManyImpl.java678
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/OneToOneImpl.java682
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/OrmFactoryImpl.java1144
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/OrmPackageImpl.java6841
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/PersistenceUnitDefaultsImpl.java458
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/PersistenceUnitMetadataImpl.java247
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/PostLoadImpl.java167
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/PostPersistImpl.java167
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/PostRemoveImpl.java167
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/PostUpdateImpl.java167
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/PrePersistImpl.java167
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/PreRemoveImpl.java167
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/PreUpdateImpl.java167
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/PrimaryKeyJoinColumnImpl.java275
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/QueryHintImpl.java221
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/SecondaryTableImpl.java371
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/SequenceGeneratorImpl.java397
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/SqlResultSetMappingImpl.java263
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/TableGeneratorImpl.java726
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/TableImpl.java334
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/TransientImpl.java167
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/UniqueConstraintImpl.java153
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/impl/VersionImpl.java303
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/util/OrmAdapterFactory.java1078
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/util/OrmResourceFactoryImpl.java70
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/util/OrmResourceImpl.java32
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/util/OrmSwitch.java1243
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/util/OrmValidator.java950
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/util/OrmXMLProcessor.java55
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/AssociationOverrideValidator.java24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/AttributeOverrideValidator.java22
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/AttributesValidator.java41
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/BasicValidator.java31
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/CascadeTypeValidator.java25
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/ColumnResultValidator.java20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/ColumnValidator.java29
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/DiscriminatorColumnValidator.java24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/DocumentRootValidator.java28
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/EmbeddableAttributesValidator.java25
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/EmbeddableValidator.java26
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/EmbeddedIdValidator.java24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/EmbeddedValidator.java24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/EmptyTypeValidator.java19
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/EntityListenerValidator.java34
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/EntityListenersValidator.java23
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/EntityMappingsTypeValidator.java46
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/EntityResultValidator.java25
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/EntityValidator.java75
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/FieldResultValidator.java21
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/GeneratedValueValidator.java22
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/IdClassValidator.java20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/IdValidator.java30
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/InheritanceValidator.java21
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/JoinColumnValidator.java27
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/JoinTableValidator.java29
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/LobValidator.java19
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/ManyToManyValidator.java31
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/ManyToOneValidator.java32
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/MapKeyValidator.java20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/MappedSuperclassValidator.java47
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/NamedNativeQueryValidator.java27
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/NamedQueryValidator.java25
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/OneToManyValidator.java35
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/OneToOneValidator.java35
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/PersistenceUnitDefaultsValidator.java27
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/PersistenceUnitMetadataValidator.java23
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/PostLoadValidator.java20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/PostPersistValidator.java20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/PostRemoveValidator.java20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/PostUpdateValidator.java20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/PrePersistValidator.java20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/PreRemoveValidator.java20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/PreUpdateValidator.java20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/PrimaryKeyJoinColumnValidator.java22
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/QueryHintValidator.java21
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/SecondaryTableValidator.java28
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/SequenceGeneratorValidator.java23
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/SqlResultSetMappingValidator.java26
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/TableGeneratorValidator.java32
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/TableValidator.java26
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/TransientValidator.java20
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/UniqueConstraintValidator.java21
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/validation/VersionValidator.java24
-rwxr-xr-xeclipselink/org.eclipse.emf.teneo.orm/text/description.txt420
681 files changed, 93198 insertions, 0 deletions
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.classpath b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.classpath
new file mode 100755
index 000000000..3f9cdd2ca
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry excluding="oracle/toplink/essentials/emf/ui/preferencepages/CopyOfBasicDatabasePreferencePage.java" kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.project b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.project
new file mode 100755
index 000000000..7e92e0ac2
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.teneo.eclipselink.common.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.core.resources.prefs b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100755
index 000000000..03710d336
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Tue Oct 12 14:12:28 CEST 2004
+eclipse.preferences.version=1
+
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.jdt.core.prefs b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 000000000..04f616f7e
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,332 @@
+#Mon Feb 08 06:56:39 CET 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.jdt.ui.prefs b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.jdt.ui.prefs
new file mode 100755
index 000000000..5b2edb475
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,58 @@
+#Wed Jan 21 22:44:02 CET 2009
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Teneo
+formatter_settings_version=11
+internal.default.compliance=default
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=true
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=true
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/META-INF/MANIFEST.MF b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/META-INF/MANIFEST.MF
new file mode 100755
index 000000000..21d11ca6f
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.teneo.eclipselink.common.ui;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.5.0,3.0.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
+Export-Package: org.eclipse.emf.teneo.eclipselink.common.ui,
+ org.eclipse.emf.teneo.eclipselink.common.ui.internal.messages;x-internal:=true,
+ org.eclipse.emf.teneo.eclipselink.common.ui.preferencepages,
+ org.eclipse.emf.teneo.eclipselink.common.ui.wizards,
+ org.eclipse.emf.teneo.eclipselink.common.ui.wizards.pages
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Activator: org.eclipse.emf.teneo.eclipselink.common.ui.Activator
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.html b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.html
new file mode 100755
index 000000000..5a279453c
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>About</title></head><body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.ini b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.ini
new file mode 100755
index 000000000..1d17e5539
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=modeling32.png
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+#welcomePage=$nl$/welcome.xml
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.properties b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.properties
new file mode 100755
index 000000000..f99905d28
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/about.properties
@@ -0,0 +1,46 @@
+#/**
+# * <copyright>
+# *
+# * Copyright (c) 2008-2009 Oracle and Geensys.
+# * 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:
+# * Oracle and Geensys - initial API and implementation
+# *
+# * </copyright>
+# *
+# * $Id: about.properties,v 1.1 2009/01/23 21:51:31 mtaal Exp $
+# */
+
+# NLS_MESSAGEFORMAT_VAR
+
+# ==============================================================================
+# Do not change the properties between this line and the last line containing:
+# %%% END OF TRANSLATED PROPERTIES %%%
+# Instead, either redefine an existing property, or create a new property,
+# append it to the end of the file, and change the code to use the new name.
+# ==============================================================================
+
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+
+featureName=EMF Teneo EclipseLink Common UI Plug-in
+
+featureText=EMF Teneo EclipseLink Common UI Plug-in \n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+(c) Copyright (c) 2008-2009 Oracle and Geensys. All rights reserved.\n\
+\n\
+Visit http://www.eclipse.org/emf
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/build.properties b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/build.properties
new file mode 100755
index 000000000..6b96042e4
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/build.properties
@@ -0,0 +1,19 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ epl-v10.html,\
+ modeling32.png,\
+ about.ini,\
+ about.properties,\
+ copyright.txt,\
+ about.html,\
+ .,\
+ plugin.properties,\
+ plugin.xml
+src.includes = about.html,\
+ about.properties,\
+ about.ini,\
+ copyright.txt,\
+ epl-v10.html,\
+ license.html,\
+ modeling32.png
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/copyright.txt b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/copyright.txt
new file mode 100755
index 000000000..a37ef444a
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/copyright.txt
@@ -0,0 +1,8 @@
+Copyright (c) 2008-2009 Oracle and Geensys.
+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:
+ Oracle and Geensys - initial API and implementation
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/epl-v10.html b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/epl-v10.html
new file mode 100755
index 000000000..62b1f6f04
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/epl-v10.html
@@ -0,0 +1,320 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="ProgId" content="Word.Document">
+<meta name="Generator" content="Microsoft Word 9">
+<meta name="Originator" content="Microsoft Word 9">
+<link rel="File-List" href="http://www.eclipse.org/org/documents/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>3</o:TotalTime>
+ <o:Created>2004-03-05T23:03:00Z</o:Created>
+ <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+ <o:Pages>4</o:Pages>
+ <o:Words>1626</o:Words>
+ <o:Characters>9270</o:Characters>
+ <o:Lines>77</o:Lines>
+ <o:Paragraphs>18</o:Paragraphs>
+ <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+ <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+
+
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p
+ {margin-right:0in;
+ mso-margin-top-alt:auto;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+ {mso-style-name:"Balloon Text";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style></head>
+
+<body style="" lang="EN-US">
+
+<div class="Section1">
+
+<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p>
+
+<p><span style="font-size: 10pt;">"Contribution" means:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear="left">
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+changes to the Program, and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+additions to the Program;</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Contributor" means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style="font-size: 10pt;">"Licensed Patents " mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Program" means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style="font-size: 10pt;">"Recipient" means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p>
+
+<p><span style="font-size: 10pt;">A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+its license agreement:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style="color: blue;"> </span></span></p>
+
+<p><span style="font-size: 10pt;">When the Program is made available in source
+code form:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it must be made available under this Agreement; and </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style="font-size: 10pt;">Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor ("Commercial
+Contributor") hereby agrees to defend and indemnify every other
+Contributor ("Indemnified Contributor") against any losses, damages and
+costs (collectively "Losses") arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style="font-size: 10pt;">For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p>
+
+<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style="font-size: 10pt;">If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
+
+</div>
+
+</body></html> \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/license.html b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/license.html
new file mode 100755
index 000000000..d7b88e941
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/license.html
@@ -0,0 +1,319 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="ProgId" content="Word.Document">
+<meta name="Generator" content="Microsoft Word 9">
+<meta name="Originator" content="Microsoft Word 9">
+<link rel="File-List" href="http://www.eclipse.org/org/documents/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>3</o:TotalTime>
+ <o:Created>2004-03-05T23:03:00Z</o:Created>
+ <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+ <o:Pages>4</o:Pages>
+ <o:Words>1626</o:Words>
+ <o:Characters>9270</o:Characters>
+ <o:Lines>77</o:Lines>
+ <o:Paragraphs>18</o:Paragraphs>
+ <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+ <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+
+
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p
+ {margin-right:0in;
+ mso-margin-top-alt:auto;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+ {mso-style-name:"Balloon Text";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style></head>
+
+<body style="" lang="EN-US">
+
+<div class="Section1">
+
+<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p>
+
+<p><span style="font-size: 10pt;">"Contribution" means:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear="left">
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+changes to the Program, and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+additions to the Program;</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Contributor" means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style="font-size: 10pt;">"Licensed Patents " mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Program" means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style="font-size: 10pt;">"Recipient" means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p>
+
+<p><span style="font-size: 10pt;">A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+its license agreement:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style="color: blue;"> </span></span></p>
+
+<p><span style="font-size: 10pt;">When the Program is made available in source
+code form:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it must be made available under this Agreement; and </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style="font-size: 10pt;">Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor ("Commercial
+Contributor") hereby agrees to defend and indemnify every other
+Contributor ("Indemnified Contributor") against any losses, damages and
+costs (collectively "Losses") arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style="font-size: 10pt;">For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p>
+
+<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style="font-size: 10pt;">If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
+
+</div>
+
+</body></html> \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/modeling32.png b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/modeling32.png
new file mode 100755
index 000000000..6b08de2ad
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/modeling32.png
Binary files differ
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/plugin.properties b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/plugin.properties
new file mode 100755
index 000000000..737e54c38
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/plugin.properties
@@ -0,0 +1,16 @@
+# ====================================================================
+# To code developer:
+# Do NOT change the properties between this line and the
+# "%%% END OF TRANSLATED PROPERTIES %%%" line.
+# Make a new property name, append to the end of the file and change
+# the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = EMF Teneo EclipseLink Common UI Plug-in
+providerName = Eclipse Modeling Project
+
+importWizards.category.teneo.name=Teneo
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/plugin.xml b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/plugin.xml
new file mode 100755
index 000000000..433787920
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.importWizards">
+ <category
+ id="org.eclipse.emf.teneo.eclipselink.common.ui.importWizards.category.teneo"
+ name="%importWizards.category.teneo.name">
+ </category>
+ </extension>
+</plugin>
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/Activator.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/Activator.java
new file mode 100755
index 000000000..5cf98ad7d
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/Activator.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.common.ui;
+
+import org.eclipse.emf.teneo.eclipselink.common.ui.preferencepages.IDatabasePreferenceConstants;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.teneo.eclipselink.common.ui"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Returns the database settings which will show up when Preference dialog opens up for the first time.
+ */
+ @Override
+ protected void initializeDefaultPreferences(IPreferenceStore store) {
+ store.setDefault(IDatabasePreferenceConstants.USE_LOGIN_FROM,
+ IDatabasePreferenceConstants.USE_LOGIN_FROM_DEFAULT);
+ store.setDefault(IDatabasePreferenceConstants.DATABASE_URL, IDatabasePreferenceConstants.DATABASE_URL_DEFAULT);
+ store.setDefault(IDatabasePreferenceConstants.JDBC_DRIVER, IDatabasePreferenceConstants.JDBC_DRIVER_DEFAULT);
+ store.setDefault(IDatabasePreferenceConstants.USER_NAME, IDatabasePreferenceConstants.USER_NAME_DEFAULT);
+ store.setDefault(IDatabasePreferenceConstants.PASSWORD, IDatabasePreferenceConstants.PASSWORD_DEFAULT);
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/internal/messages/Messages.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/internal/messages/Messages.java
new file mode 100755
index 000000000..12485709f
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/internal/messages/Messages.java
@@ -0,0 +1,55 @@
+package org.eclipse.emf.teneo.eclipselink.common.ui.internal.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.emf.teneo.eclipselink.common.ui.internal.messages.messages"; //$NON-NLS-1$
+ public static String button_fromPersistenceUnit;
+ public static String button_fromUserPreferences;
+ public static String error_databaseContainsNo$0Objects;
+ public static String error_databaseURLMissing;
+ public static String error_editorIDMissing;
+ public static String error_editorIDMustIdentifyExistingEditor;
+ public static String error_failedToOpenDatabase;
+ public static String error_jdbcDriverMissing;
+ public static String error_packageNamespaceURIMissing;
+ public static String error_packageNamespaceURIMustIdentifyExistingEcorePackage;
+ public static String error_passwordMissing;
+ public static String error_persistenceUnitNameMissing;
+ public static String error_persistenceUnitNameMustIdentifyExistingPersistenceUnit;
+ public static String error_rootObjectMissing;
+ public static String error_rootObjectMustBeExistingRootObjectCandidate;
+ public static String error_rootObjectMustBeInEcorePackage$0;
+ public static String error_rootObjectTypeMissing;
+ public static String error_userNameMissing;
+ public static String group_databaseLogin;
+ public static String label_DatabaseURL;
+ public static String label_editorID;
+ public static String label_jdbcDriver;
+ public static String label_packageNamespaceURI;
+ public static String label_password;
+ public static String label_persistenceUnitName;
+ public static String label_rootObject;
+ public static String label_rootObjectType;
+ public static String label_userName;
+ public static String message_loadsModelFromDatabaseUsingURI$0;
+ public static String page_emfModelAndDatabase_description;
+ public static String page_emfModelAndDatabase_title;
+ public static String page_rootObjectAndEMFModelEditor_description;
+ public static String page_rootObjectAndEMFModelEditor_title;
+ public static String value_databaseLogin;
+ public static String value_databaseURL;
+ public static String value_fromPersistenceUnit;
+ public static String value_fromUserPreferences;
+ public static String value_jdbcDriver;
+ public static String value_password;
+ public static String value_userName;
+ public static String wizard_loadEMFModelFromDatabase_title;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/internal/messages/messages.properties b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/internal/messages/messages.properties
new file mode 100755
index 000000000..2563550cb
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/internal/messages/messages.properties
@@ -0,0 +1,53 @@
+# ====================================================================
+# To code developer:
+# Do NOT change the properties between this line and the
+# "%%% END OF TRANSLATED PROPERTIES %%%" line.
+# Make a new property name, append to the end of the file and change
+# the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+button_fromPersistenceUnit=from Persistence Unit
+button_fromUserPreferences=from user preferences
+error_databaseContainsNo$0Objects=Database contains no "{0}" objects. Go back and select another EMF model package and/or root object type.
+error_databaseURLMissing=Database URL name must be specified.
+error_editorIDMissing=Editor ID must be specified.
+error_editorIDMustIdentifyExistingEditor=Editor ID must identify existing database-enabled editor.
+error_failedToOpenDatabase=Failed to open database. Go back and make sure that model and database access parameters are correct. See Error Log for details if this problem still occurs.
+error_jdbcDriverMissing=JDBC driver must be specified.
+error_packageNamespaceURIMissing=Package namespace URI must be specified.
+error_packageNamespaceURIMustIdentifyExistingEcorePackage=Package namespace URI must identify existing Ecore package registred in global Ecore package registry.
+error_passwordMissing=Password must be specified.
+error_persistenceUnitNameMissing=Persistence Unit name must be specified.
+error_persistenceUnitNameMustIdentifyExistingPersistenceUnit=Persistence Unit name must identify existing Persistence Unit.
+error_rootObjectMissing=Root object must be specified.
+error_rootObjectMustBeExistingRootObjectCandidate=Root object must be member of existing root object candidates.
+error_rootObjectMustBeInEcorePackage$0=Root object type must be member of Ecore package "{0}".
+error_rootObjectTypeMissing=Root object type must be specified.
+error_userNameMissing=User name must be specified.
+group_databaseLogin=Database login:
+label_DatabaseURL=Database URL:
+label_editorID=Editor ID:
+label_jdbcDriver=JDBC driver:
+label_packageNamespaceURI=Package namespace URI:
+label_password=Password:
+label_persistenceUnitName=Persistence Unit name:
+label_rootObject=Root object:
+label_rootObjectType=Root object type:
+label_userName=User name:
+message_loadsModelFromDatabaseUsingURI$0=Loads model from database using following URI:\n{0}
+page_emfModelAndDatabase_description=Set access parameters for EMF model and database.
+page_emfModelAndDatabase_title=EMF Model and Database
+page_rootObjectAndEMFModelEditor_description=Select root object and database-enabled EMF model editor.
+page_rootObjectAndEMFModelEditor_title=Root Object and EMF Model Editor
+value_databaseLogin=Database login:
+value_databaseURL=Database URL:
+value_fromPersistenceUnit=from Persistence Unit
+value_fromUserPreferences=from user preferences
+value_jdbcDriver=JDBC driver:
+value_password=Password:
+value_userName=User name:
+wizard_loadEMFModelFromDatabase_title=Load EMF Model from Database
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/preferencepages/BasicDatabasePreferencePage.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/preferencepages/BasicDatabasePreferencePage.java
new file mode 100755
index 000000000..9cb90046b
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/preferencepages/BasicDatabasePreferencePage.java
@@ -0,0 +1,138 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.common.ui.preferencepages;
+
+import org.eclipse.emf.teneo.eclipselink.common.ui.Activator;
+import org.eclipse.emf.teneo.eclipselink.common.ui.internal.messages.Messages;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.RadioGroupFieldEditor;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+public class BasicDatabasePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+
+ protected RadioGroupFieldEditor useLoginFromEditor;
+ protected Composite useLoginFromEditorComposite;
+
+ protected StringFieldEditor databaseURLEditor;
+ protected StringFieldEditor jdbcDriverEditor;
+ protected StringFieldEditor userNameEditor;
+ protected StringFieldEditor passwordEditor;
+
+ public BasicDatabasePreferencePage() {
+ super("", GRID); //$NON-NLS-1$
+ }
+
+ public BasicDatabasePreferencePage(String title) {
+ super(title, GRID);
+ }
+
+ public BasicDatabasePreferencePage(String title, ImageDescriptor image) {
+ super(title, image, GRID);
+ }
+
+ public void init(IWorkbench workbench) {
+
+ }
+
+ @Override
+ protected void createFieldEditors() {
+ // create use login from selection widgets
+ useLoginFromEditor = new RadioGroupFieldEditor(IDatabasePreferenceConstants.USE_LOGIN_FROM,
+ Messages.value_databaseLogin, 1, new String[][] {
+ { Messages.value_fromPersistenceUnit,
+ IDatabasePreferenceConstants.USE_LOGIN_FROM_PERSISTENCE_UNIT },
+ { Messages.value_fromUserPreferences,
+ IDatabasePreferenceConstants.USE_LOGIN_FROM_USER_PREFERENCES } },
+ getFieldEditorParent(), true);
+ addField(useLoginFromEditor);
+ useLoginFromEditorComposite = useLoginFromEditor.getRadioBoxControl(getFieldEditorParent());
+
+ // create database URL selection widgets
+ databaseURLEditor = new StringFieldEditor(IDatabasePreferenceConstants.DATABASE_URL,
+ Messages.value_databaseURL, useLoginFromEditorComposite);
+ databaseURLEditor.setEnabled(false, useLoginFromEditorComposite);
+ addField(databaseURLEditor);
+
+ // create JDBC driver selection widgets
+ jdbcDriverEditor = new StringFieldEditor(IDatabasePreferenceConstants.JDBC_DRIVER, Messages.value_jdbcDriver,
+ useLoginFromEditorComposite);
+ addField(jdbcDriverEditor);
+
+ // create user name widgets
+ userNameEditor = new StringFieldEditor(IDatabasePreferenceConstants.USER_NAME, Messages.value_userName,
+ useLoginFromEditorComposite);
+ addField(userNameEditor);
+
+ // create password name widgets
+ passwordEditor = new StringFieldEditor(IDatabasePreferenceConstants.PASSWORD, Messages.value_password,
+ useLoginFromEditorComposite);
+ Text passwordField = passwordEditor.getTextControl(useLoginFromEditorComposite);
+ passwordField.setEchoChar('*');
+ addField(passwordEditor);
+
+ // adjust layout of use login from selection widgets
+ GridLayout layout = (GridLayout) useLoginFromEditorComposite.getLayout();
+ layout.marginWidth = 5;
+ layout.marginHeight = 5;
+
+ // set the field editors's enabled state
+ IPreferenceStore store = getPreferenceStore();
+ setFieldEditorsEnabled(store.getString(IDatabasePreferenceConstants.USE_LOGIN_FROM));
+ }
+
+ @Override
+ protected IPreferenceStore doGetPreferenceStore() {
+ return Activator.getDefault().getPreferenceStore();
+ }
+
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ super.propertyChange(event);
+ // event originating from use login from selection widgets?
+ if (event.getSource() == useLoginFromEditor) {
+ // set the field editors's enabled state
+ setFieldEditorsEnabled((String) event.getNewValue());
+ }
+ }
+
+ protected void setFieldEditorsEnabled(String useLoginFromValue) {
+ if (IDatabasePreferenceConstants.USE_LOGIN_FROM_USER_PREFERENCES.equals(useLoginFromValue)) {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ databaseURLEditor.setStringValue(store.getString(IDatabasePreferenceConstants.DATABASE_URL));
+ jdbcDriverEditor.setStringValue(store.getString(IDatabasePreferenceConstants.JDBC_DRIVER));
+ userNameEditor.setStringValue(store.getString(IDatabasePreferenceConstants.USER_NAME));
+ passwordEditor.setStringValue(store.getString(IDatabasePreferenceConstants.PASSWORD));
+
+ databaseURLEditor.setEnabled(true, useLoginFromEditorComposite);
+ jdbcDriverEditor.setEnabled(true, useLoginFromEditorComposite);
+ userNameEditor.setEnabled(true, useLoginFromEditorComposite);
+ passwordEditor.setEnabled(true, useLoginFromEditorComposite);
+ } else {
+ databaseURLEditor.setStringValue(null);
+ jdbcDriverEditor.setStringValue(null);
+ userNameEditor.setStringValue(null);
+ passwordEditor.setStringValue(null);
+
+ databaseURLEditor.setEnabled(false, useLoginFromEditorComposite);
+ jdbcDriverEditor.setEnabled(false, useLoginFromEditorComposite);
+ userNameEditor.setEnabled(false, useLoginFromEditorComposite);
+ passwordEditor.setEnabled(false, useLoginFromEditorComposite);
+ }
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/preferencepages/IDatabasePreferenceConstants.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/preferencepages/IDatabasePreferenceConstants.java
new file mode 100755
index 000000000..08e7d7da5
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/preferencepages/IDatabasePreferenceConstants.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.common.ui.preferencepages;
+
+public interface IDatabasePreferenceConstants {
+
+ String USE_LOGIN_FROM = "USE_LOGIN_FROM"; //$NON-NLS-1$
+ String USE_LOGIN_FROM_PERSISTENCE_UNIT = "from_persistence_unit"; //$NON-NLS-1$
+ String USE_LOGIN_FROM_USER_PREFERENCES = "from_user_preferences"; //$NON-NLS-1$
+ String USE_LOGIN_FROM_DEFAULT = USE_LOGIN_FROM_PERSISTENCE_UNIT;
+
+ String DATABASE_URL = "DATABASE_URL"; //$NON-NLS-1$
+ String DATABASE_URL_DEFAULT = "jdbc:derby://localhost:1527/sample;create=true"; //$NON-NLS-1$
+
+ String JDBC_DRIVER = "JDBC_DRIVER"; //$NON-NLS-1$
+ String JDBC_DRIVER_DEFAULT = "org.apache.derby.jdbc.ClientDriver"; //$NON-NLS-1$
+
+ String USER_NAME = "USER_NAME"; //$NON-NLS-1$
+ String USER_NAME_DEFAULT = ""; //$NON-NLS-1$
+
+ String PASSWORD = "PASSWORD"; //$NON-NLS-1$
+ String PASSWORD_DEFAULT = ""; //$NON-NLS-1$
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/AbstractLoadModelFromDatabaseWizard.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/AbstractLoadModelFromDatabaseWizard.java
new file mode 100755
index 000000000..aed743db4
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/AbstractLoadModelFromDatabaseWizard.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.common.ui.wizards;
+
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.teneo.eclipselink.common.ui.Activator;
+import org.eclipse.emf.teneo.eclipselink.common.ui.internal.messages.Messages;
+import org.eclipse.emf.teneo.eclipselink.common.ui.preferencepages.IDatabasePreferenceConstants;
+import org.eclipse.emf.teneo.eclipselink.common.ui.wizards.pages.AbstractRootObjectAndModelEditorPage;
+import org.eclipse.emf.teneo.eclipselink.common.ui.wizards.pages.BasicModelAndDatabaseAccessParametersPage;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+
+public abstract class AbstractLoadModelFromDatabaseWizard extends Wizard {
+
+ protected BasicModelAndDatabaseAccessParametersPage modelAndDatabaseAccessParametersPage;
+ protected AbstractRootObjectAndModelEditorPage rootObjectAndModelEditorPage;
+
+ public AbstractLoadModelFromDatabaseWizard() {
+ setWindowTitle(Messages.wizard_loadEMFModelFromDatabase_title);
+ }
+
+ @Override
+ public void addPages() {
+ modelAndDatabaseAccessParametersPage = createModelAndDatabaseAccessParametersPage("Page1"); //$NON-NLS-1$
+ modelAndDatabaseAccessParametersPage.setTitle(Messages.page_emfModelAndDatabase_title);
+ modelAndDatabaseAccessParametersPage.setDescription(Messages.page_emfModelAndDatabase_description);
+ addPage(modelAndDatabaseAccessParametersPage);
+
+ rootObjectAndModelEditorPage = createRootObjectAndModelEditorPage("Page2"); //$NON-NLS-1$
+ rootObjectAndModelEditorPage.setTitle(Messages.page_rootObjectAndEMFModelEditor_title);
+ rootObjectAndModelEditorPage.setDescription(Messages.page_rootObjectAndEMFModelEditor_description);
+ addPage(rootObjectAndModelEditorPage);
+ }
+
+ @Override
+ public boolean performFinish() {
+ // update database settings in user preferences as far as required
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ store.setValue(IDatabasePreferenceConstants.USE_LOGIN_FROM, modelAndDatabaseAccessParametersPage
+ .getUseLoginFrom());
+ if (IDatabasePreferenceConstants.USE_LOGIN_FROM_USER_PREFERENCES.equals(modelAndDatabaseAccessParametersPage
+ .getUseLoginFrom())) {
+ store.setValue(IDatabasePreferenceConstants.DATABASE_URL, modelAndDatabaseAccessParametersPage
+ .getDatabaseURL());
+ store.setValue(IDatabasePreferenceConstants.JDBC_DRIVER, modelAndDatabaseAccessParametersPage
+ .getJDBCDriver());
+ store.setValue(IDatabasePreferenceConstants.USER_NAME, modelAndDatabaseAccessParametersPage.getUserName());
+ store.setValue(IDatabasePreferenceConstants.PASSWORD, modelAndDatabaseAccessParametersPage.getPassword());
+ }
+
+ // create database URI for selected root object
+ URI uri = createDatabaseURI(modelAndDatabaseAccessParametersPage.getPersistenceUnitName(),
+ rootObjectAndModelEditorPage.getRootObject());
+
+ // open editor on new database URI
+ IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ try {
+ page.openEditor(new URIEditorInput(uri), rootObjectAndModelEditorPage.getEditorId());
+ } catch (PartInitException piex) {
+ MessageDialog.openError(workbenchWindow.getShell(), getWindowTitle(), piex.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+
+ protected abstract BasicModelAndDatabaseAccessParametersPage createModelAndDatabaseAccessParametersPage(
+ String pageName);
+
+ protected abstract AbstractRootObjectAndModelEditorPage createRootObjectAndModelEditorPage(String pageName);
+
+ protected abstract URI createDatabaseURI(String persistenceUnitName, EObject rootObject);
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/pages/AbstractRootObjectAndModelEditorPage.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/pages/AbstractRootObjectAndModelEditorPage.java
new file mode 100755
index 000000000..df29a23f5
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/pages/AbstractRootObjectAndModelEditorPage.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.common.ui.wizards.pages;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.teneo.eclipselink.common.ui.Activator;
+import org.eclipse.emf.teneo.eclipselink.common.ui.internal.messages.Messages;
+import org.eclipse.emf.teneo.eclipselink.common.ui.preferencepages.IDatabasePreferenceConstants;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+public abstract class AbstractRootObjectAndModelEditorPage extends WizardPage {
+
+ protected static QualifiedName rootObjectName = new QualifiedName(Activator.getDefault().getBundle()
+ .getSymbolicName(), "rootObject"); //$NON-NLS-1$
+ protected static QualifiedName editorIdName = new QualifiedName(Activator.getDefault().getBundle()
+ .getSymbolicName(), "editorId"); //$NON-NLS-1$
+
+ protected Combo rootObjectField;
+ protected Combo editorIdField;
+
+ protected AdapterFactoryItemDelegator adapterFactoryItemDelegator;
+ protected List<EObject> rootObjectCandidates = new ArrayList<EObject>();
+
+ public AbstractRootObjectAndModelEditorPage(String pageName) {
+ super(pageName);
+ AdapterFactory adapterFactory = new ReflectiveItemProviderAdapterFactory();
+ adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(adapterFactory);
+ }
+
+ public EObject getRootObject() {
+ EObject result = null;
+ for (EObject eObject : rootObjectCandidates) {
+ String name = adapterFactoryItemDelegator.getText(eObject);
+ if (name.equals(rootObjectField.getText())) {
+ result = eObject;
+ }
+ }
+ return result;
+ }
+
+ public String getEditorId() {
+ return editorIdField.getText();
+ }
+
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(new GridLayout(2, false));
+ composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ new Label(composite, SWT.LEFT).setText(Messages.label_rootObject);
+
+ rootObjectField = new Combo(composite, SWT.BORDER);
+ rootObjectField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ rootObjectField.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+
+ EObject rootObject = getRootObject();
+ if (rootObject != null) {
+ URI uri = createDatabaseURI(getTypedPreviousPage().getPersistenceUnitName(), rootObject);
+ setMessage(NLS.bind(Messages.message_loadsModelFromDatabaseUsingURI$0, uri));
+ }
+ }
+ });
+
+ new Label(composite, SWT.LEFT).setText(Messages.label_editorID);
+
+ editorIdField = new Combo(composite, SWT.BORDER);
+ editorIdField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ initEditorIdField();
+ editorIdField.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ });
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ @Override
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (visible) {
+ updateRootObjectField();
+ } else {
+ persistWidgets();
+ }
+ }
+
+ @Override
+ public void dispose() {
+ persistWidgets();
+ super.dispose();
+ }
+
+ protected void initEditorIdField() {
+ for (String editorId : getEditorIds()) {
+ editorIdField.add(editorId);
+ }
+ int index = 0;
+ try {
+ String lastEditorId = ResourcesPlugin.getWorkspace().getRoot().getPersistentProperty(editorIdName);
+ index = Arrays.asList(editorIdField.getItems()).indexOf(lastEditorId);
+ index = index != -1 ? index : 0;
+ } catch (CoreException cex) {
+ Activator.getDefault().getLog().log(cex.getStatus());
+ }
+ editorIdField.select(index);
+ }
+
+ protected void updateRootObjectField() {
+ rootObjectField.removeAll();
+
+ rootObjectCandidates = loadRootObjectCandidates();
+ for (EObject eObject : rootObjectCandidates) {
+ String label = adapterFactoryItemDelegator.getText(eObject);
+ rootObjectField.add(label);
+ }
+ int index = 0;
+ try {
+ String lastRootObject = ResourcesPlugin.getWorkspace().getRoot().getPersistentProperty(rootObjectName);
+ index = Arrays.asList(rootObjectField.getItems()).indexOf(lastRootObject);
+ index = index != -1 ? index : 0;
+ } catch (CoreException cex) {
+ Activator.getDefault().getLog().log(cex.getStatus());
+ }
+ rootObjectField.select(index);
+ }
+
+ protected boolean validatePage() {
+ setErrorMessage(null);
+ if (isBlank(rootObjectField.getText())) {
+ setErrorMessage(Messages.error_rootObjectMissing);
+ return false;
+ }
+ if (!Arrays.asList(rootObjectField.getItems()).contains(rootObjectField.getText())) {
+ setErrorMessage(Messages.error_rootObjectMustBeExistingRootObjectCandidate);
+ return false;
+ }
+ if (isBlank(editorIdField.getText())) {
+ setErrorMessage(Messages.error_editorIDMissing);
+ return false;
+ }
+ if (!Arrays.asList(editorIdField.getItems()).contains(editorIdField.getText())) {
+ setErrorMessage(Messages.error_editorIDMustIdentifyExistingEditor);
+ return false;
+ }
+ return true;
+ }
+
+ protected void persistWidgets() {
+ try {
+ ResourcesPlugin.getWorkspace().getRoot().setPersistentProperty(rootObjectName, rootObjectField.getText());
+ ResourcesPlugin.getWorkspace().getRoot().setPersistentProperty(editorIdName, editorIdField.getText());
+ } catch (CoreException cex) {
+ Activator.getDefault().getLog().log(cex.getStatus());
+ }
+ }
+
+ protected abstract URI createDatabaseURI(String persistenceUnitName, EClass eClass);
+
+ protected abstract URI createDatabaseURI(String persistenceUnitName, EObject eObject);
+
+ protected abstract Map<String, Object> getPersistenceUnitProperties();
+
+ protected abstract Map<String, Object> getDatabaseLoginOptionsFromPreviousPage();
+
+ protected boolean isBlank(String string) {
+ return string == null || string.trim().length() == 0;
+ }
+
+ protected BasicModelAndDatabaseAccessParametersPage getTypedPreviousPage() {
+ return (BasicModelAndDatabaseAccessParametersPage) getPreviousPage();
+ }
+
+ protected List<EObject> loadRootObjectCandidates() {
+ List<EObject> result = new ArrayList<EObject>();
+ EPackage ePackage = EPackage.Registry.INSTANCE.getEPackage(getTypedPreviousPage().getPackageNsURI());
+ EClass eRootClass = (EClass) ePackage.getEClassifier(getTypedPreviousPage().getRootObjectTypeName());
+ URI uri = createDatabaseURI(getTypedPreviousPage().getPersistenceUnitName(), eRootClass);
+
+ ResourceSet resourceSet = new ResourceSetImpl();
+ resourceSet.getLoadOptions().putAll(getPersistenceUnitProperties());
+ if (IDatabasePreferenceConstants.USE_LOGIN_FROM_USER_PREFERENCES.equals(getTypedPreviousPage()
+ .getUseLoginFrom())) {
+ resourceSet.getLoadOptions().putAll(getDatabaseLoginOptionsFromPreviousPage());
+ }
+ Resource resource = null;
+ try {
+ resource = resourceSet.getResource(uri, true);
+ EList<EObject> contents = resource.getContents();
+ if (contents.size() > 0) {
+ result.addAll(contents);
+ } else {
+ setErrorMessage(NLS.bind(Messages.error_databaseContainsNo$0Objects, eRootClass.getName()));
+ }
+ } catch (Exception exception) {
+ setErrorMessage(Messages.error_failedToOpenDatabase);
+ Activator.getDefault().getLog().log(
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID, exception.getMessage(), exception));
+ } finally {
+ if (resource != null) {
+ resource.unload();
+ }
+ }
+
+ return result;
+ }
+
+ protected List<String> getEditorIds() {
+ List<String> result = new ArrayList<String>();
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IConfigurationElement[] elements = registry.getConfigurationElementsFor("org.eclipse.ui.editors"); //$NON-NLS-1$
+ if (elements != null) {
+ for (IConfigurationElement element : elements) {
+ String extensions = element.getAttribute("extensions"); //$NON-NLS-1$
+ if (extensions != null && extensions.indexOf("database") != -1) { //$NON-NLS-1$
+ result.add(element.getAttribute("id")); //$NON-NLS-1$
+ }
+ }
+ }
+ return result;
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/pages/BasicModelAndDatabaseAccessParametersPage.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/pages/BasicModelAndDatabaseAccessParametersPage.java
new file mode 100755
index 000000000..07add6064
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.common.ui/src/org/eclipse/emf/teneo/eclipselink/common/ui/wizards/pages/BasicModelAndDatabaseAccessParametersPage.java
@@ -0,0 +1,453 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.common.ui.wizards.pages;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.teneo.eclipselink.common.ui.Activator;
+import org.eclipse.emf.teneo.eclipselink.common.ui.internal.messages.Messages;
+import org.eclipse.emf.teneo.eclipselink.common.ui.preferencepages.IDatabasePreferenceConstants;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+public class BasicModelAndDatabaseAccessParametersPage extends WizardPage {
+
+ protected static QualifiedName packageNsURIName = new QualifiedName(Activator.getDefault().getBundle()
+ .getSymbolicName(), "packageNsURI"); //$NON-NLS-1$
+ protected static QualifiedName rootObjectTypeName = new QualifiedName(Activator.getDefault().getBundle()
+ .getSymbolicName(), "rootObjectType"); //$NON-NLS-1$
+ protected static QualifiedName persistenceUnitNameName = new QualifiedName(Activator.getDefault().getBundle()
+ .getSymbolicName(), "persistenceUnitName"); //$NON-NLS-1$
+
+ protected Combo packageNsURIField;
+ protected Combo rootObjectTypeField;
+ protected Combo persistenceUnitNameField;
+
+ protected Button useLoginFromPersistenceUnitButton;
+ protected Button useLoginFromUserPreferencesButton;
+ private Label databaseURLLabel;
+ protected Combo databaseURLField;
+ private Label jdbcDriverLabel;
+ protected Combo jdbcDriverField;
+ private Label userNameLabel;
+ protected Text userNameField;
+ private Label passwordLabel;
+ protected Text passwordField;
+
+ public BasicModelAndDatabaseAccessParametersPage(String pageName) {
+ super(pageName);
+ }
+
+ public String getPackageNsURI() {
+ return packageNsURIField.getText();
+ }
+
+ public String getRootObjectTypeName() {
+ return rootObjectTypeField.getText();
+ }
+
+ public String getPersistenceUnitName() {
+ return persistenceUnitNameField.getText();
+ }
+
+ public String getUseLoginFrom() {
+ String result;
+ if (useLoginFromUserPreferencesButton.getSelection()) {
+ result = IDatabasePreferenceConstants.USE_LOGIN_FROM_USER_PREFERENCES;
+ } else {
+ result = IDatabasePreferenceConstants.USE_LOGIN_FROM_PERSISTENCE_UNIT;
+ }
+ return result;
+ }
+
+ public String getDatabaseURL() {
+ return databaseURLField.getText();
+ }
+
+ public String getJDBCDriver() {
+ return jdbcDriverField.getText();
+ }
+
+ public String getUserName() {
+ return userNameField.getText();
+ }
+
+ public String getPassword() {
+ return passwordField.getText();
+ }
+
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(new GridLayout());
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ createModelAndPersistenceUnitGroup(composite);
+ createDatabaseLoginGroup(composite);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ private void createModelAndPersistenceUnitGroup(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(new GridLayout(2, false));
+ composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ // create Ecore package namespace URI selection widgets
+ new Label(composite, SWT.LEFT).setText(Messages.label_packageNamespaceURI);
+
+ packageNsURIField = new Combo(composite, SWT.BORDER);
+ packageNsURIField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ initPackageNsURIField();
+ packageNsURIField.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ updateRootObjectTypeField();
+ setPageComplete(validatePage());
+ }
+ });
+
+ // create root object type selection widgets
+ new Label(composite, SWT.LEFT).setText(Messages.label_rootObjectType);
+
+ rootObjectTypeField = new Combo(composite, SWT.BORDER);
+ rootObjectTypeField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ rootObjectTypeField.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ });
+
+ // create persistence unit name selection widgets
+ new Label(composite, SWT.LEFT).setText(Messages.label_persistenceUnitName);
+
+ persistenceUnitNameField = new Combo(composite, SWT.BORDER);
+ persistenceUnitNameField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ initPersistenceUnitNameField();
+ persistenceUnitNameField.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ });
+
+ updateRootObjectTypeField();
+ }
+
+ private void createDatabaseLoginGroup(Composite parent) {
+ Group group = new Group(parent, SWT.NONE);
+ group.setText(Messages.group_databaseLogin);
+ group.setLayout(new GridLayout(2, false));
+ group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ // create use login from selection widgets
+ useLoginFromPersistenceUnitButton = new Button(group, SWT.RADIO);
+ useLoginFromPersistenceUnitButton.setText(Messages.button_fromPersistenceUnit);
+ GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+ gridData.horizontalSpan = 2;
+ useLoginFromPersistenceUnitButton.setLayoutData(gridData);
+ useLoginFromUserPreferencesButton = new Button(group, SWT.RADIO);
+ useLoginFromUserPreferencesButton.setText(Messages.button_fromUserPreferences);
+ gridData = new GridData(GridData.FILL_HORIZONTAL);
+ gridData.horizontalSpan = 2;
+ useLoginFromUserPreferencesButton.setLayoutData(gridData);
+ initUseLoginFromButtons();
+ useLoginFromUserPreferencesButton.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ updateDatabaseLoginFields();
+ setPageComplete(validatePage());
+ }
+ });
+
+ // create database URL selection widgets
+ databaseURLLabel = new Label(group, SWT.LEFT);
+ databaseURLLabel.setText(Messages.label_DatabaseURL);
+
+ databaseURLField = new Combo(group, SWT.BORDER);
+ databaseURLField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ initDatabaseURLField();
+ databaseURLField.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ });
+
+ // create JDBC driver selection widgets
+ jdbcDriverLabel = new Label(group, SWT.LEFT);
+ jdbcDriverLabel.setText(Messages.label_jdbcDriver);
+
+ jdbcDriverField = new Combo(group, SWT.BORDER);
+ jdbcDriverField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ initJDBCDriverField();
+ jdbcDriverField.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ });
+
+ // create user name widgets
+ userNameLabel = new Label(group, SWT.LEFT);
+ userNameLabel.setText(Messages.label_userName);
+
+ userNameField = new Text(group, SWT.BORDER);
+ userNameField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ userNameField.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ });
+
+ // create password name widgets
+ passwordLabel = new Label(group, SWT.LEFT);
+ passwordLabel.setText(Messages.label_password);
+
+ passwordField = new Text(group, SWT.BORDER);
+ passwordField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ passwordField.setEchoChar('*');
+ passwordField.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ });
+
+ updateDatabaseLoginFields();
+ }
+
+ @Override
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (!visible) {
+ persistWidgets();
+ }
+ }
+
+ protected void initPackageNsURIField() {
+ for (String nsURI : getModelNsURIs()) {
+ packageNsURIField.add(nsURI);
+ }
+ int index = 0;
+ try {
+ String lastPackageNsURI = ResourcesPlugin.getWorkspace().getRoot().getPersistentProperty(packageNsURIName);
+ index = Arrays.asList(packageNsURIField.getItems()).indexOf(lastPackageNsURI);
+ index = index != -1 ? index : 0;
+ } catch (CoreException cex) {
+ Activator.getDefault().getLog().log(cex.getStatus());
+ }
+ packageNsURIField.select(index);
+ }
+
+ protected void initPersistenceUnitNameField() {
+ for (String name : getPersistenceUnitNames()) {
+ persistenceUnitNameField.add(name);
+ }
+ int index = 0;
+ try {
+ String lastPersistenceUnitName = ResourcesPlugin.getWorkspace().getRoot().getPersistentProperty(
+ persistenceUnitNameName);
+ index = Arrays.asList(persistenceUnitNameField.getItems()).indexOf(lastPersistenceUnitName);
+ index = index != -1 ? index : 0;
+ } catch (CoreException cex) {
+ Activator.getDefault().getLog().log(cex.getStatus());
+ }
+ persistenceUnitNameField.select(index);
+ }
+
+ protected void initUseLoginFromButtons() {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ String useLoginFrom = store.getString(IDatabasePreferenceConstants.USE_LOGIN_FROM);
+ useLoginFromPersistenceUnitButton.setSelection(IDatabasePreferenceConstants.USE_LOGIN_FROM_PERSISTENCE_UNIT
+ .equals(useLoginFrom));
+ useLoginFromUserPreferencesButton.setSelection(IDatabasePreferenceConstants.USE_LOGIN_FROM_USER_PREFERENCES
+ .equals(useLoginFrom));
+ }
+
+ protected void initDatabaseURLField() {
+ databaseURLField.add("jdbc:derby://localhost:1527/sample;create=true"); //$NON-NLS-1$
+ databaseURLField.add("jdbc:oracle:thin:@localhost:1521:XE"); //$NON-NLS-1$
+ databaseURLField.add("jdbc:oracle:thin:@localhost:1521:ORCL"); //$NON-NLS-1$
+ }
+
+ protected void initJDBCDriverField() {
+ jdbcDriverField.add("org.apache.derby.jdbc.ClientDriver"); //$NON-NLS-1$
+ jdbcDriverField.add("oracle.jdbc.OracleDriver"); //$NON-NLS-1$
+ jdbcDriverField.add("com.mysql.jdbc.Driver"); //$NON-NLS-1$
+ }
+
+ protected void updateRootObjectTypeField() {
+ rootObjectTypeField.removeAll();
+
+ for (String name : getModelObjectTypeNames(packageNsURIField.getText())) {
+ rootObjectTypeField.add(name);
+ }
+ int index = 0;
+ try {
+ String lastRootObjectType = ResourcesPlugin.getWorkspace().getRoot().getPersistentProperty(
+ rootObjectTypeName);
+ index = Arrays.asList(rootObjectTypeField.getItems()).indexOf(lastRootObjectType);
+ index = index != -1 ? index : 0;
+ } catch (CoreException cex) {
+ Activator.getDefault().getLog().log(cex.getStatus());
+ }
+ rootObjectTypeField.select(index);
+ }
+
+ protected void updateDatabaseLoginFields() {
+
+ if (useLoginFromUserPreferencesButton.getSelection()) {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ databaseURLField.setText(store.getString(IDatabasePreferenceConstants.DATABASE_URL));
+ jdbcDriverField.setText(store.getString(IDatabasePreferenceConstants.JDBC_DRIVER));
+ userNameField.setText(store.getString(IDatabasePreferenceConstants.USER_NAME));
+ passwordField.setText(store.getString(IDatabasePreferenceConstants.PASSWORD));
+
+ databaseURLLabel.setEnabled(true);
+ databaseURLField.setEnabled(true);
+ jdbcDriverLabel.setEnabled(true);
+ jdbcDriverField.setEnabled(true);
+ userNameLabel.setEnabled(true);
+ userNameField.setEnabled(true);
+ passwordLabel.setEnabled(true);
+ passwordField.setEnabled(true);
+ } else {
+ updateDatabaseLoginFieldsFromPersistenceUnit();
+
+ databaseURLLabel.setEnabled(false);
+ databaseURLField.setEnabled(false);
+ jdbcDriverLabel.setEnabled(false);
+ jdbcDriverField.setEnabled(false);
+ userNameLabel.setEnabled(false);
+ userNameField.setEnabled(false);
+ passwordLabel.setEnabled(false);
+ passwordField.setEnabled(false);
+ }
+ }
+
+ protected boolean validatePage() {
+ setErrorMessage(null);
+ if (isBlank(packageNsURIField.getText())) {
+ setErrorMessage(Messages.error_packageNamespaceURIMissing);
+ return false;
+ }
+ if (!Arrays.asList(packageNsURIField.getItems()).contains(packageNsURIField.getText())) {
+ setErrorMessage(Messages.error_packageNamespaceURIMustIdentifyExistingEcorePackage);
+ return false;
+ }
+ if (isBlank(rootObjectTypeField.getText())) {
+ setErrorMessage(Messages.error_rootObjectTypeMissing);
+ return false;
+ }
+ if (!Arrays.asList(rootObjectTypeField.getItems()).contains(rootObjectTypeField.getText())) {
+ setErrorMessage(NLS.bind(Messages.error_rootObjectMustBeInEcorePackage$0, packageNsURIField.getText()));
+ return false;
+ }
+ if (isBlank(persistenceUnitNameField.getText())) {
+ setErrorMessage(Messages.error_persistenceUnitNameMissing);
+ return false;
+ }
+ if (!Arrays.asList(persistenceUnitNameField.getItems()).contains(persistenceUnitNameField.getText())) {
+ setErrorMessage(Messages.error_persistenceUnitNameMustIdentifyExistingPersistenceUnit);
+ return false;
+ }
+ if (useLoginFromUserPreferencesButton != null && useLoginFromUserPreferencesButton.getSelection()) {
+ if (isBlank(databaseURLField.getText())) {
+ setErrorMessage(Messages.error_databaseURLMissing);
+ return false;
+ }
+ if (isBlank(jdbcDriverField.getText())) {
+ setErrorMessage(Messages.error_jdbcDriverMissing);
+ return false;
+ }
+ if (isBlank(userNameField.getText())) {
+ setErrorMessage(Messages.error_userNameMissing);
+ return false;
+ }
+ if (isBlank(passwordField.getText())) {
+ setErrorMessage(Messages.error_passwordMissing);
+ return false;
+ }
+ }
+ return true;
+ }
+
+ protected void persistWidgets() {
+ try {
+ ResourcesPlugin.getWorkspace().getRoot().setPersistentProperty(packageNsURIName,
+ packageNsURIField.getText());
+ ResourcesPlugin.getWorkspace().getRoot().setPersistentProperty(rootObjectTypeName,
+ rootObjectTypeField.getText());
+ ResourcesPlugin.getWorkspace().getRoot().setPersistentProperty(persistenceUnitNameName,
+ persistenceUnitNameField.getText());
+ } catch (CoreException cex) {
+ Activator.getDefault().getLog().log(cex.getStatus());
+ }
+ }
+
+ protected Set<String> getPersistenceUnitNames() {
+ return Collections.emptySet();
+ }
+
+ protected void updateDatabaseLoginFieldsFromPersistenceUnit() {
+ databaseURLField.setText(""); //$NON-NLS-1$
+ jdbcDriverField.setText(""); //$NON-NLS-1$
+ userNameField.setText(""); //$NON-NLS-1$
+ passwordField.setText(""); //$NON-NLS-1$
+ }
+
+ protected boolean isBlank(String string) {
+ return string == null || string.trim().length() == 0;
+ }
+
+ protected List<String> getModelNsURIs() {
+ List<String> result = new ArrayList<String>(EPackage.Registry.INSTANCE.keySet());
+ Collections.sort(result, java.text.Collator.getInstance());
+ return result;
+ }
+
+ protected List<String> getModelObjectTypeNames(String nsURI) {
+ List<String> result = new ArrayList<String>();
+ EPackage ePackage = EPackage.Registry.INSTANCE.getEPackage(nsURI);
+ if (ePackage != null) {
+ for (EClassifier eClassifier : ePackage.getEClassifiers()) {
+ if (eClassifier instanceof EClass) {
+ EClass eClass = (EClass) eClassifier;
+ if (!eClass.isAbstract()) {
+ result.add(eClass.getName());
+ }
+ }
+ }
+ }
+ Collections.sort(result, java.text.Collator.getInstance());
+ return result;
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.classpath b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.classpath
new file mode 100755
index 000000000..64c5e31b7
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.cvsignore b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.cvsignore
new file mode 100755
index 000000000..ba077a403
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.project b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.project
new file mode 100755
index 000000000..c02992a11
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.teneo.eclipselink.elistfactory</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.core.resources.prefs b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.core.resources.prefs
new file mode 100755
index 000000000..03710d336
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Tue Oct 12 14:12:28 CEST 2004
+eclipse.preferences.version=1
+
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.jdt.core.prefs b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 000000000..dc287ee43
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,332 @@
+#Mon Feb 08 06:56:48 CET 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.jdt.ui.prefs b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.jdt.ui.prefs
new file mode 100755
index 000000000..5b2edb475
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,58 @@
+#Wed Jan 21 22:44:02 CET 2009
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Teneo
+formatter_settings_version=11
+internal.default.compliance=default
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=true
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=true
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/Based_on_GenClassImpl.getListConstructor_2.2.1.v200609210005.txt b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/Based_on_GenClassImpl.getListConstructor_2.2.1.v200609210005.txt
new file mode 100755
index 000000000..3409e151e
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/Based_on_GenClassImpl.getListConstructor_2.2.1.v200609210005.txt
@@ -0,0 +1,139 @@
+ public String getListConstructor(GenFeature genFeature)
+ {
+ StringBuffer sb = new StringBuffer();
+
+ String unsettable = genFeature.isUnsettable() ? ".Unsettable" : "";
+
+ if (genFeature.isMapType())
+ {
+ GenClass mapGenClass = genFeature.getMapEntryTypeGenClass();
+ sb.append(getGenModel().getImportedName("org.eclipse.emf.ecore.util.EcoreEMap"));
+ sb.append(unsettable);
+ sb.append("(");
+ sb.append(mapGenClass.getQualifiedClassifierAccessor());
+ sb.append(", ");
+ sb.append(genFeature.getImportedMapEntryType());
+ sb.append(".class, this, ");
+ sb.append(getQualifiedFeatureID(genFeature));
+ sb.append(")");
+ }
+ else if (genFeature.isFeatureMapType())
+ {
+ if (genFeature.isWrappedFeatureMapType())
+ {
+ sb.append(genFeature.getImportedEffectiveFeatureMapWrapperClass());
+ sb.append("(new ");
+ }
+ sb.append(getGenModel().getImportedName("org.eclipse.emf.ecore.util.BasicFeatureMap"));
+ sb.append("(this, ");
+ sb.append(getQualifiedFeatureID(genFeature));
+ sb.append(")");
+ if (genFeature.isWrappedFeatureMapType())
+ {
+ sb.append(")");
+ }
+ }
+ else if (getGenModel().isSuppressNotification())
+ {
+ sb.append(getGenModel().getImportedName("org.eclipse.emf.ecore.util.BasicInternalEList"));
+ sb.append("(");
+ sb.append(genFeature.getListItemType());
+ sb.append(".class)");
+ }
+ else if (genFeature.isEffectiveContains())
+ {
+ if (genFeature.isBidirectional())
+ {
+ GenFeature reverseFeature = genFeature.getReverse();
+ sb.append(getGenModel().getImportedName("org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList"));
+ sb.append(unsettable);
+ if (genFeature.isResolveProxies())
+ {
+ sb.append(".Resolving");
+ }
+ sb.append("(");
+ sb.append(genFeature.getListItemType());
+ sb.append(".class, this, ");
+ sb.append(getQualifiedFeatureID(genFeature));
+ sb.append(", ");
+ sb.append(reverseFeature.getGenClass().getQualifiedFeatureID(reverseFeature));
+ sb.append(")");
+ }
+ else
+ {
+ sb.append(getGenModel().getImportedName("org.eclipse.emf.ecore.util.EObjectContainmentEList"));
+ sb.append(unsettable);
+ if (genFeature.isResolveProxies())
+ {
+ sb.append(".Resolving");
+ }
+ sb.append("(");
+ sb.append(genFeature.getListItemType());
+ sb.append(".class, this, ");
+ sb.append(getQualifiedFeatureID(genFeature));
+ sb.append(")");
+ }
+ }
+ else if (genFeature.isReferenceType())
+ {
+ if (genFeature.isBidirectional())
+ {
+ GenFeature reverseFeature = genFeature.getReverse();
+ if (genFeature.isResolveProxies())
+ {
+ sb.append(getGenModel().getImportedName("org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList"));
+ }
+ else
+ {
+ sb.append(getGenModel().getImportedName("org.eclipse.emf.ecore.util.EObjectWithInverseEList"));
+ }
+ sb.append(unsettable);
+ if (reverseFeature.isListType())
+ {
+ sb.append(".ManyInverse");
+ }
+ sb.append("(");
+ sb.append(genFeature.getListItemType());
+ sb.append(".class, this, ");
+ sb.append(getQualifiedFeatureID(genFeature));
+ sb.append(", ");
+ sb.append(reverseFeature.getGenClass().getQualifiedFeatureID(reverseFeature));
+ sb.append(")");
+ }
+ else
+ {
+ if (genFeature.isResolveProxies())
+ {
+ sb.append(getGenModel().getImportedName("org.eclipse.emf.ecore.util.EObjectResolvingEList"));
+ }
+ else
+ {
+ sb.append(getGenModel().getImportedName("org.eclipse.emf.ecore.util.EObjectEList"));
+ }
+ sb.append(unsettable);
+ sb.append("(");
+ sb.append(genFeature.getListItemType());
+ sb.append(".class, this, ");
+ sb.append(getQualifiedFeatureID(genFeature));
+ sb.append(")");
+ }
+ }
+ else
+ { //datatype
+ if (genFeature.isUnique())
+ {
+ sb.append(getGenModel().getImportedName("org.eclipse.emf.ecore.util.EDataTypeUniqueEList"));
+ }
+ else
+ {
+ sb.append(getGenModel().getImportedName("org.eclipse.emf.ecore.util.EDataTypeEList"));
+ }
+ sb.append(unsettable);
+ sb.append("(");
+ sb.append(genFeature.getListItemType());
+ sb.append(".class, this, ");
+ sb.append(getQualifiedFeatureID(genFeature));
+ sb.append(")");
+ }
+ return sb.toString();
+ }
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/META-INF/MANIFEST.MF b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/META-INF/MANIFEST.MF
new file mode 100755
index 000000000..2d2459402
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.teneo.eclipselink.elistfactory;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore
+Export-Package: org.eclipse.emf.teneo.eclipselink.elistfactory,
+ org.eclipse.emf.teneo.eclipselink.elistfactory.internal.messages;x-internal:=true
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.html b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.html
new file mode 100755
index 000000000..5a279453c
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>About</title></head><body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.ini b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.ini
new file mode 100755
index 000000000..1d17e5539
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=modeling32.png
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+#welcomePage=$nl$/welcome.xml
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.properties b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.properties
new file mode 100755
index 000000000..bb46fb9c4
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/about.properties
@@ -0,0 +1,46 @@
+#/**
+# * <copyright>
+# *
+# * Copyright (c) 2008-2009 Oracle and Geensys.
+# * 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:
+# * Oracle and Geensys - initial API and implementation
+# *
+# * </copyright>
+# *
+# * $Id: about.properties,v 1.1 2009/01/23 21:51:41 mtaal Exp $
+# */
+
+# NLS_MESSAGEFORMAT_VAR
+
+# ==============================================================================
+# Do not change the properties between this line and the last line containing:
+# %%% END OF TRANSLATED PROPERTIES %%%
+# Instead, either redefine an existing property, or create a new property,
+# append it to the end of the file, and change the code to use the new name.
+# ==============================================================================
+
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+
+featureName=EMF Teneo EclipseLink EListFactory Plug-in
+
+featureText=EMF Teneo EclipseLink EListFactory Plug-in \n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+(c) Copyright (c) 2008-2009 Oracle and Geensys. All rights reserved.\n\
+\n\
+Visit http://www.eclipse.org/emf
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/build.properties b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/build.properties
new file mode 100755
index 000000000..1c0fa7193
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/build.properties
@@ -0,0 +1,19 @@
+bin.includes = epl-v10.html,\
+ modeling32.png,\
+ about.ini,\
+ about.properties,\
+ copyright.txt,\
+ about.html,\
+ build.properties,\
+ plugin.properties,\
+ META-INF/,\
+ .
+source.. = src/
+output.. = bin/
+src.includes = about.html,\
+ about.ini,\
+ about.properties,\
+ copyright.txt,\
+ epl-v10.html,\
+ license.html,\
+ modeling32.png
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/copyright.txt b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/copyright.txt
new file mode 100755
index 000000000..a37ef444a
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/copyright.txt
@@ -0,0 +1,8 @@
+Copyright (c) 2008-2009 Oracle and Geensys.
+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:
+ Oracle and Geensys - initial API and implementation
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/epl-v10.html b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/epl-v10.html
new file mode 100755
index 000000000..62b1f6f04
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/epl-v10.html
@@ -0,0 +1,320 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="ProgId" content="Word.Document">
+<meta name="Generator" content="Microsoft Word 9">
+<meta name="Originator" content="Microsoft Word 9">
+<link rel="File-List" href="http://www.eclipse.org/org/documents/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>3</o:TotalTime>
+ <o:Created>2004-03-05T23:03:00Z</o:Created>
+ <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+ <o:Pages>4</o:Pages>
+ <o:Words>1626</o:Words>
+ <o:Characters>9270</o:Characters>
+ <o:Lines>77</o:Lines>
+ <o:Paragraphs>18</o:Paragraphs>
+ <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+ <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+
+
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p
+ {margin-right:0in;
+ mso-margin-top-alt:auto;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+ {mso-style-name:"Balloon Text";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style></head>
+
+<body style="" lang="EN-US">
+
+<div class="Section1">
+
+<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p>
+
+<p><span style="font-size: 10pt;">"Contribution" means:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear="left">
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+changes to the Program, and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+additions to the Program;</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Contributor" means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style="font-size: 10pt;">"Licensed Patents " mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Program" means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style="font-size: 10pt;">"Recipient" means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p>
+
+<p><span style="font-size: 10pt;">A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+its license agreement:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style="color: blue;"> </span></span></p>
+
+<p><span style="font-size: 10pt;">When the Program is made available in source
+code form:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it must be made available under this Agreement; and </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style="font-size: 10pt;">Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor ("Commercial
+Contributor") hereby agrees to defend and indemnify every other
+Contributor ("Indemnified Contributor") against any losses, damages and
+costs (collectively "Losses") arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style="font-size: 10pt;">For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p>
+
+<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style="font-size: 10pt;">If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
+
+</div>
+
+</body></html> \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/license.html b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/license.html
new file mode 100755
index 000000000..d7b88e941
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/license.html
@@ -0,0 +1,319 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="ProgId" content="Word.Document">
+<meta name="Generator" content="Microsoft Word 9">
+<meta name="Originator" content="Microsoft Word 9">
+<link rel="File-List" href="http://www.eclipse.org/org/documents/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>3</o:TotalTime>
+ <o:Created>2004-03-05T23:03:00Z</o:Created>
+ <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+ <o:Pages>4</o:Pages>
+ <o:Words>1626</o:Words>
+ <o:Characters>9270</o:Characters>
+ <o:Lines>77</o:Lines>
+ <o:Paragraphs>18</o:Paragraphs>
+ <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+ <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+
+
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p
+ {margin-right:0in;
+ mso-margin-top-alt:auto;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+ {mso-style-name:"Balloon Text";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style></head>
+
+<body style="" lang="EN-US">
+
+<div class="Section1">
+
+<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p>
+
+<p><span style="font-size: 10pt;">"Contribution" means:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear="left">
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+changes to the Program, and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+additions to the Program;</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Contributor" means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style="font-size: 10pt;">"Licensed Patents " mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Program" means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style="font-size: 10pt;">"Recipient" means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p>
+
+<p><span style="font-size: 10pt;">A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+its license agreement:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style="color: blue;"> </span></span></p>
+
+<p><span style="font-size: 10pt;">When the Program is made available in source
+code form:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it must be made available under this Agreement; and </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style="font-size: 10pt;">Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor ("Commercial
+Contributor") hereby agrees to defend and indemnify every other
+Contributor ("Indemnified Contributor") against any losses, damages and
+costs (collectively "Losses") arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style="font-size: 10pt;">For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p>
+
+<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style="font-size: 10pt;">If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
+
+</div>
+
+</body></html> \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/modeling32.png b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/modeling32.png
new file mode 100755
index 000000000..6b08de2ad
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/modeling32.png
Binary files differ
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/plugin.properties b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/plugin.properties
new file mode 100755
index 000000000..829883263
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/plugin.properties
@@ -0,0 +1,14 @@
+# ====================================================================
+# To code developer:
+# Do NOT change the properties between this line and the
+# "%%% END OF TRANSLATED PROPERTIES %%%" line.
+# Make a new property name, append to the end of the file and change
+# the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = EMF Teneo EclipseLink EListFactory Plug-in
+providerName = Eclipse Modeling Project
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/BasicEListFactoryImpl.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/BasicEListFactoryImpl.java
new file mode 100755
index 000000000..5e597c040
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/BasicEListFactoryImpl.java
@@ -0,0 +1,532 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.elistfactory;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.BasicInternalEList;
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.teneo.eclipselink.elistfactory.internal.messages.Messages;
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * An extensible EList factory implementation.
+ * <p>
+ * There are overridable factory methods for all known types of {@link org.eclipse.emf.common.util.EList
+ * <em><b>EList</b></em>}, {@link org.eclipse.emf.common.util.EMap <em><b>EMap</b></em>}, and
+ * {@link org.eclipse.emf.ecore.util.FeatureMap <em><b>FeatureMap</b></em>}. They create instances of the
+ * implementations as per the EMF framework by default but clients may provide their own implemetations depending to
+ * their needs (e.g. database persistence).
+ * </p>
+ * <p>
+ * There are also some overriding points which are used to provide the EList factory with generator model dependent
+ * settings (e.g. suppress containment, suppress notifiation, feature map wrapper class). They yield the generator
+ * model's default values but clients can return their own their own settings if required.
+ * </p>
+ */
+public class BasicEListFactoryImpl implements EListFactory {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.extras.elistfactory.EListFactory#createEList(java.lang. String, java.lang.String,
+ * java.lang.String)
+ */
+ public <E> EList<E> createEList(final String ePackageNsURI, final String eOwnerClassName,
+ final String eStructuralFeatureName) throws ClassNotFoundException {
+ EObject eOwnerObject = createEOwnerObject(ePackageNsURI, eOwnerClassName);
+ return createEList(eOwnerObject, eStructuralFeatureName);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.extras.elistfactory.EListFactory#createEList(org.eclipse .emf.ecore.EObject,
+ * java.lang.String)
+ */
+ public <E> EList<E> createEList(final EObject eOwnerObject, final String eStructuralFeatureName)
+ throws ClassNotFoundException {
+ EStructuralFeature eStructuralFeature = getEStructuralFeature(eOwnerObject, eStructuralFeatureName);
+ return createEList(eOwnerObject, eStructuralFeature);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.extras.elistfactory.EListFactory#createEList(org.eclipse .emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EStructuralFeature)
+ */
+ @SuppressWarnings("unchecked")
+ public <E> EList<E> createEList(final EObject eOwnerObject, final EStructuralFeature eStructuralFeature)
+ throws ClassNotFoundException {
+ Assert.isNotNull(eOwnerObject);
+ Assert.isNotNull(eStructuralFeature);
+ Assert
+ .isLegal(
+ !eStructuralFeature.isVolatile() && EElementUtil.isListType(eStructuralFeature),
+ Messages.assert_featureMustBeNonVolatileListItemType);
+
+ EList<E> result = null;
+ int derivedReferenceID = EElementUtil.getDerivedStructuralFeatureID(eOwnerObject, eStructuralFeature);
+ if (EElementUtil.isMapType(eStructuralFeature)) {
+ result = (EList<E>) createEMap(eOwnerObject, eStructuralFeature);
+ } else if (EElementUtil.isFeatureMapType(eStructuralFeature)) {
+ result = (EList<E>) createFeatureMap(eOwnerObject, eStructuralFeature);
+ } else if (isSuppressNotification()) {
+ Class<? extends E> listItemClass = (Class<? extends E>) eStructuralFeature.getEType().getInstanceClass();
+
+ result = createBasicInternalEList(listItemClass);
+ } else if (EElementUtil.isContainment(eStructuralFeature) && !isSuppressContainment(eStructuralFeature)) {
+ Class<?> listItemClass = eStructuralFeature.getEType().getInstanceClass();
+
+ if (EElementUtil.isBidirectional(eStructuralFeature)) {
+ EReference eReference = (EReference) eStructuralFeature;
+ EReference eOppositeReference = eReference.getEOpposite();
+ int derivedOppositeReferenceID = EElementUtil.getDerivedStructuralFeatureID(eOwnerObject,
+ eOppositeReference);
+
+ if (EElementUtil.isResolveProxies(eStructuralFeature, isContainmentProxies(eStructuralFeature))) {
+ if (eStructuralFeature.isUnsettable()) {
+ result = createEObjectContainmentWithInverseEListUnsettableResolving(listItemClass,
+ eOwnerObject, derivedReferenceID, derivedOppositeReferenceID);
+ } else {
+ result = createEObjectContainmentWithInverseEListResolving(listItemClass, eOwnerObject,
+ derivedReferenceID, derivedOppositeReferenceID);
+ }
+ } // isResolveProxies()
+ else {
+ if (eStructuralFeature.isUnsettable()) {
+ result = createEObjectContainmentWithInverseEListUnsettable(listItemClass, eOwnerObject,
+ derivedReferenceID, derivedOppositeReferenceID);
+ } else {
+ result = createEObjectContainmentWithInverseEList(listItemClass, eOwnerObject,
+ derivedReferenceID, derivedOppositeReferenceID);
+ }
+ }
+ } // isBidirectional()
+ else {
+ if (EElementUtil.isResolveProxies(eStructuralFeature)) {
+ if (eStructuralFeature.isUnsettable()) {
+ result = createEObjectContainmentEListUnsettableResolving(listItemClass, eOwnerObject,
+ derivedReferenceID);
+ } else {
+ result = createEObjectContainmentEListResolving(listItemClass, eOwnerObject, derivedReferenceID);
+ }
+ } // isResolveProxies()
+ else {
+ if (eStructuralFeature.isUnsettable()) {
+ result = createEObjectContainmentEListUnsettable(listItemClass, eOwnerObject,
+ derivedReferenceID);
+ } else {
+ result = createEObjectContainmentEList(listItemClass, eOwnerObject, derivedReferenceID);
+ }
+ }
+ }
+ } else if (eStructuralFeature instanceof EReference) {
+ Class<?> listItemClass = eStructuralFeature.getEType().getInstanceClass();
+
+ if (EElementUtil.isBidirectional(eStructuralFeature)) {
+ EReference eReference = (EReference) eStructuralFeature;
+ EReference eOppositeReference = eReference.getEOpposite();
+ int derivedOppositeReferenceID = EElementUtil.getDerivedStructuralFeatureID(eOwnerObject,
+ eOppositeReference);
+
+ if (EElementUtil.isResolveProxies(eStructuralFeature)) {
+ if (eStructuralFeature.isUnsettable()) {
+ if (EElementUtil.isListType(eOppositeReference)) {
+ result = createEObjectWithInverseResolvingEListUnsettableManyInverse(listItemClass,
+ eOwnerObject, derivedReferenceID, derivedOppositeReferenceID);
+ } else {
+ result = createEObjectWithInverseResolvingEListUnsettable(listItemClass, eOwnerObject,
+ derivedReferenceID, derivedOppositeReferenceID);
+ }
+ } else {
+ if (EElementUtil.isListType(eOppositeReference)) {
+ result = createEObjectWithInverseResolvingEListManyInverse(listItemClass, eOwnerObject,
+ derivedReferenceID, derivedOppositeReferenceID);
+ } else {
+ result = createEObjectWithInverseResolvingEList(listItemClass, eOwnerObject,
+ derivedReferenceID, derivedOppositeReferenceID);
+ }
+ }
+ } // isResolveProxies()
+ else {
+ if (eStructuralFeature.isUnsettable()) {
+ if (EElementUtil.isListType(eOppositeReference)) {
+ result = createEObjectWithInverseEListUnsettableManyInverse(listItemClass, eOwnerObject,
+ derivedReferenceID, derivedOppositeReferenceID);
+ } else {
+ result = createEObjectWithInverseEListUnsettable(listItemClass, eOwnerObject,
+ derivedReferenceID, derivedOppositeReferenceID);
+ }
+ } else {
+ if (EElementUtil.isListType(eOppositeReference)) {
+ result = createEObjectWithInverseEListManyInverse(listItemClass, eOwnerObject,
+ derivedReferenceID, derivedOppositeReferenceID);
+ } else {
+ result = createEObjectWithInverseEList(listItemClass, eOwnerObject, derivedReferenceID,
+ derivedOppositeReferenceID);
+ }
+ }
+ }
+ } // isBidirectional()
+ else {
+ if (EElementUtil.isResolveProxies(eStructuralFeature)) {
+ if (eStructuralFeature.isUnsettable()) {
+ result = createEObjectResolvingEListUnsettable(listItemClass, eOwnerObject, derivedReferenceID);
+ } else {
+ result = createEObjectResolvingEList(listItemClass, eOwnerObject, derivedReferenceID);
+ }
+ } // isResolveProxies()
+ else {
+ if (eStructuralFeature.isUnsettable()) {
+ result = createEObjectEListUnsettable(listItemClass, eOwnerObject, derivedReferenceID);
+ } else {
+ result = createEObjectEList(listItemClass, eOwnerObject, derivedReferenceID);
+ }
+ }
+ }
+ } else if (eStructuralFeature instanceof EAttribute) {
+ Class<?> listItemClass = eStructuralFeature.getEType().getInstanceClass();
+
+ if (eStructuralFeature.isUnique()) {
+ if (eStructuralFeature.isUnsettable()) {
+ result = createEDataTypeUniqueEListUnsettable(listItemClass, eOwnerObject, derivedReferenceID);
+ } else {
+ result = createEDataTypeUniqueEList(listItemClass, eOwnerObject, derivedReferenceID);
+ }
+ } // isUnique()
+ else {
+ if (eStructuralFeature.isUnsettable()) {
+ result = createEDataTypeEListUnsettable(listItemClass, eOwnerObject, derivedReferenceID);
+ } else {
+ result = createEDataTypeEList(listItemClass, eOwnerObject, derivedReferenceID);
+ }
+ }
+ }
+
+ return result;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.extras.elistfactory.EListFactory#createEMap(java.lang.String , java.lang.String,
+ * java.lang.String)
+ */
+ public <K, V> EMap<K, V> createEMap(final String ePackageNsURI, final String eOwnerClassName,
+ final String eStructuralFeatureName) throws ClassNotFoundException {
+ EObject eOwnerObject = createEOwnerObject(ePackageNsURI, eOwnerClassName);
+ return createEMap(eOwnerObject, eStructuralFeatureName);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.extras.elistfactory.EListFactory#createEMap(org.eclipse .emf.ecore.EObject,
+ * java.lang.String)
+ */
+ public <K, V> EMap<K, V> createEMap(final EObject eOwnerObject, final String eStructuralFeatureName)
+ throws ClassNotFoundException {
+ EStructuralFeature eStructuralFeature = getEStructuralFeature(eOwnerObject, eStructuralFeatureName);
+ return createEMap(eOwnerObject, eStructuralFeature);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.extras.elistfactory.EListFactory#createEMap(org.eclipse .emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EStructuralFeature)
+ */
+ public <K, V> EMap<K, V> createEMap(final EObject eOwnerObject, final EStructuralFeature eStructuralFeature)
+ throws ClassNotFoundException {
+ Assert.isNotNull(eOwnerObject);
+ Assert.isNotNull(eStructuralFeature);
+ Assert
+ .isLegal(
+ !eStructuralFeature.isVolatile() && EElementUtil.isMapType(eStructuralFeature),
+ Messages.assert_featureMustBeNonVolatileMapEntryType);
+
+ EClass eMapEntryClass = (EClass) eStructuralFeature.getEType();
+ Class<?> mapEntryClass = eStructuralFeature.getEType().getInstanceClass();
+ int derivedReferenceID = EElementUtil.getDerivedStructuralFeatureID(eOwnerObject, eStructuralFeature);
+
+ EMap<K, V> result;
+ if (eStructuralFeature.isUnsettable()) {
+ result = createEcoreEMapUnsettable(eMapEntryClass, mapEntryClass, eOwnerObject, derivedReferenceID);
+ } else {
+ result = createEcoreEMap(eMapEntryClass, mapEntryClass, eOwnerObject, derivedReferenceID);
+ }
+ return result;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.extras.elistfactory.EListFactory#createFeatureMap(java. lang.String, java.lang.String,
+ * java.lang.String)
+ */
+ public FeatureMap createFeatureMap(final String ePackageNsURI, final String eOwnerClassName,
+ final String eStructuralFeatureName) throws ClassNotFoundException {
+ EObject eOwnerObject = createEOwnerObject(ePackageNsURI, eOwnerClassName);
+ return createFeatureMap(eOwnerObject, eStructuralFeatureName);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.extras.elistfactory.EListFactory#createFeatureMap(org.eclipse .emf.ecore.EObject,
+ * java.lang.String)
+ */
+ public FeatureMap createFeatureMap(final EObject eOwnerObject, final String eStructuralFeatureName)
+ throws ClassNotFoundException {
+ EStructuralFeature eStructuralFeature = getEStructuralFeature(eOwnerObject, eStructuralFeatureName);
+ return createFeatureMap(eOwnerObject, eStructuralFeature);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.extras.elistfactory.EListFactory#createFeatureMap(org.eclipse .emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EStructuralFeature)
+ */
+ public FeatureMap createFeatureMap(final EObject eOwnerObject, final EStructuralFeature eStructuralFeature)
+ throws ClassNotFoundException {
+ Assert.isNotNull(eOwnerObject);
+ Assert.isNotNull(eStructuralFeature);
+ Assert
+ .isLegal(!eStructuralFeature.isVolatile() && EElementUtil.isFeatureMapType(eStructuralFeature),
+ Messages.assert_featureMustBeNonVolatileFeatureMapEntryType);
+
+ int derivedReferenceID = EElementUtil.getDerivedStructuralFeatureID(eOwnerObject, eStructuralFeature);
+
+ FeatureMap featureMap = createBasicFeatureMap(eOwnerObject, derivedReferenceID);
+ return createWrappedFeatureMap(featureMap);
+ }
+
+ protected boolean isContainmentProxies(final EStructuralFeature eStructuralFeature) {
+ return false;
+ }
+
+ protected boolean isSuppressContainment(final EStructuralFeature eStructuralFeature) {
+ return false;
+ }
+
+ protected boolean isSuppressNotification() {
+ return false;
+ }
+
+ protected FeatureMap createWrappedFeatureMap(final FeatureMap featureMap) {
+ return featureMap;
+ }
+
+ protected <E> BasicInternalEList<E> createBasicInternalEList(final Class<? extends E> listItemClass) {
+ return new BasicInternalEList<E>(listItemClass);
+ }
+
+ protected <E> EObjectEList<E> createEObjectEList(final Class<?> listItemClass, final EObject eOwnerObject,
+ final int eReferenceID) {
+ return new EObjectEList<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID);
+ }
+
+ protected <E> EObjectEList.Unsettable<E> createEObjectEListUnsettable(final Class<?> listItemClass,
+ final EObject eOwnerObject, final int eReferenceID) {
+ return new EObjectEList.Unsettable<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID);
+ }
+
+ protected <E> EObjectResolvingEList<E> createEObjectResolvingEList(final Class<?> listItemClass,
+ final EObject eOwnerObject, final int eReferenceID) {
+ return new EObjectResolvingEList<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID);
+ }
+
+ protected <E> EObjectResolvingEList.Unsettable<E> createEObjectResolvingEListUnsettable(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID) {
+ return new EObjectResolvingEList.Unsettable<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID);
+ }
+
+ protected <E> EObjectWithInverseEList<E> createEObjectWithInverseEList(final Class<?> listItemClass,
+ final EObject eOwnerObject, final int eReferenceID, final int eOppositeReferenceID) {
+ return new EObjectWithInverseEList<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID,
+ eOppositeReferenceID);
+ }
+
+ protected <E> EObjectWithInverseEList.Unsettable<E> createEObjectWithInverseEListUnsettable(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID,
+ final int eOppositeReferenceID) {
+ return new EObjectWithInverseEList.Unsettable<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID,
+ eOppositeReferenceID);
+ }
+
+ protected <E> EObjectWithInverseEList.ManyInverse<E> createEObjectWithInverseEListManyInverse(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID,
+ final int eOppositeReferenceID) {
+ return new EObjectWithInverseEList.ManyInverse<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID,
+ eOppositeReferenceID);
+ }
+
+ protected <E> EObjectWithInverseEList.Unsettable.ManyInverse<E> createEObjectWithInverseEListUnsettableManyInverse(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID,
+ final int eOppositeReferenceID) {
+ return new EObjectWithInverseEList.Unsettable.ManyInverse<E>(listItemClass, (InternalEObject) eOwnerObject,
+ eReferenceID, eOppositeReferenceID);
+ }
+
+ protected <E> EObjectWithInverseResolvingEList<E> createEObjectWithInverseResolvingEList(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID,
+ final int eOppositeReferenceID) {
+ return new EObjectWithInverseResolvingEList<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID,
+ eOppositeReferenceID);
+ }
+
+ protected <E> EObjectWithInverseResolvingEList.Unsettable<E> createEObjectWithInverseResolvingEListUnsettable(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID,
+ final int eOppositeReferenceID) {
+ return new EObjectWithInverseResolvingEList.Unsettable<E>(listItemClass, (InternalEObject) eOwnerObject,
+ eReferenceID, eOppositeReferenceID);
+ }
+
+ protected <E> EObjectWithInverseResolvingEList.ManyInverse<E> createEObjectWithInverseResolvingEListManyInverse(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID,
+ final int eOppositeReferenceID) {
+
+ return new EObjectWithInverseResolvingEList.ManyInverse<E>(listItemClass, (InternalEObject) eOwnerObject,
+ eReferenceID, eOppositeReferenceID);
+ }
+
+ protected <E> EObjectWithInverseResolvingEList.Unsettable.ManyInverse<E> createEObjectWithInverseResolvingEListUnsettableManyInverse(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID,
+ final int eOppositeReferenceID) {
+ return new EObjectWithInverseResolvingEList.Unsettable.ManyInverse<E>(listItemClass,
+ (InternalEObject) eOwnerObject, eReferenceID, eOppositeReferenceID);
+ }
+
+ protected <E> EObjectContainmentEList<E> createEObjectContainmentEList(final Class<?> listItemClass,
+ final EObject eOwnerObject, final int eReferenceID) {
+
+ return new EObjectContainmentEList<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID);
+ }
+
+ protected <E> EObjectContainmentEList.Unsettable<E> createEObjectContainmentEListUnsettable(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID) {
+ return new EObjectContainmentEList.Unsettable<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID);
+ }
+
+ protected <E> EObjectContainmentEList.Resolving<E> createEObjectContainmentEListResolving(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID) {
+ return new EObjectContainmentEList.Resolving<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID);
+ }
+
+ protected <E> EObjectContainmentEList.Unsettable.Resolving<E> createEObjectContainmentEListUnsettableResolving(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID) {
+ return new EObjectContainmentEList.Unsettable.Resolving<E>(listItemClass, (InternalEObject) eOwnerObject,
+ eReferenceID);
+ }
+
+ protected <E> EObjectContainmentWithInverseEList<E> createEObjectContainmentWithInverseEList(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID,
+ final int eOppositeReferenceID) {
+ return new EObjectContainmentWithInverseEList<E>(listItemClass, (InternalEObject) eOwnerObject, eReferenceID,
+ eOppositeReferenceID);
+ }
+
+ protected <E> EObjectContainmentWithInverseEList.Unsettable<E> createEObjectContainmentWithInverseEListUnsettable(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID,
+ final int eOppositeReferenceID) {
+ return new EObjectContainmentWithInverseEList.Unsettable<E>(listItemClass, (InternalEObject) eOwnerObject,
+ eReferenceID, eOppositeReferenceID);
+ }
+
+ protected <E> EObjectContainmentWithInverseEList.Resolving<E> createEObjectContainmentWithInverseEListResolving(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID,
+ final int eOppositeReferenceID) {
+ return new EObjectContainmentWithInverseEList.Resolving<E>(listItemClass, (InternalEObject) eOwnerObject,
+ eReferenceID, eOppositeReferenceID);
+ }
+
+ protected <E> EObjectContainmentWithInverseEList.Unsettable.Resolving<E> createEObjectContainmentWithInverseEListUnsettableResolving(
+ final Class<?> listItemClass, final EObject eOwnerObject, final int eReferenceID,
+ final int eOppositeReferenceID) {
+ return new EObjectContainmentWithInverseEList.Unsettable.Resolving<E>(listItemClass,
+ (InternalEObject) eOwnerObject, eReferenceID, eOppositeReferenceID);
+ }
+
+ protected <E> EDataTypeEList<E> createEDataTypeEList(final Class<?> listItemClass, final EObject eOwnerObject,
+ final int eAttributeID) {
+ return new EDataTypeEList<E>(listItemClass, (InternalEObject) eOwnerObject, eAttributeID);
+ }
+
+ protected <E> EDataTypeEList.Unsettable<E> createEDataTypeEListUnsettable(final Class<?> listItemClass,
+ final EObject eOwnerObject, final int eAttributeID) {
+ return new EDataTypeEList.Unsettable<E>(listItemClass, (InternalEObject) eOwnerObject, eAttributeID);
+ }
+
+ protected <E> EDataTypeUniqueEList<E> createEDataTypeUniqueEList(final Class<?> listItemClass,
+ final EObject eOwnerObject, final int eAttributeID) {
+ return new EDataTypeUniqueEList<E>(listItemClass, (InternalEObject) eOwnerObject, eAttributeID);
+ }
+
+ protected <E> EDataTypeUniqueEList.Unsettable<E> createEDataTypeUniqueEListUnsettable(final Class<?> listItemClass,
+ final EObject eOwnerObject, final int eAttributeID) {
+ return new EDataTypeUniqueEList.Unsettable<E>(listItemClass, (InternalEObject) eOwnerObject, eAttributeID);
+ }
+
+ protected <K, V> EcoreEMap<K, V> createEcoreEMap(final EClass eMapEntryClass, final Class<?> mapEntryClass,
+ final EObject eOwnerObject, final int eReferenceID) {
+ return new EcoreEMap<K, V>(eMapEntryClass, mapEntryClass, (InternalEObject) eOwnerObject, eReferenceID);
+ }
+
+ protected <K, V> EcoreEMap.Unsettable<K, V> createEcoreEMapUnsettable(final EClass eMapEntryClass,
+ final Class<?> mapEntryClass, final EObject eOwnerObject, final int eReferenceID) {
+ return new EcoreEMap.Unsettable<K, V>(eMapEntryClass, mapEntryClass, (InternalEObject) eOwnerObject,
+ eReferenceID);
+ }
+
+ protected BasicFeatureMap createBasicFeatureMap(final EObject eOwnerObject, final int eReferenceID) {
+ return new BasicFeatureMap((InternalEObject) eOwnerObject, eReferenceID);
+ }
+
+ private EObject createEOwnerObject(final String ePackageNsURI, final String eOwnerClassName) {
+ EPackage ePackage = EElementUtil.findEPackage(ePackageNsURI);
+ EClass eOwnerClass = EElementUtil.findEClass(ePackage, eOwnerClassName);
+ EFactory eFactory = ePackage.getEFactoryInstance();
+ return eFactory.create(eOwnerClass);
+ }
+
+ private EStructuralFeature getEStructuralFeature(final EObject eOwnerObject, final String eStructuralFeatureName) {
+ Assert.isNotNull(eOwnerObject);
+ Assert.isLegal(eStructuralFeatureName != null && eStructuralFeatureName.trim().length() > 0);
+
+ EStructuralFeature eStructuralFeature = eOwnerObject.eClass().getEStructuralFeature(eStructuralFeatureName);
+ Assert.isTrue(eStructuralFeature != null, NLS.bind(
+ Messages.assert_couldNotFindFeature$0InEClass$1, eStructuralFeatureName, eOwnerObject
+ .eClass().getName()));
+ return eStructuralFeature;
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/EElementUtil.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/EElementUtil.java
new file mode 100755
index 000000000..6a49f2d37
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/EElementUtil.java
@@ -0,0 +1,242 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.elistfactory;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.teneo.eclipselink.elistfactory.internal.messages.Messages;
+import org.eclipse.osgi.util.NLS;
+
+public final class EElementUtil {
+
+ private EElementUtil() {
+ }
+
+ public static boolean isListType(final EStructuralFeature eStructuralFeature) {
+ return eStructuralFeature.isMany() || isFeatureMapEntryType(eStructuralFeature);
+ }
+
+ public static boolean isMapType(final EStructuralFeature eStructuralFeature) {
+ return !isContainer(eStructuralFeature) && eStructuralFeature.isMany()
+ && (eStructuralFeature.getEType() instanceof EClass) && isJavaUtilMapEntryType(eStructuralFeature);
+ }
+
+ public static boolean isFeatureMapType(final EStructuralFeature eStructuralFeature) {
+ return isFeatureMapEntryType(eStructuralFeature);
+ }
+
+ public static boolean isJavaUtilMapEntryType(final EStructuralFeature eStructuralFeature) {
+ String instanceClassName = eStructuralFeature.getEType().getInstanceClassName();
+ return "java.util.Map.Entry".equals(instanceClassName) || "java.util.Map$Entry".equals(instanceClassName); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public static boolean isFeatureMapEntryType(final EStructuralFeature eStructuralFeature) {
+ String instanceClassName = eStructuralFeature.getEType().getInstanceClassName();
+ return "org.eclipse.emf.ecore.util.FeatureMap.Entry".equals(instanceClassName) //$NON-NLS-1$
+ || "org.eclipse.emf.ecore.util.FeatureMap$Entry".equals(instanceClassName); //$NON-NLS-1$
+ }
+
+ public static boolean isContainer(final EStructuralFeature eStructuralFeature) {
+ boolean result = false;
+ if (eStructuralFeature instanceof EReference) {
+ EReference eReference = (EReference) eStructuralFeature;
+ EReference eOppositeReference = eReference.getEOpposite();
+ result = (eOppositeReference != null) && eOppositeReference.isContainment();
+ }
+ return result;
+ }
+
+ public static boolean isContainment(final EStructuralFeature eStructuralFeature) {
+ boolean result = false;
+ if (eStructuralFeature instanceof EReference) {
+ EReference eReference = (EReference) eStructuralFeature;
+ result = eReference.isContainment();
+ }
+ return result;
+ }
+
+ public static boolean isBidirectional(final EStructuralFeature eStructuralFeature) {
+ boolean result = false;
+ if (eStructuralFeature instanceof EReference) {
+ EReference eReference = (EReference) eStructuralFeature;
+ result = eReference.getEOpposite() != null;
+ }
+ return result;
+ }
+
+ public static boolean isResolveProxies(final EStructuralFeature eStructuralFeature) {
+ return isResolveProxies(eStructuralFeature, false);
+ }
+
+ public static boolean isResolveProxies(final EStructuralFeature eStructuralFeature, final boolean containmentProxies) {
+ boolean result = false;
+ if (eStructuralFeature instanceof EReference) {
+ EReference eReference = (EReference) eStructuralFeature;
+ result = (!isContainer(eReference) && !isContainment(eReference) || containmentProxies)
+ && eReference.isResolveProxies();
+ }
+ return result;
+ }
+
+ public static String getQualifiedListItemTypeName(final EStructuralFeature eStructuralFeature) {
+ String result = ""; //$NON-NLS-1$
+ EClassifier eType = eStructuralFeature.getEType();
+ if (eType instanceof EClass) {
+ if (eType.getInstanceClassName() != null) {
+ result = eType.getInstanceClassName();
+ } else {
+ result = getQualifiedInterfaceName(eType);
+ }
+ }
+
+ if (eType instanceof EEnum) {
+ return getQualifiedInterfaceName(eType);
+ }
+
+ if (eType instanceof EDataType) {
+ if (isPrimitiveType(eType)) {
+ result = getQualifiedPrimitiveObjectTypeName(eType);
+ } else if ("org.eclipse.emf.common.util.Enumerator".equals(eType.getInstanceClassName())) { //$NON-NLS-1$
+ EDataType eBaseType = ExtendedMetaDataUtil.getExtendedMetaData(eType).getBaseType((EDataType) eType);
+ if (eBaseType instanceof EEnum) {
+ result = getQualifiedInterfaceName(eBaseType);
+ }
+ } else {
+ if (eType.getInstanceClassName() != null) {
+ result = eType.getInstanceClassName();
+ }
+ }
+ }
+ return result;
+
+ }
+
+ public static int getDerivedStructuralFeatureID(final EObject eOwnerObject,
+ final EStructuralFeature eStructuralFeature) throws ClassNotFoundException {
+ int featureID = eStructuralFeature.getFeatureID();
+ Class<?> containingClass = eStructuralFeature.getEContainingClass().getInstanceClass();
+ return ((InternalEObject) eOwnerObject).eDerivedStructuralFeatureID(featureID, containingClass);
+ }
+
+ public static String getQualifiedInterfacePackageName(final EClassifier eClassifier) {
+ Class<? extends EPackage> ePackageClass = eClassifier.getEPackage().getClass();
+ Class<?> ePackageInterface = null;
+ for (int i = 0; (i < ePackageClass.getInterfaces().length) && (ePackageInterface == null); i++) {
+ String interfaceName = ePackageClass.getInterfaces()[i].getSimpleName();
+ if (ePackageClass.getSimpleName().startsWith(interfaceName)) {
+ ePackageInterface = ePackageClass.getInterfaces()[i];
+ }
+ }
+ Assert.isTrue(ePackageInterface != null, NLS.bind(
+ Messages.assert_couldNotFindEPackageInterfaceOfEPackageClass$0, ePackageClass.getName()));
+ return ePackageInterface.getPackage().getName();
+ }
+
+ public static String getQualifiedClassPackageName(final EClassifier eClassifier) {
+ String eQualifiedPackageClassName = eClassifier.getEPackage().getClass().getName();
+ return getPackageName(eQualifiedPackageClassName);
+ }
+
+ public static String getQualifiedInterfaceName(final EClassifier eClassifier) {
+ return getQualifiedInterfacePackageName(eClassifier) + "." + getSimpleInterfaceName(eClassifier); //$NON-NLS-1$
+ }
+
+ public static String getQualifiedClassName(final EClassifier eClassifier) {
+
+ return getQualifiedClassPackageName(eClassifier) + "." + getSimpleClassName(eClassifier); //$NON-NLS-1$
+ }
+
+ public static String getSimpleInterfaceName(final EClassifier eClassifier) {
+ return eClassifier.getName();
+ }
+
+ public static String getSimpleClassName(final EClassifier eClassifier) {
+
+ return getSimpleInterfaceName(eClassifier) + "Impl"; //$NON-NLS-1$
+ }
+
+ public static String getPackageName(String qualifiedTypeName) {
+ return qualifiedTypeName.substring(0, qualifiedTypeName.lastIndexOf(".")); //$NON-NLS-1$
+ }
+
+ public static boolean isPrimitiveType(final EClassifier eClassifier) {
+ boolean result = false;
+ Class<?> instanceClass = eClassifier.getInstanceClass();
+ if (instanceClass != null) {
+ result = instanceClass.isPrimitive();
+ }
+ return result;
+ }
+
+ public static String getQualifiedPrimitiveObjectTypeName(final EClassifier eClassifier) {
+ Class<?> instanceClass = eClassifier.getInstanceClass();
+ if (instanceClass == java.lang.Boolean.TYPE) {
+ return "java.lang.Boolean"; //$NON-NLS-1$
+ }
+ if (instanceClass == java.lang.Byte.TYPE) {
+ return "java.lang.Byte"; //$NON-NLS-1$
+ }
+ if (instanceClass == java.lang.Character.TYPE) {
+ return "java.lang.Character"; //$NON-NLS-1$
+ }
+ if (instanceClass == java.lang.Double.TYPE) {
+ return "java.lang.Double"; //$NON-NLS-1$
+ }
+ if (instanceClass == java.lang.Float.TYPE) {
+ return "java.lang.Float"; //$NON-NLS-1$
+ }
+ if (instanceClass == java.lang.Integer.TYPE) {
+ return "java.lang.Integer"; //$NON-NLS-1$
+ }
+ if (instanceClass == java.lang.Long.TYPE) {
+ return "java.lang.Long"; //$NON-NLS-1$
+ }
+ if (instanceClass == java.lang.Short.TYPE) {
+ return "java.lang.Short"; //$NON-NLS-1$
+ }
+ return null;
+ }
+
+ public static EPackage findEPackage(final String ePackageNsURI) {
+ Assert.isLegal(ePackageNsURI != null && ePackageNsURI.trim().length() > 0);
+
+ EPackage ePackage = EPackage.Registry.INSTANCE.getEPackage(ePackageNsURI);
+ Assert.isTrue(ePackage != null, NLS
+ .bind(Messages.assert_couldNotFindEPackageForNamespaceURI$0, ePackageNsURI));
+ return ePackage;
+ }
+
+ public static EClass findEClass(final EPackage ePackage, final Class<?> javaClass) {
+ return findEClass(ePackage, javaClass.getSimpleName().replaceFirst("Impl$", "")); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public static EClass findEClass(final EPackage ePackage, final String eClassName) {
+ Assert.isNotNull(ePackage);
+ Assert.isLegal(eClassName != null && eClassName.trim().length() > 0);
+
+ EClassifier eOwnerClassifier = ePackage.getEClassifier(eClassName);
+ Assert.isTrue(eOwnerClassifier != null, NLS.bind(
+ Messages.assert_couldNotFindEClassifier$0InEPackage$1, eOwnerClassifier, ePackage
+ .getName()));
+ Assert.isTrue(eOwnerClassifier instanceof EClass, NLS.bind(
+ Messages.assert_typeOfEClassifier$0InEPackage$1IsNotEClass, eOwnerClassifier.getName(),
+ ePackage.getName()));
+ return (EClass) eOwnerClassifier;
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/EListFactory.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/EListFactory.java
new file mode 100755
index 000000000..16eebc35f
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/EListFactory.java
@@ -0,0 +1,295 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.elistfactory;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+/**
+ * A factory for creating instances of {@link org.eclipse.emf.common.util.EList <em><b>EList</b></em>},
+ * {@link org.eclipse.emf.common.util.EMap <em><b>EMap</b></em>}, and {@link org.eclipse.emf.ecore.util.FeatureMap
+ * <em><b>FeatureMap</b></em>} for a given owner object and structural feature.
+ * <p>
+ * It figures out the appropriate {@link org.eclipse.emf.common.util.EList <em>EList</em>} implementation by analyzing
+ * the Ecore properties of the underlying structural feature. The resulting {@link org.eclipse.emf.common.util.EList
+ * <em>EList</em>} instance is of the very same type as when it is created and retrieved using the structural feature's
+ * get accessor method on its owner class.
+ * </p>
+ */
+public interface EListFactory {
+
+ /**
+ * Temporary singleton instance of the EList factory.
+ * <p>
+ * Should be replaced by a generated subclass of
+ * {@link org.eclipse.emf.teneo.eclipselink.elistfactory.BasicEListFactoryImpl
+ * <em><b>BasicEListFactoryImpl</b></em>} which could be nested into the model factory class and made available by
+ * an additional get accessor on the model factory interface. This ensures that any generator model settings the
+ * EList factory's behavior depends on (e.g. suppress containment, suppress notifiation, feature map wrapper class)
+ * are automatically taken into account and don't need to be repeated an kept up to date in a manually created
+ * subclass of the EList factory.
+ * </p>
+ */
+ public static final EListFactory eINSTANCE = new BasicEListFactoryImpl();
+
+ /**
+ * Creates a new {@link org.eclipse.emf.common.util.EList <em><b>EList</b></em>} instance, of the appropriate type,
+ * and returns it.
+ * <p>
+ * It creates a new instance of the specified owner class, and then creates an
+ * {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance according to the Ecore properties of that owner
+ * class instance and the specified structural feature. Depending on the situation, the resulting
+ * {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance may actually be an
+ * {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} or {@link org.eclipse.emf.ecore.util.FeatureMap
+ * <em>FeatureMap</em>} instance. The owner of the resulting {@link org.eclipse.emf.common.util.EList
+ * <em>EList</em>} instance is the newly created owner class instance.
+ * </p>
+ * <p>
+ * This method is useful in cases where an {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance and its
+ * owner object are to be created at once. The new owner object can be retrieved by calling
+ * {@link org.eclipse.emf.ecore.util.EcoreEList#getEObject <code>getEObject()</code>} on the returned
+ * {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance.
+ * </p>
+ *
+ * @param ePackageNsURI
+ * namespace URI of the Ecore package containing <em>eQualifiedOwnerClassName</em>.
+ * @param eOwnerClassName
+ * simple class name of the <em>eStructuralFeatureName</em>'s and the resulting
+ * {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance's owner object.
+ * @param eStructuralFeatureName
+ * name of the structural feature for which the {@link org.eclipse.emf.common.util.EList <em>EList</em>}
+ * instance is to be created.
+ * @return the newly created {@link org.eclipse.emf.common.util.EList <em><b>EList</b></em>} instance.
+ * @throws ClassNotFoundException
+ */
+ <E> EList<E> createEList(final String ePackageNsURI, final String eOwnerClassName,
+ final String eStructuralFeatureName) throws ClassNotFoundException;
+
+ /**
+ * Creates a new {@link org.eclipse.emf.common.util.EList <em><b>EList</b></em>} instance, of the appropriate type,
+ * and returns it.
+ * <p>
+ * The {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance is created according to the Ecore
+ * properties of the specified owner object and structural feature. Depending on the situation, the resulting
+ * {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance may actually be an
+ * {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} or {@link org.eclipse.emf.ecore.util.FeatureMap
+ * <em>FeatureMap</em>} instance. The owner of the resulting {@link org.eclipse.emf.common.util.EList
+ * <em>EList</em>} instance is the specified owner object.
+ * </p>
+ * <p>
+ * This method is useful in cases where an {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance for an
+ * already existing owner object is to be created.
+ * </p>
+ *
+ * @param eOwnerObject
+ * owner object of <em>eStructuralFeatureName</em> as well as the resulting
+ * {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance.
+ * @param eStructuralFeatureName
+ * name of the structural feature for which the {@link org.eclipse.emf.common.util.EList <em>EList</em>}
+ * instance is to be created.
+ * @return the newly created {@link org.eclipse.emf.common.util.EList <em><b>EList</b></em>} instance.
+ * @throws ClassNotFoundException
+ */
+ <E> EList<E> createEList(final EObject eOwnerObject, final String eStructuralFeatureName)
+ throws ClassNotFoundException;
+
+ /**
+ * Creates a new {@link org.eclipse.emf.common.util.EList <em><b>EList</b></em>} instance, of the appropriate type,
+ * and returns it.
+ * <p>
+ * The {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance is created according to the Ecore
+ * properties of the specified owner object and structural feature. Depending on the situation, the resulting
+ * {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance may actually be an
+ * {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} or {@link org.eclipse.emf.ecore.util.FeatureMap
+ * <em>FeatureMap</em>} instance. The owner of the resulting {@link org.eclipse.emf.common.util.EList
+ * <em>EList</em>} instance is the specified owner object.
+ * </p>
+ * <p>
+ * This method is useful in cases where an {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance for an
+ * already existing owner object is to be created.
+ * </p>
+ *
+ * @param eOwnerObject
+ * owner object of <em>eStructuralFeature</em> as well as the resulting
+ * {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance.
+ * @param eStructuralFeature
+ * structural feature for which the {@link org.eclipse.emf.common.util.EList <em>EList</em>} instance is
+ * to be created.
+ * @return the newly created {@link org.eclipse.emf.common.util.EList <em><b>EList</b></em>} instance.
+ * @throws ClassNotFoundException
+ */
+ <E> EList<E> createEList(final EObject eOwnerObject, final EStructuralFeature eStructuralFeature)
+ throws ClassNotFoundException;
+
+ /**
+ * Creates a new {@link org.eclipse.emf.common.util.EMap <em><b>EMap</b></em>} instance, of the appropriate type,
+ * and returns it.
+ * <p>
+ * It creates a new instance of the specified owner class, and then creates an
+ * {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance according to the Ecore properties of that owner
+ * class instance and the specified structural feature. The owner of the resulting
+ * {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance is the newly created owner class instance.
+ * </p>
+ * <p>
+ * This method is useful in cases where an {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance and its
+ * owner object are to be created at once. The new owner object can be retrieved by calling
+ * {@link org.eclipse.emf.ecore.util.EcoreEMap#getEObject <code>getEObject()</code>} on the returned
+ * {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance.
+ * </p>
+ *
+ * @param ePackageNsURI
+ * namespace URI of the Ecore package containing <em>eQualifiedOwnerClassName</em>.
+ * @param eOwnerClassName
+ * simple class name of the <em>eStructuralFeatureName</em>'s and the resulting
+ * {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance's owner object.
+ * @param eStructuralFeatureName
+ * name of the structural feature for which the {@link org.eclipse.emf.common.util.EMap <em>EMap</em>}
+ * instance is to be created.
+ * @return the newly created {@link org.eclipse.emf.common.util.EMap <em><b>EMap</b></em>} instance.
+ * @throws ClassNotFoundException
+ */
+ <K, V> EMap<K, V> createEMap(final String ePackageNsURI, final String eOwnerClassName,
+ final String eStructuralFeatureName) throws ClassNotFoundException;
+
+ /**
+ * Creates a new {@link org.eclipse.emf.common.util.EMap <em><b>EMap</b></em>} instance, of the appropriate type,
+ * and returns it.
+ * <p>
+ * The {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance is created according to the Ecore properties
+ * of the specified owner object and structural feature. The owner of the resulting
+ * {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance is the specified owner object.
+ * </p>
+ * <p>
+ * This method is useful in cases where an {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance for an
+ * already existing owner object is to be created.
+ * </p>
+ *
+ * @param eOwnerObject
+ * owner object of <em>eStructuralFeatureName</em> as well as the resulting
+ * {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance.
+ * @param eStructuralFeatureName
+ * name of the structural feature for which the {@link org.eclipse.emf.common.util.EMap <em>EMap</em>}
+ * instance is to be created.
+ * @return the newly created {@link org.eclipse.emf.common.util.EMap <em><b>EMap</b></em>} instance.
+ * @throws ClassNotFoundException
+ */
+ <K, V> EMap<K, V> createEMap(final EObject eOwnerObject, final String eStructuralFeatureName)
+ throws ClassNotFoundException;
+
+ /**
+ * Creates a new {@link org.eclipse.emf.common.util.EMap <em><b>EMap</b></em>} instance, of the appropriate type,
+ * and returns it.
+ * <p>
+ * The {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance is created according to the Ecore properties
+ * of the specified owner object and structural feature. The owner of the resulting
+ * {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance is the specified owner object.
+ * </p>
+ * <p>
+ * This method is useful in cases where an {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance for an
+ * already existing owner object is to be created.
+ * </p>
+ *
+ * @param eOwnerObject
+ * owner object of <em>eStructuralFeature</em> as well as the resulting
+ * {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance.
+ * @param eStructuralFeature
+ * structural feature for which the {@link org.eclipse.emf.common.util.EMap <em>EMap</em>} instance is to
+ * be created.
+ * @return the newly created {@link org.eclipse.emf.common.util.EMap <em><b>EMap</b></em>} instance.
+ * @throws ClassNotFoundException
+ */
+ <K, V> EMap<K, V> createEMap(final EObject eOwnerObject, final EStructuralFeature eStructuralFeature)
+ throws ClassNotFoundException;
+
+ /**
+ * Creates a new {@link org.eclipse.emf.ecore.util.FeatureMap <em><b>FeatureMap</b></em>} instance, of the
+ * appropriate type, and returns it.
+ * <p>
+ * It creates a new instance of the specified owner class, and then creates an
+ * {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance according to the Ecore properties of
+ * that owner class instance and the specified structural feature. The owner of the resulting
+ * {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance is the newly created owner class
+ * instance.
+ * </p>
+ * <p>
+ * This method is useful in cases where a {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance
+ * and its owner object are to be created at once. The new owner object can be retrieved by calling
+ * {@link org.eclipse.emf.ecore.util.BasicFeatureMap#getEObject <code>getEObject()</code>} on the returned
+ * {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance.
+ * </p>
+ *
+ * @param ePackageNsURI
+ * namespace URI of the Ecore package containing <em>eQualifiedOwnerClassName</em>.
+ * @param eOwnerClassName
+ * simple class name of the <em>eStructuralFeatureName</em>'s and the resulting
+ * {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance's owner object.
+ * @param eStructuralFeatureName
+ * name of the structural feature for which the {@link org.eclipse.emf.ecore.util.FeatureMap
+ * <em>FeatureMap</em>} instance is to be created.
+ * @return the newly created {@link org.eclipse.emf.ecore.util.FeatureMap <em><b>FeatureMap</b></em>} instance.
+ * @throws ClassNotFoundException
+ */
+ FeatureMap createFeatureMap(final String ePackageNsURI, final String eOwnerClassName,
+ final String eStructuralFeatureName) throws ClassNotFoundException;
+
+ /**
+ * Creates a new {@link org.eclipse.emf.ecore.util.FeatureMap <em><b>FeatureMap</b></em>} instance, of the
+ * appropriate type, and returns it.
+ * <p>
+ * The {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance is created according to the Ecore
+ * properties of the specified owner object and structural feature. The owner of the resulting
+ * {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance is the specified owner object.
+ * </p>
+ * <p>
+ * This method is useful in cases where a {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance
+ * for an already existing owner object is to be created.
+ * </p>
+ *
+ * @param eOwnerObject
+ * owner object of <em>eStructuralFeatureName</em> as well as the resulting
+ * {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance.
+ * @param eStructuralFeatureName
+ * name of the structural feature for which the {@link org.eclipse.emf.ecore.util.FeatureMap
+ * <em>FeatureMap</em>} instance is to be created.
+ * @return the newly created {@link org.eclipse.emf.ecore.util.FeatureMap <em><b>FeatureMap</b></em>} instance.
+ * @throws ClassNotFoundException
+ */
+ FeatureMap createFeatureMap(final EObject eOwnerObject, final String eStructuralFeatureName)
+ throws ClassNotFoundException;
+
+ /**
+ * Creates a new {@link org.eclipse.emf.ecore.util.FeatureMap <em><b>FeatureMap</b></em>} instance, of the
+ * appropriate type, and returns it.
+ * <p>
+ * The {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance is created according to the Ecore
+ * properties of the specified owner object and structural feature. The owner of the resulting
+ * {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance is the specified owner object.
+ * </p>
+ * <p>
+ * This method is useful in cases where an {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>}
+ * instance for an already existing owner object is to be created.
+ * </p>
+ *
+ * @param eOwnerObject
+ * owner object of <em>eStructuralFeature</em> as well as the resulting
+ * {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>} instance.
+ * @param eStructuralFeature
+ * structural feature for which the {@link org.eclipse.emf.ecore.util.FeatureMap <em>FeatureMap</em>}
+ * instance is to be created.
+ * @return the newly created {@link org.eclipse.emf.ecore.util.FeatureMap <em><b>FeatureMap</b></em>} instance.
+ * @throws ClassNotFoundException
+ */
+ FeatureMap createFeatureMap(final EObject eOwnerObject, final EStructuralFeature eStructuralFeature)
+ throws ClassNotFoundException;
+} \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/ExtendedMetaDataUtil.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/ExtendedMetaDataUtil.java
new file mode 100755
index 000000000..5644a1441
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/ExtendedMetaDataUtil.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.elistfactory;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EPackageRegistryImpl;
+import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+public class ExtendedMetaDataUtil {
+
+ private static ExtendedMetaData extendedMetaData = null;
+
+ public static ExtendedMetaData getExtendedMetaData(final EClassifier eClassifier) {
+ if (extendedMetaData == null) {
+ extendedMetaData = new BasicExtendedMetaData(new EPackageRegistryImpl(EPackage.Registry.INSTANCE));
+ }
+ EPackage ePackage = eClassifier.getEPackage();
+ if (extendedMetaData.getPackage(ePackage.getNsURI()) == null) {
+ populateExtendedMetaData(extendedMetaData, Collections.singletonList(ePackage));
+ }
+ if (extendedMetaData.getPackage(ExtendedMetaData.XML_SCHEMA_URI) == null) {
+ extendedMetaData.putPackage(ExtendedMetaData.XML_SCHEMA_URI, extendedMetaData
+ .getPackage(XMLTypePackage.eNS_URI));
+ }
+ return extendedMetaData;
+ }
+
+ private static void populateExtendedMetaData(final ExtendedMetaData extendedMetaData, final List<EPackage> ePackages) {
+ for (EPackage package1 : ePackages) {
+ EPackage ePackage = package1;
+ if (ePackage != null) {
+ if (!EcorePackage.eNS_URI.equals(ePackage.getNsURI())) {
+ extendedMetaData.putPackage(ePackage.getNsURI(), ePackage);
+ }
+ populateExtendedMetaData(extendedMetaData, ePackage.getESubpackages());
+ }
+ }
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/internal/messages/Messages.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/internal/messages/Messages.java
new file mode 100755
index 000000000..1c9683e1e
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/internal/messages/Messages.java
@@ -0,0 +1,22 @@
+package org.eclipse.emf.teneo.eclipselink.elistfactory.internal.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.emf.teneo.eclipselink.elistfactory.internal.messages.messages"; //$NON-NLS-1$
+ public static String assert_couldNotFindEClassifier$0InEPackage$1;
+ public static String assert_couldNotFindEPackageForNamespaceURI$0;
+ public static String assert_couldNotFindEPackageInterfaceOfEPackageClass$0;
+ public static String assert_couldNotFindFeature$0InEClass$1;
+ public static String assert_featureMustBeNonVolatileFeatureMapEntryType;
+ public static String assert_featureMustBeNonVolatileListItemType;
+ public static String assert_featureMustBeNonVolatileMapEntryType;
+ public static String assert_typeOfEClassifier$0InEPackage$1IsNotEClass;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/internal/messages/messages.properties b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/internal/messages/messages.properties
new file mode 100755
index 000000000..1232decfd
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.elistfactory/src/org/eclipse/emf/teneo/eclipselink/elistfactory/internal/messages/messages.properties
@@ -0,0 +1,8 @@
+assert_couldNotFindEClassifier$0InEPackage$1=Could not find Ecore classifier named "{0}" in Ecore package "{1}".
+assert_couldNotFindEPackageForNamespaceURI$0=Could not find Ecore package for namespace URI "{0}".
+assert_couldNotFindEPackageInterfaceOfEPackageClass$0=Could not find Ecore package interface of Ecore package class "{0}".
+assert_couldNotFindFeature$0InEClass$1=Could not find Ecore feature named "{0}" on Ecore class "{1}".
+assert_featureMustBeNonVolatileFeatureMapEntryType=Argument for parameter "eStructuralFeature" must be configured as non-volatile and has to be a feature map entry type
+assert_featureMustBeNonVolatileListItemType=Argument for parameter "eStructuralFeature" must be configured as non-volatile and has to be a list item type
+assert_featureMustBeNonVolatileMapEntryType=Argument for parameter "eStructuralFeature" must be configured as non-volatile and has to be a map entry type
+assert_typeOfEClassifier$0InEPackage$1IsNotEClass=Type of Ecore classifier "{0}" in Ecore package "{1}" is not "EClass".
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.classpath b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.classpath
new file mode 100755
index 000000000..a28f6ce8e
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry excluding="org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/resource/CRUDTest.java" kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.cvsignore b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.cvsignore
new file mode 100755
index 000000000..ba077a403
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.project b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.project
new file mode 100755
index 000000000..a536853b4
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.core.resources.prefs b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100755
index 000000000..03710d336
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Tue Oct 12 14:12:28 CEST 2004
+eclipse.preferences.version=1
+
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.jdt.core.prefs b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 000000000..7e5d32bbf
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,332 @@
+#Tue Jun 16 11:13:56 EDT 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.jdt.ui.prefs b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.jdt.ui.prefs
new file mode 100755
index 000000000..5b2edb475
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,58 @@
+#Wed Jan 21 22:44:02 CET 2009
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Teneo
+formatter_settings_version=11
+internal.default.compliance=default
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=true
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=true
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/AllTests.launch b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/AllTests.launch
new file mode 100755
index 000000000..f86167973
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/AllTests.launch
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<stringAttribute key="bad_container_name" value="/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/AllTests."/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/AllTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests.AllTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/>
+</launchConfiguration>
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/META-INF/MANIFEST.MF b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/META-INF/MANIFEST.MF
new file mode 100755
index 000000000..d4397228a
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests; singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.resources,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)",
+ org.junit;bundle-version="[3.8.0,5.0.0)",
+ javax.persistence;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.emf.teneo.eclipselink.examples.library;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.teneo.eclipselink;bundle-version="[1.0.0,2.0.0)",
+ org.apache.derby;bundle-version="[10.1.2,11.0.0)",
+ org.eclipse.persistence.jpa;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.persistence.asm;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.persistence.antlr;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.emf.teneo.eclipselink.elistfactory;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.teneo.orm;bundle-version="1.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Import-Package: org.eclipse.core.runtime;version="[3.4.0,4.0.0)",
+ org.eclipse.core.runtime.jobs,
+ org.hsqldb;version="1.8.1"
+
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.html b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.html
new file mode 100755
index 000000000..5a279453c
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>About</title></head><body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.ini b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.ini
new file mode 100755
index 000000000..1d17e5539
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=modeling32.png
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+#welcomePage=$nl$/welcome.xml
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.properties b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.properties
new file mode 100755
index 000000000..a0aa92ef8
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/about.properties
@@ -0,0 +1,46 @@
+#/**
+# * <copyright>
+# *
+# * Copyright (c) 2008-2009 Oracle and Geensys.
+# * 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:
+# * Oracle and Geensys - initial API and implementation
+# *
+# * </copyright>
+# *
+# * $Id: about.properties,v 1.1 2009/01/23 21:51:33 mtaal Exp $
+# */
+
+# NLS_MESSAGEFORMAT_VAR
+
+# ==============================================================================
+# Do not change the properties between this line and the last line containing:
+# %%% END OF TRANSLATED PROPERTIES %%%
+# Instead, either redefine an existing property, or create a new property,
+# append it to the end of the file, and change the code to use the new name.
+# ==============================================================================
+
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+
+featureName=EMF Teneo EclipseLink Library O/R Mapping Tests
+
+featureText=EMF Teneo EclipseLink Library O/R Mapping Tests \n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+(c) Copyright (c) 2008-2009 Oracle and Geensys. All rights reserved.\n\
+\n\
+Visit http://www.eclipse.org/emf
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/build.properties b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/build.properties
new file mode 100755
index 000000000..a7c09486d
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/build.properties
@@ -0,0 +1,19 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ epl-v10.html,\
+ modeling32.png,\
+ about.ini,\
+ about.properties,\
+ copyright.txt,\
+ about.html,\
+ plugin.properties,\
+ test.xml
+src.includes = about.html,\
+ about.ini,\
+ about.properties,\
+ copyright.txt,\
+ epl-v10.html,\
+ license.html,\
+ modeling32.png
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/config.ini b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/config.ini
new file mode 100755
index 000000000..e5cc96108
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/config.ini
@@ -0,0 +1,5 @@
+osgi.bundles=javax.persistence@1:start,org.eclipse.persistence.jpa@2:start,org.eclipse.equinox.common@2:start,
+org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start
+
+# End of file marker - must be here
+eof=eof \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/copyright.txt b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/copyright.txt
new file mode 100755
index 000000000..a37ef444a
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/copyright.txt
@@ -0,0 +1,8 @@
+Copyright (c) 2008-2009 Oracle and Geensys.
+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:
+ Oracle and Geensys - initial API and implementation
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/createDDL.jdbc b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/createDDL.jdbc
new file mode 100755
index 000000000..028bc1eec
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/createDDL.jdbc
@@ -0,0 +1,28 @@
+CREATE TABLE EMFLIB_STYLE (ID BIGINT NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID))
+CREATE TABLE EMFLIB_PUBLISHER (ID BIGINT NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID))
+CREATE TABLE EMFLIB_PUBLISHER_WRITER (publishers_ID BIGINT NOT NULL, writers_ID BIGINT NOT NULL, PRIMARY KEY (publishers_ID, writers_ID))
+CREATE TABLE EMFLIB_COVER (ID BIGINT NOT NULL, COLORED SMALLINT DEFAULT 0, ECONT_FEAT_ID INTEGER, ECONTAINER_ID BIGINT, PRIMARY KEY (ID))
+CREATE TABLE EMFLIB_LIBRARY (ID BIGINT NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID))
+CREATE TABLE EMFLIB_TRANSLATOR (ID BIGINT NOT NULL, LOCATION VARCHAR(255), NAME VARCHAR(255), PRIMARY KEY (ID))
+CREATE TABLE EMFLIB_LIBRARY_BOOK_MAP (MAPKEY VARCHAR(255) NOT NULL, ECONT_FEAT_ID INTEGER, LIBRARY_ID BIGINT NOT NULL, BOOK_ID BIGINT, PRIMARY KEY (MAPKEY, LIBRARY_ID))
+CREATE TABLE EMFLIB_BOOK_STYLE_MAP (MAPKEY VARCHAR(255) NOT NULL, ECONT_FEAT_ID INTEGER, BOOK_ID BIGINT NOT NULL, STYLE_ID BIGINT, PRIMARY KEY (MAPKEY, BOOK_ID))
+CREATE TABLE EMFLIB_ADDRESS (ID BIGINT NOT NULL, TOWN VARCHAR(255), ECONT_FEAT_ID INTEGER, PRIMARY KEY (ID))
+CREATE TABLE EMFLIB_TYPEWRITER (ID BIGINT NOT NULL, MAKER VARCHAR(255), TYPE VARCHAR(255), PRIMARY KEY (ID))
+CREATE TABLE EMFLIB_WRITER (ID BIGINT NOT NULL, NAME VARCHAR(255), ECONT_FEAT_ID INTEGER, ECONTAINER_ID BIGINT, ADDRESS_ID BIGINT, PRIMARY KEY (ID))
+CREATE TABLE EMFLIB_BOOK (ID BIGINT NOT NULL, TITLE VARCHAR(255), PAGES INTEGER, ECONT_FEAT_ID INTEGER, AUTHOR_ID BIGINT, TRANSLATOR_ID BIGINT, PRIMARY KEY (ID))
+CREATE TABLE EMFLIB_WRITER_TYPEWRITER (Writer_ID BIGINT NOT NULL, typewriters_ID BIGINT NOT NULL, PRIMARY KEY (Writer_ID, typewriters_ID))
+ALTER TABLE EMFLIB_PUBLISHER_WRITER ADD CONSTRAINT MFLBPBLSHRWRwrtrsD FOREIGN KEY (writers_ID) REFERENCES EMFLIB_WRITER (ID)
+ALTER TABLE EMFLIB_PUBLISHER_WRITER ADD CONSTRAINT MFLBPBLSHRpblshrsD FOREIGN KEY (publishers_ID) REFERENCES EMFLIB_PUBLISHER (ID)
+ALTER TABLE EMFLIB_COVER ADD CONSTRAINT MFLBCOVERCNTINERID FOREIGN KEY (ECONTAINER_ID) REFERENCES EMFLIB_BOOK (ID)
+ALTER TABLE EMFLIB_LIBRARY_BOOK_MAP ADD CONSTRAINT MFLBLBRRYBKMLBRRYD FOREIGN KEY (LIBRARY_ID) REFERENCES EMFLIB_LIBRARY (ID)
+ALTER TABLE EMFLIB_LIBRARY_BOOK_MAP ADD CONSTRAINT MFLBLBRRYBOKMAPBKD FOREIGN KEY (BOOK_ID) REFERENCES EMFLIB_BOOK (ID)
+ALTER TABLE EMFLIB_BOOK_STYLE_MAP ADD CONSTRAINT MFLBBOKSTYLEMAPBKD FOREIGN KEY (BOOK_ID) REFERENCES EMFLIB_BOOK (ID)
+ALTER TABLE EMFLIB_BOOK_STYLE_MAP ADD CONSTRAINT MFLBBKSTYLMAPSTYLD FOREIGN KEY (STYLE_ID) REFERENCES EMFLIB_STYLE (ID)
+ALTER TABLE EMFLIB_WRITER ADD CONSTRAINT MFLBWRITERCNTNERID FOREIGN KEY (ECONTAINER_ID) REFERENCES EMFLIB_LIBRARY (ID)
+ALTER TABLE EMFLIB_WRITER ADD CONSTRAINT MFLBWRITERDDRESSID FOREIGN KEY (ADDRESS_ID) REFERENCES EMFLIB_ADDRESS (ID)
+ALTER TABLE EMFLIB_BOOK ADD CONSTRAINT EMFLIBBOOKAUTHORID FOREIGN KEY (AUTHOR_ID) REFERENCES EMFLIB_WRITER (ID)
+ALTER TABLE EMFLIB_BOOK ADD CONSTRAINT MFLBBOOKTRNSLTORID FOREIGN KEY (TRANSLATOR_ID) REFERENCES EMFLIB_TRANSLATOR (ID)
+ALTER TABLE EMFLIB_WRITER_TYPEWRITER ADD CONSTRAINT MFLBWRTRTtypwrtrsD FOREIGN KEY (typewriters_ID) REFERENCES EMFLIB_TYPEWRITER (ID)
+ALTER TABLE EMFLIB_WRITER_TYPEWRITER ADD CONSTRAINT MFLBWRTRTYPWRWrtrD FOREIGN KEY (Writer_ID) REFERENCES EMFLIB_WRITER (ID)
+CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT DECIMAL, PRIMARY KEY (SEQ_NAME))
+INSERT INTO SEQUENCE(SEQ_NAME, SEQ_COUNT) values ('SEQ_GEN', 0)
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/derby.log b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/derby.log
new file mode 100644
index 000000000..e26b0286a
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/derby.log
@@ -0,0 +1,6 @@
+----------------------------------------------------------------
+2010-02-07 10:45:44.490 GMT:
+ Booting Derby version The Apache Software Foundation - Apache Derby - 10.1.2.1 - (330608): instance c013800d-0126-a808-f566-000005e62790
+on database directory /home/mtaal/mydata/dev/workspaces/teneo1_2/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/teneo
+
+Database Class Loader started - derby.database.classpath=''
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/dropDDL.jdbc b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/dropDDL.jdbc
new file mode 100755
index 000000000..1fda3296d
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/dropDDL.jdbc
@@ -0,0 +1,27 @@
+ALTER TABLE EMFLIB_PUBLISHER_WRITER DROP CONSTRAINT MFLBPBLSHRWRwrtrsD
+ALTER TABLE EMFLIB_PUBLISHER_WRITER DROP CONSTRAINT MFLBPBLSHRpblshrsD
+ALTER TABLE EMFLIB_COVER DROP CONSTRAINT MFLBCOVERCNTINERID
+ALTER TABLE EMFLIB_LIBRARY_BOOK_MAP DROP CONSTRAINT MFLBLBRRYBKMLBRRYD
+ALTER TABLE EMFLIB_LIBRARY_BOOK_MAP DROP CONSTRAINT MFLBLBRRYBOKMAPBKD
+ALTER TABLE EMFLIB_BOOK_STYLE_MAP DROP CONSTRAINT MFLBBOKSTYLEMAPBKD
+ALTER TABLE EMFLIB_BOOK_STYLE_MAP DROP CONSTRAINT MFLBBKSTYLMAPSTYLD
+ALTER TABLE EMFLIB_WRITER DROP CONSTRAINT MFLBWRITERCNTNERID
+ALTER TABLE EMFLIB_WRITER DROP CONSTRAINT MFLBWRITERDDRESSID
+ALTER TABLE EMFLIB_BOOK DROP CONSTRAINT EMFLIBBOOKAUTHORID
+ALTER TABLE EMFLIB_BOOK DROP CONSTRAINT MFLBBOOKTRNSLTORID
+ALTER TABLE EMFLIB_WRITER_TYPEWRITER DROP CONSTRAINT MFLBWRTRTtypwrtrsD
+ALTER TABLE EMFLIB_WRITER_TYPEWRITER DROP CONSTRAINT MFLBWRTRTYPWRWrtrD
+DROP TABLE EMFLIB_STYLE
+DROP TABLE EMFLIB_PUBLISHER
+DROP TABLE EMFLIB_PUBLISHER_WRITER
+DROP TABLE EMFLIB_COVER
+DROP TABLE EMFLIB_LIBRARY
+DROP TABLE EMFLIB_TRANSLATOR
+DROP TABLE EMFLIB_LIBRARY_BOOK_MAP
+DROP TABLE EMFLIB_BOOK_STYLE_MAP
+DROP TABLE EMFLIB_ADDRESS
+DROP TABLE EMFLIB_TYPEWRITER
+DROP TABLE EMFLIB_WRITER
+DROP TABLE EMFLIB_BOOK
+DROP TABLE EMFLIB_WRITER_TYPEWRITER
+DELETE FROM SEQUENCE WHERE SEQ_NAME = 'SEQ_GEN'
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/epl-v10.html b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/epl-v10.html
new file mode 100755
index 000000000..62b1f6f04
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/epl-v10.html
@@ -0,0 +1,320 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="ProgId" content="Word.Document">
+<meta name="Generator" content="Microsoft Word 9">
+<meta name="Originator" content="Microsoft Word 9">
+<link rel="File-List" href="http://www.eclipse.org/org/documents/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>3</o:TotalTime>
+ <o:Created>2004-03-05T23:03:00Z</o:Created>
+ <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+ <o:Pages>4</o:Pages>
+ <o:Words>1626</o:Words>
+ <o:Characters>9270</o:Characters>
+ <o:Lines>77</o:Lines>
+ <o:Paragraphs>18</o:Paragraphs>
+ <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+ <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+
+
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p
+ {margin-right:0in;
+ mso-margin-top-alt:auto;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+ {mso-style-name:"Balloon Text";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style></head>
+
+<body style="" lang="EN-US">
+
+<div class="Section1">
+
+<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p>
+
+<p><span style="font-size: 10pt;">"Contribution" means:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear="left">
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+changes to the Program, and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+additions to the Program;</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Contributor" means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style="font-size: 10pt;">"Licensed Patents " mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Program" means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style="font-size: 10pt;">"Recipient" means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p>
+
+<p><span style="font-size: 10pt;">A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+its license agreement:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style="color: blue;"> </span></span></p>
+
+<p><span style="font-size: 10pt;">When the Program is made available in source
+code form:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it must be made available under this Agreement; and </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style="font-size: 10pt;">Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor ("Commercial
+Contributor") hereby agrees to defend and indemnify every other
+Contributor ("Indemnified Contributor") against any losses, damages and
+costs (collectively "Losses") arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style="font-size: 10pt;">For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p>
+
+<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style="font-size: 10pt;">If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
+
+</div>
+
+</body></html> \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/license.html b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/license.html
new file mode 100755
index 000000000..d7b88e941
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/license.html
@@ -0,0 +1,319 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="ProgId" content="Word.Document">
+<meta name="Generator" content="Microsoft Word 9">
+<meta name="Originator" content="Microsoft Word 9">
+<link rel="File-List" href="http://www.eclipse.org/org/documents/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>3</o:TotalTime>
+ <o:Created>2004-03-05T23:03:00Z</o:Created>
+ <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+ <o:Pages>4</o:Pages>
+ <o:Words>1626</o:Words>
+ <o:Characters>9270</o:Characters>
+ <o:Lines>77</o:Lines>
+ <o:Paragraphs>18</o:Paragraphs>
+ <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+ <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+
+
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p
+ {margin-right:0in;
+ mso-margin-top-alt:auto;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+ {mso-style-name:"Balloon Text";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style></head>
+
+<body style="" lang="EN-US">
+
+<div class="Section1">
+
+<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p>
+
+<p><span style="font-size: 10pt;">"Contribution" means:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear="left">
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+changes to the Program, and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+additions to the Program;</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Contributor" means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style="font-size: 10pt;">"Licensed Patents " mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style="font-size: 10pt;">"Program" means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style="font-size: 10pt;">"Recipient" means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p>
+
+<p><span style="font-size: 10pt;">A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
+its license agreement:</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style="color: blue;"> </span></span></p>
+
+<p><span style="font-size: 10pt;">When the Program is made available in source
+code form:</span> </p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
+it must be made available under this Agreement; and </span></p>
+
+<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style="font-size: 10pt;">Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style="font-size: 10pt;">Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor ("Commercial
+Contributor") hereby agrees to defend and indemnify every other
+Contributor ("Indemnified Contributor") against any losses, damages and
+costs (collectively "Losses") arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style="font-size: 10pt;">For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p>
+
+<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style="font-size: 10pt;">If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
+
+</div>
+
+</body></html> \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/modeling32.png b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/modeling32.png
new file mode 100755
index 000000000..6b08de2ad
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/modeling32.png
Binary files differ
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/plugin.properties b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/plugin.properties
new file mode 100755
index 000000000..ce968c6ea
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/plugin.properties
@@ -0,0 +1,15 @@
+# ====================================================================
+# To code developer:
+# Do NOT change the properties between this line and the
+# "%%% END OF TRANSLATED PROPERTIES %%%" line.
+# Make a new property name, append to the end of the file and change
+# the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = EMF Teneo EclipseLink Library O/R Mapping Tests
+providerName = Eclipse Modeling Project
+
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/AdHocTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/AdHocTest.java
new file mode 100755
index 000000000..4cd05f64e
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/AdHocTest.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.Publisher;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+/**
+ * @author ebk2fe
+ * @version 1.0 (April 28th, 2006)
+ * <p>
+ * This test case creates a publisher object and assignes two writers to the publisher. The objects are
+ * committed to the data base. The publisher is fetched back from the data base.
+ */
+public class AdHocTest extends LibraryJPATest {
+
+ private Writer writer1;
+ private String writer1Name;
+ private Writer writer2;
+ private String writer2Name;
+ private Publisher publisher;
+ private String publisherName;
+
+ public AdHocTest(String name) {
+ super(name);
+ }
+
+ public void testRemovePublisherWriterWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyRemovePublisherWriter(checkCache);
+ }
+
+ // public void testRemovePublisherWriterNoCache() throws Exception {
+ // boolean checkCache = false;
+ // verifyRemovePublisherWriter(checkCache);
+ // }
+
+ private void verifyRemovePublisherWriter(boolean checkCache) {
+
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ // dissassociate a writer from a publisher
+ beginTransaction();
+ Publisher dbPublisher = findPublisherWithName(em, publisherName);
+ Writer dbWriter1 = findWriterWithName(em, writer1Name);
+
+ dbPublisher.getWriters().remove(dbWriter1);
+ dbWriter1.getPublishers().remove(dbPublisher);
+ commitTransaction();
+
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ // verify dissassociation
+ dbPublisher = findPublisherWithName(em, publisherName);
+ dbWriter1 = findWriterWithName(em, writer1Name);
+ Writer dbWriter2 = findWriterWithName(em, writer2Name);
+
+ assertNotNull("publisher not found", dbPublisher);
+ assertNotNull("writer1 not found", dbWriter1);
+ assertNotNull("writer2 not found", dbWriter2);
+ assertTrue("writer's publishers", dbWriter1.getPublishers().isEmpty());
+ assertEquals("num publisher's writers", 1, dbPublisher.getWriters().size());
+ assertEquals("publisher's writer", dbWriter2, dbPublisher.getWriters().get(0));
+ }
+
+ /**
+ * The test fixture consists of a single publisher with two writers.
+ */
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ beginTransaction();
+ publisher = createAnonymousPublisher(em);
+ publisherName = publisher.getName();
+ writer1 = createAnonymousWriter(em);
+ writer1Name = writer1.getName();
+ writer2 = createAnonymousWriter(em);
+ writer2Name = writer2.getName();
+ //
+ publisher.getWriters().add(writer1);
+ publisher.getWriters().add(writer2);
+ commitTransaction();
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/AllTests.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/AllTests.java
new file mode 100755
index 000000000..e61933449
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/AllTests.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTests {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite("ListTest for org.eclipse.emf.teneo.eclipselink.examples.library");
+ // $JUnit-BEGIN$
+ suite.addTestSuite(GenerateORMTest.class);
+ suite.addTestSuite(EObjectTest.class);
+ suite.addTestSuite(TypeWriterTypeTest.class);
+ suite.addTestSuite(LibWriterEContainerTest.class);
+ suite.addTestSuite(OneToOneTest.class);
+ suite.addTestSuite(LibBookEContainerTest.class);
+ suite.addTestSuite(WriterTypewriterTest.class);
+ suite.addTestSuite(LibraryEnvironmentTest.class);
+ suite.addTestSuite(ContainerTest.class);
+ suite.addTestSuite(BookCoverTest.class);
+ suite.addTestSuite(LibraryEContainerLibraryTest.class);
+ // suite.addTestSuite(EMapTest.class);
+ suite.addTestSuite(EListEMapTest.class);
+ suite.addTestSuite(BasicTest.class);
+ suite.addTestSuite(LibraryEContainerTest.class);
+ suite.addTestSuite(BookTranslatorTest.class);
+ suite.addTestSuite(LibraryXMIPersistenceTest.class);
+ suite.addTestSuite(WriterAddressTest.class);
+ suite.addTestSuite(EListTest.class);
+ suite.addTestSuite(WriterPublisherTest.class);
+ suite.addTestSuite(PublisherWriterTest.class);
+ suite.addTestSuite(EContainerReferenceTest.class);
+ suite.addTestSuite(BookStylesTest.class);
+
+ suite.addTest(org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests.resource.AllTests.suite());
+
+ // $JUnit-END$
+ return suite;
+ }
+
+} \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BasicTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BasicTest.java
new file mode 100755
index 000000000..3c597aa15
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BasicTest.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.LibraryFactory;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Style;
+
+public class BasicTest extends LibraryJPATest {
+
+ public BasicTest(String name) {
+ super(name);
+ }
+
+ public void testBasicMapping() throws Exception {
+ Style style = LibraryFactory.eINSTANCE.createStyle();
+ String expectedStyle = getAnonymousString();
+ style.setName(expectedStyle);
+ em.getTransaction().begin();
+ em.persist(style);
+ em.getTransaction().commit();
+
+ Style actualStyle = (Style) em.createQuery("select s from Style s where s.name = :name").setParameter("name",
+ expectedStyle).getSingleResult();
+ assertEquals("name", expectedStyle, actualStyle.getName());
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookCoverTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookCoverTest.java
new file mode 100755
index 000000000..cd669b952
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookCoverTest.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Cover;
+
+public class BookCoverTest extends LibraryJPATest {
+
+ public BookCoverTest(String name) {
+ super(name);
+ }
+
+ public void testInsertWriterAndCoverWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertWriterAddress(checkCache);
+ }
+
+ public void testInsertWriterAndCoverNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertWriterAddress(checkCache);
+ }
+
+ private void verifyInsertWriterAddress(boolean checkCache) {
+
+ beginTransaction();
+
+ Book book = createAnonymousBookWithCover(em);
+ String bookTitle = book.getTitle();
+ Cover cover = book.getCover();
+
+ // put the data to the data base
+ commitTransaction();
+
+ // verify
+
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ // Check whether the Book as been allocated at the data base.
+
+ Book dbBook = findBookWithTitle(em, bookTitle);
+ assertNotNull("Book not found", dbBook);
+ Cover dbCover = dbBook.getCover();
+
+ assertNotNull("dbCover not found", dbCover);
+ assertNotNull("eContainer not set", dbCover.eContainer());
+ int containerFeatureID = ((InternalEObject) cover).eContainerFeatureID();
+ int dbContainerFeatureID = ((InternalEObject) dbCover).eContainerFeatureID();
+ assertEquals("Containment Feature Id DB Cover", containerFeatureID, dbContainerFeatureID);
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookStylesTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookStylesTest.java
new file mode 100755
index 000000000..21c8e034c
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookStylesTest.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Style;
+import org.eclipse.emf.teneo.eclipselink.examples.library.impl.BookStylesMapEntryImpl;
+
+public class BookStylesTest extends LibraryJPATest {
+
+ public BookStylesTest(String name) {
+ super(name);
+ }
+
+ public void testInsertBookWithStylesWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertBookStyles(checkCache);
+ }
+
+ public void testInsertBookWithStylesNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertBookStyles(checkCache);
+ }
+
+ private void verifyInsertBookStyles(boolean checkCache) {
+
+ beginTransaction();
+
+ Book book = createAnonymousBook(em);
+ String bookTitle = book.getTitle();
+ Style style1 = createAnonymousStyle(em);
+ String style1Name = style1.getName();
+ Style style2 = createAnonymousStyle(em);
+ String style2Name = style2.getName();
+ book.getStyles().put(style1Name, style1);
+ book.getStyles().put(style2Name, style2);
+ int eContFeatId = ((BookStylesMapEntryImpl) book.getStyles().get(0)).eContainerFeatureID();
+
+ commitTransaction();
+
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ Book dbBook = findBookWithTitle(em, bookTitle);
+ assertNotNull("dbBook not found", dbBook);
+ assertEquals("dbBook nbr of styles", book.getStyles().size(), dbBook.getStyles().size());
+
+ // check the containment setting for the BookStyleMapEntry
+
+ BookStylesMapEntryImpl bookStyleMapEntry = (BookStylesMapEntryImpl) dbBook.getStyles().get(0);
+ assertEquals("eContainer of the BookStylesMapEntryImpl", dbBook, bookStyleMapEntry.eContainer());
+ assertEquals("eContainerFeatureId of the BookStylesMapEntryImpl", eContFeatId, ((BookStylesMapEntryImpl) dbBook
+ .getStyles().get(0)).eContainerFeatureID());
+
+ Style dbStyle1 = dbBook.getStyles().get(style1Name);
+ Style dbStyle2 = dbBook.getStyles().get(style2Name);
+
+ assertNotNull("First Style", dbStyle1);
+ assertNotNull("Second Style", dbStyle2);
+
+ // There is no containment relationshsip given for the Style objects
+ assertNull("no containment of the style object", dbStyle1.eContainer());
+ assertNull("no containment of the style object", dbStyle2.eContainer());
+ }
+} \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookTranslatorTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookTranslatorTest.java
new file mode 100755
index 000000000..5a45bcadc
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/BookTranslatorTest.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Translator;
+
+public class BookTranslatorTest extends LibraryJPATest {
+
+ public BookTranslatorTest(String name) {
+ super(name);
+ }
+
+ public void testInsertBookWithTranslatorWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertBookTranslator(checkCache);
+ }
+
+ public void testInsertBookWithTranslatorNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertBookTranslator(checkCache);
+ }
+
+ private void verifyInsertBookTranslator(boolean checkCache) {
+
+ beginTransaction();
+ Book book = createAnonymousBookWithTranslator(em);
+ String bookTitle = book.getTitle();
+ Translator translator = book.getTranslator();
+ commitTransaction();
+
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ Book dbBook = findBookWithTitle(em, bookTitle);
+ assertNotNull("dbBook not found", dbBook);
+ Translator dbTranslator = dbBook.getTranslator();
+ assertNotNull("dbTranslator not found", dbTranslator);
+ assertEquals("dbTranslator.location", translator.getLocation(), dbTranslator.getLocation());
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/ContainerTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/ContainerTest.java
new file mode 100755
index 000000000..1d8aeb1e7
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/ContainerTest.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+import org.eclipse.emf.teneo.eclipselink.examples.library.impl.LibraryImpl;
+import org.eclipse.emf.teneo.eclipselink.examples.library.impl.WriterImpl;
+
+public class ContainerTest extends LibraryJPATest {
+
+ public ContainerTest(String name) {
+ super(name);
+ }
+
+ public void testMoveBetweenContainersWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyMoveBetweenContainers(checkCache);
+ }
+
+ public void testMoveBetweenContainersNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyMoveBetweenContainers(checkCache);
+ }
+
+ private void verifyMoveBetweenContainers(boolean checkCache) {
+ beginTransaction();
+ WriterImpl writer = (WriterImpl) createAnonymousWriter(em);
+ String writerName = writer.getName();
+ LibraryImpl libraryOne = (LibraryImpl) createAnonymousLibrary(em);
+ String libraryOneName = libraryOne.getName();
+ libraryOne.getWriters().add(writer);
+ commitTransaction();
+
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ beginTransaction();
+ writer = (WriterImpl) findWriterWithName(em, writerName);
+ LibraryImpl libraryTwo = (LibraryImpl) createAnonymousLibrary(em);
+ String libraryTwoName = libraryTwo.getName();
+ libraryTwo.getWriters().add(writer);
+ commitTransaction();
+
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ Library dbLibraryOne = findLibraryWithName(em, libraryOneName);
+ Library dbLibraryTwo = findLibraryWithName(em, libraryTwoName);
+ Writer dbWriter = findWriterWithName(em, writerName);
+ EList<Writer> dbLibOneWriters = dbLibraryOne.getWriters();
+ EList<Writer> dbLibTwoWriters = dbLibraryTwo.getWriters();
+ assertEquals("writer container", dbLibraryTwo, dbWriter.eContainer());
+ assertEquals("new library number of books", 1, dbLibTwoWriters.size());
+ assertTrue("original library has no books", dbLibOneWriters.isEmpty());
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EContainerReferenceTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EContainerReferenceTest.java
new file mode 100755
index 000000000..654b5fb21
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EContainerReferenceTest.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+public class EContainerReferenceTest extends LibraryJPATest {
+
+ public EContainerReferenceTest(String name) {
+ super(name);
+ }
+
+ public void testLibraryWriterRelationshipWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyLibaryWriterRelationship(checkCache);
+ }
+
+ public void testLibraryWriterRelationshipNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyLibaryWriterRelationship(checkCache);
+ }
+
+ /**
+ * This test creates a Library with a contained Writer and determines whether the inverse eContainer relationship is
+ * established from Writer to Library.
+ *
+ * @param checkCache
+ * @throws Exception
+ */
+ private void verifyLibaryWriterRelationship(boolean checkCache) throws Exception {
+ beginTransaction();
+ Writer writer = createAnonymousWriter(em);
+ String writerName = writer.getName();
+ Library library = createAnonymousLibrary(em);
+ String libraryName = library.getName();
+ library.getWriters().add(writer);
+ commitTransaction();
+
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ beginTransaction();
+ Writer actualWriter = findWriterWithName(em, writerName);
+ assertNotNull("writer", actualWriter);
+
+ Library actualLibrary = findLibraryWithName(em, libraryName);
+ Writer actualLibraryWriter = actualLibrary.getWriters().get(0);
+ assertEquals("writer/library writer", actualWriter, actualLibraryWriter);
+ EObject actualWriterEContainer = actualWriter.eContainer();
+ assertEquals("writer eContainer", actualLibrary, actualWriterEContainer);
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EListEMapTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EListEMapTest.java
new file mode 100755
index 000000000..2262a60d8
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EListEMapTest.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+public class EListEMapTest extends LibraryJPATest {
+
+ public EListEMapTest(String name) {
+ super(name);
+ }
+
+ public void testInsertWriterAndBooksAndLibraryWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertWriterBookLibrary(checkCache);
+ }
+
+ public void testInsertWriterAndBooksAndLibraryNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertWriterBookLibrary(checkCache);
+ }
+
+ private void verifyInsertWriterBookLibrary(boolean checkCache) {
+ beginTransaction();
+ Writer writer = createAnonymousWriterWithOneBook(em);
+ String writerName = writer.getName();
+ Book book = writer.getBooks().get(0);
+ String bookTitle = book.getTitle();
+ Library library = createAnonymousLibrary(em);
+ String libraryName = library.getName();
+ library.getBooks().put(book.getTitle(), book);
+ library.getWriters().add(writer);
+ commitTransaction();
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ Writer actualWriter = findWriterWithName(em, writerName);
+ assertNotNull("writer", actualWriter);
+ assertEquals("writer name", writerName, actualWriter.getName());
+ Book actualBook = findBookWithTitle(em, bookTitle);
+ assertNotNull("book", actualBook);
+ assertEquals("number of writer books", 1, actualWriter.getBooks().size());
+ Book actualWriterBook = actualWriter.getBooks().get(0);
+ assertEquals("book/writer book", actualBook, actualWriterBook);
+ assertEquals("writer book", actualWriter.getBooks().get(0), actualBook);
+ Library actualLibrary = findLibraryWithName(em, libraryName);
+ Book actualLibraryBook = actualLibrary.getBooks().get(bookTitle);
+ assertEquals("book/library book", actualBook, actualLibraryBook);
+ Writer actualLibraryWriter = actualLibrary.getWriters().get(0);
+ assertEquals("writer/library writer", actualWriter, actualLibraryWriter);
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EListTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EListTest.java
new file mode 100755
index 000000000..89573c11b
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EListTest.java
@@ -0,0 +1,178 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+
+public class EListTest extends LibraryJPATest {
+
+
+ public EListTest(String name) {
+ super(name);
+ }
+
+
+ public void testInsertWriterAndBooksWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertWriterBook(checkCache);
+ }
+
+ public void testInsertWriterAndBooksNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertWriterBook(checkCache);
+ }
+
+ private void verifyInsertWriterBook(boolean checkCache) {
+ beginTransaction();
+ Writer writer = createAnonymousWriterWithOneBook(em);
+ String writerName = writer.getName();
+ Book book = writer.getBooks().get(0);
+ String bookTitle = book.getTitle();
+ commitTransaction();
+
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ Writer actualWriter = findWriterWithName(em, writerName);
+ assertNotNull("writer", actualWriter);
+ EList<Book> actualBooks = actualWriter.getBooks();
+ assertEquals("number writer's books", 1, actualBooks.size());
+ Book actualBook = findBookWithTitle(em, bookTitle);
+ assertNotNull("book", actualBook);
+ assertEquals("writer book", actualBooks.get(0), actualBook);
+ assertEquals("book author", actualWriter, actualBook.getAuthor());
+ }
+
+
+ public void testAddBookToWriterWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyAddBookToWriter(checkCache);
+ }
+
+ public void testAddBookToWriterNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyAddBookToWriter(checkCache);
+ }
+
+ private void verifyAddBookToWriter(boolean checkCache) {
+ // setup fixture
+ beginTransaction();
+ Writer writer = createAnonymousWriter(em);
+ Book firstBook = createAnonymousBookForWriter(em, writer);
+ String writerName = writer.getName();
+ commitTransaction();
+
+ // exercise SUT
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ beginTransaction();
+ writer = findWriterWithName(em, writerName);
+ Book secondBook = createAnonymousBookForWriter(em, writer);
+ commitTransaction();
+
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ Writer actualWriter = findWriterWithName(em, writerName);
+ List<Book> actualBooks = actualWriter.getBooks();
+ assertEquals("number of books",2, actualBooks.size());
+ assertBookListContains(actualBooks, firstBook);
+ assertBookListContains(actualBooks, secondBook);
+ }
+
+ public void testRemoveBookFromWriterWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyRemoveBookFromWriter(checkCache);
+ }
+
+ public void testRemoveBookFromWriterNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyRemoveBookFromWriter(checkCache);
+ }
+
+ private void verifyRemoveBookFromWriter(boolean checkCache) {
+ beginTransaction();
+ // fixture
+ Writer writer = createAnonymousWriterWithOneBook(em);
+ String writerName = writer.getName();
+ commitTransaction();
+ // exercise SUT
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ beginTransaction();
+ writer = findWriterWithName(em, writerName);
+ Book book = writer.getBooks().get(0);
+ writer.getBooks().remove(book);
+ em.remove(book);
+ commitTransaction();
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ Writer actualWriter = findWriterWithName(em, writerName);
+ List<Book> actualBooks = actualWriter.getBooks();
+ assertEquals("number of books", 0, actualBooks.size());
+ }
+
+
+ public void testInsertLibraryWriterWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertLibraryWriter(checkCache);
+ }
+
+ public void testInsertLibraryWriterNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertLibraryWriter(checkCache);
+ }
+
+ private void verifyInsertLibraryWriter(boolean checkCache) {
+ beginTransaction();
+ Library library = createAnonymousLibrary(em);
+ Writer writer = createAnonymousWriter(em);
+ String libraryName = library.getName();
+ String writerName = writer.getName();
+ library.getWriters().add(writer);
+ commitTransaction();
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ Writer actualWriter = findWriterWithName(em, writerName);
+ assertNotNull("writer", actualWriter);
+ Library actualLibrary = findLibraryWithName(em, libraryName);
+ assertNotNull("library", actualLibrary);
+ EList<Writer> actualLibraryWriters = actualLibrary.getWriters();
+ assertEquals("library writers", 1, actualLibraryWriters.size());
+ Writer actualLibraryWriter = actualLibraryWriters.get(0);
+ assertEquals("writer/library writer", actualWriter, actualLibraryWriter);
+
+ EObject actualWriterEContainer = actualWriter.eContainer();
+ assertEquals("library", actualLibrary, actualWriterEContainer);
+ }
+
+
+
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EMapTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EMapTest.java
new file mode 100755
index 000000000..978a045d8
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EMapTest.java
@@ -0,0 +1,171 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import java.util.Map.Entry;
+
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+public class EMapTest extends LibraryJPATest {
+
+ public EMapTest(String name) {
+ super(name);
+ }
+
+ public void testInsertLibraryAndBooksWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertLibraryAndBooks(checkCache);
+ }
+
+ public void testInsertLibaryAndBooksNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertLibraryAndBooks(checkCache);
+ }
+
+ private void verifyInsertLibraryAndBooks(boolean checkCache) {
+ beginTransaction();
+ Library library = createAnonymousLibrary(em);
+ String libraryName = library.getName();
+ Book book = createAnonymousBook(em);
+ String bookTitle = book.getTitle();
+ library.getBooks().put(bookTitle, book);
+ commitTransaction();
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ Library actualLibrary = findLibraryWithName(em, libraryName);
+ assertNotNull("library", actualLibrary);
+ Book actualBook = findBookWithTitle(em, bookTitle);
+ assertNotNull("book", actualBook);
+ EMap<String, Book> actualBooks = actualLibrary.getBooks();
+ int numberActualBooks = actualBooks.size();
+ assertEquals("number of book", 1, numberActualBooks);
+ EObject actualLibraryBook = actualBooks.get(bookTitle);
+ assertEquals("library book", actualBook, actualLibraryBook);
+
+ EObject bookContainer = actualBook.eContainer();
+ EObject libraryBookContainer = actualLibraryBook.eContainer();
+ assertEquals("book container", bookContainer, libraryBookContainer);
+
+ EObject bookEntryContainer = bookContainer.eContainer();
+ EObject libraryBookEntryContainer = libraryBookContainer.eContainer();
+ assertEquals("entry container", bookEntryContainer, libraryBookEntryContainer);
+ assertEquals("entry container", actualLibrary, bookEntryContainer);
+ assertEquals("entry container", actualLibrary, libraryBookEntryContainer);
+ }
+
+ public void testAddBookToLibraryWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyAddBookToLibrary(checkCache);
+ }
+
+ public void testAddBookToLibraryNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyAddBookToLibrary(checkCache);
+ }
+
+ private void verifyAddBookToLibrary(boolean checkCache) {
+ beginTransaction();
+ // setup fixture
+ Library library = createAnonymousLibrary(em);
+ Writer writer = createAnonymousWriter(em);
+ Book bookOne = createAnonymousBookForWriter(em, writer);
+ String bookOneTitle = bookOne.getTitle();
+ library.getBooks().put(bookOneTitle, bookOne);
+ library.getWriters().add(writer);
+ String libraryName = library.getName();
+ String writerName = writer.getName();
+ commitTransaction();
+ // exercise SUT
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ beginTransaction();
+ library = findLibraryWithName(em, libraryName);
+ writer = findWriterWithName(em, writerName);
+ Book bookTwo = createAnonymousBookForWriter(em, writer);
+ String bookTwoTitle = bookTwo.getTitle();
+ library.getBooks().put(bookTwoTitle, bookTwo);
+ commitTransaction();
+
+ // verify - cache
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ Library actualLibrary = findLibraryWithName(em, libraryName);
+ Book actualBookOne = findBookWithTitle(em, bookOneTitle);
+ Book actualBookTwo = findBookWithTitle(em, bookTwoTitle);
+ EMap<String, Book> libraryBooks = actualLibrary.getBooks();
+ assertEquals("number of books", 2, libraryBooks.size());
+ assertEquals("first library book", actualBookOne, libraryBooks.get(bookOneTitle));
+ assertEquals("second library book", actualBookTwo, libraryBooks.get(bookTwoTitle));
+ }
+
+ public void testRemoveBookFromLibraryWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyRemoveBookFromLibrary(checkCache);
+ }
+
+ public void testRemoveBookFromLibraryNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyRemoveBookFromLibrary(checkCache);
+ }
+
+ private void verifyRemoveBookFromLibrary(boolean checkCache) {
+ beginTransaction();
+ // fixture
+ Writer writer = createAnonymousWriter(em);
+ Book bookOne = createAnonymousBookForWriter(em, writer);
+ Book bookTwo = createAnonymousBookForWriter(em, writer);
+ Library library = createAnonymousLibrary(em);
+ library.getBooks().put(bookOne.getTitle(), bookOne);
+ library.getBooks().put(bookTwo.getTitle(), bookTwo);
+ String libraryName = library.getName();
+ String bookOneTitle = bookOne.getTitle();
+ String bookTwoTitle = bookTwo.getTitle();
+ commitTransaction();
+ // exercise SUT
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ beginTransaction();
+ library = findLibraryWithName(em, libraryName);
+ bookTwo = findBookWithTitle(em, bookTwoTitle);
+ Book bookTwoFromLibrary = library.getBooks().removeKey(bookTwoTitle);
+ assertEquals(bookTwo, bookTwoFromLibrary);
+ // TODO: ResourceImpl will get callback to delete MapEntry
+ EObject bookTwoEContainer = bookTwo.eContainer();
+ if ((bookTwoEContainer != null) && (bookTwoEContainer instanceof Entry<?, ?>)) {
+ em.remove(bookTwoEContainer);
+ }
+ em.remove(bookTwo);
+ commitTransaction();
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ Library actualLibrary = findLibraryWithName(em, libraryName);
+ Book actualBookOne = findBookWithTitle(em, bookOneTitle);
+ EMap<String, Book> actualBooks = actualLibrary.getBooks();
+ assertEquals("number of books", 1, actualBooks.size());
+ Book actualLibraryBook = actualBooks.get(bookOneTitle);
+ assertEquals("book in library", actualBookOne, actualLibraryBook);
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EObjectTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EObjectTest.java
new file mode 100755
index 000000000..16e2cc421
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/EObjectTest.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.BookCategory;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+public class EObjectTest extends LibraryJPATest {
+
+ public EObjectTest(String name) {
+ super(name);
+ }
+
+ public void testInsertWriterWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertWriter(checkCache);
+ }
+
+ public void testInsertWriterNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertWriter(checkCache);
+ }
+
+ private void verifyInsertWriter(boolean checkCache) {
+ beginTransaction();
+ Writer writer = createAnonymousWriter(em);
+ String writerName = writer.getName();
+ commitTransaction();
+
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ beginTransaction();
+ Writer actualWriter = findWriterWithName(em, writerName);
+ assertNotNull("writer", actualWriter);
+ rollbackTransaction();
+ }
+
+ public void testInsertBookWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertBook(checkCache);
+ }
+
+ public void testInsertBookNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertBook(checkCache);
+ }
+
+ private void verifyInsertBook(boolean checkCache) {
+ beginTransaction();
+ Book book = createAnonymousBook(em);
+ String title = book.getTitle();
+ BookCategory category = book.getCategory();
+ commitTransaction();
+
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ beginTransaction();
+ Book actualBook = findBookWithTitle(em, title);
+ assertNotNull("book", actualBook);
+ assertEquals("category", category, actualBook.getCategory());
+ rollbackTransaction();
+ }
+
+ public void testInsertLibraryWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertLibrary(checkCache);
+ }
+
+ public void testInsertLibraryNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertLibrary(checkCache);
+ }
+
+ private void verifyInsertLibrary(boolean checkCache) {
+ beginTransaction();
+ Library library = createAnonymousLibrary(em);
+ String name = library.getName();
+ commitTransaction();
+
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ beginTransaction();
+ Library actualLibrary = findLibraryWithName(em, name);
+ assertNotNull("library", actualLibrary);
+ rollbackTransaction();
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/GenerateORMTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/GenerateORMTest.java
new file mode 100755
index 000000000..06707c32f
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/GenerateORMTest.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Springsite (The Netherlands).
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.teneo.eclipselink.examples.library.LibraryPackage;
+import org.eclipse.emf.teneo.eclipselink.examples.suppressinterfaces.SuppressinterfacesPackage;
+import org.eclipse.emf.teneo.jpa.convert.ORMGenerator;
+
+/**
+ * @author mtaal
+ */
+public class GenerateORMTest extends TestCase {
+
+ public void testGenerateORMLibrary() {
+ final ORMGenerator ormGenerator = new ORMGenerator();
+ System.err.println(ormGenerator.generateORM(new EPackage[] { LibraryPackage.eINSTANCE }));
+ }
+
+ public void testGenerateORMSuppressedInterfaces() {
+ final ORMGenerator ormGenerator = new ORMGenerator();
+ System.err.println(ormGenerator.generateORM(new EPackage[] { SuppressinterfacesPackage.eINSTANCE }));
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/JPATest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/JPATest.java
new file mode 100755
index 000000000..e7e9e5b61
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/JPATest.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import java.util.Calendar;
+import java.util.HashMap;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+
+import org.eclipse.persistence.config.PersistenceUnitProperties;
+import org.eclipse.persistence.jpa.osgi.PersistenceProvider;
+import org.eclipse.persistence.sessions.Session;
+import org.eclipse.persistence.sessions.factories.SessionManager;
+
+public abstract class JPATest extends ManagedTest {
+ private static EntityManagerFactory factory;
+
+ protected EntityManager em;
+
+ public JPATest(String name) {
+ super(name);
+ }
+
+ public EntityManagerFactory getEntityManagerFactory() {
+ if (factory == null) {
+ HashMap<String, Object> properties = new HashMap<String, Object>();
+ ClassLoader classLoader = this.getClass().getClassLoader();
+ properties.put(PersistenceUnitProperties.CLASSLOADER, classLoader);
+ factory = new PersistenceProvider().createEntityManagerFactory(getPersistenceUnitName(), properties);
+ }
+ return factory;
+ }
+
+ protected String getPersistenceUnitName() {
+ return "default";
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ em = getEntityManagerFactory().createEntityManager();
+ cleanDatabase();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ if (em != null) {
+ try {
+ em.close();
+ } catch (RuntimeException e) {
+ System.out.println("Exception closing EntityManager: " + e.getMessage());
+ e.printStackTrace();
+ // not supposed to fail in tearDown
+ } finally {
+ }
+ }
+ super.tearDown();
+ }
+
+ protected static long nextTitleInt = Calendar.getInstance().getTimeInMillis();
+
+ /**
+ * Subclasses should define to return all objects that should be deleted before a test is run.
+ *
+ * @param uow
+ */
+ protected abstract void cleanDatabase(EntityManager em);
+
+ /**
+ * Utility method used to generate Strings for "don't care" attribute values of test objects: DON'T HARD WIRE VALUES
+ * IN TESTS
+ *
+ * @return String
+ */
+ protected String getAnonymousString() {
+ return String.valueOf(nextTitleInt++);
+ }
+
+ /**
+ * Called when all the tests in the current suite are have been run.
+ */
+ @Override
+ protected void allTestsComplete() {
+ factory.close();
+ }
+
+ protected void cleanDatabase() {
+ em.getTransaction().begin();
+ cleanDatabase(em);
+ em.getTransaction().commit();
+ }
+
+ protected void beginTransaction() {
+ em.getTransaction().begin();
+ }
+
+ protected void commitTransaction() {
+ em.getTransaction().commit();
+ }
+
+ protected void rollbackTransaction() {
+ em.getTransaction().rollback();
+ }
+
+ protected void reinitializeCachesAndEntityManager() {
+ Session session = SessionManager.getManager().getSession(getPersistenceUnitName());
+ session.getIdentityMapAccessor().initializeAllIdentityMaps();
+ em.close();
+ em = getEntityManagerFactory().createEntityManager();
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibBookEContainerTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibBookEContainerTest.java
new file mode 100755
index 000000000..eb991a27c
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibBookEContainerTest.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+
+public class LibBookEContainerTest extends LibraryJPATest {
+
+ public LibBookEContainerTest(String name) {
+ super(name);
+ }
+
+ public void testInsertBookAndLibraryWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertBookLibrary(checkCache);
+ }
+
+ public void testInsertBookAndLibraryNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertBookLibrary(checkCache);
+ }
+
+ /**
+ * Create the library and a book within the library.<br>
+ * Store the library to the data base.<br>
+ * Fetch back the library from the data base.<br>
+ * Identify the book object assigned to libray.<br>
+ * Check whether the attribute eContainer is set at the book object.
+ *
+ * @param checkCache
+ */
+ private void verifyInsertBookLibrary(boolean checkCache) {
+
+ beginTransaction();
+ Book book = createAnonymousBook(em);
+ String bookTitle = book.getTitle();
+ Library library = createAnonymousLibrary(em);
+ String libraryName = library.getName();
+ library.getBooks().put(book.getTitle(), book);
+ commitTransaction();
+
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ // Check whether the book as been allocated at the data base.
+ Book actualBook = findBookWithTitle(em, bookTitle);
+ assertNotNull("book", actualBook);
+ assertNotNull("Field Actual/Book.eContainer not set", actualBook.eContainer());
+ int containerFeatureID = ((InternalEObject) book).eContainerFeatureID();
+ int actualContainerFeatureID = ((InternalEObject) actualBook).eContainerFeatureID();
+ assertEquals("Containment Feature Id DB Book", containerFeatureID, actualContainerFeatureID);
+
+ Library actualLibrary = findLibraryWithName(em, libraryName);
+ assertNotNull("library missing", actualLibrary);
+
+ Book actualLibraryBook = actualLibrary.getBooks().get(bookTitle);
+ assertNotNull("book missing", actualLibraryBook);
+ assertEquals("book title", bookTitle, actualLibraryBook.getTitle());
+ assertEquals("Book Check", actualBook, actualLibraryBook);
+
+ // verify whether the field eContainer is set
+ assertNotNull("Field Library/Book.eContainer not set", actualLibraryBook.eContainer());
+ assertEquals("Containment Relationship", actualLibrary, actualLibraryBook.eContainer().eContainer());
+
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibWriterEContainerTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibWriterEContainerTest.java
new file mode 100755
index 000000000..f41d17810
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibWriterEContainerTest.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+public class LibWriterEContainerTest extends LibraryJPATest {
+
+ public LibWriterEContainerTest(String name) {
+ super(name);
+ }
+
+ public void testInsertWriterAndLibraryWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertWriterLibrary(checkCache);
+ }
+
+ public void testInsertWriterAndLibraryNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertWriterLibrary(checkCache);
+ }
+
+ /**
+ * Create the library and a writer within the library.<br>
+ * Store the library to the data base.<br>
+ * Fetch back the library from the data base.<br>
+ * Identify the writer object assigned to libray.<br>
+ * Check whether the attribute eContainer is set at the writer object.
+ *
+ * @param checkCache
+ */
+ private void verifyInsertWriterLibrary(boolean checkCache) {
+
+ beginTransaction();
+
+ Writer writer = createAnonymousWriter(em);
+ String writerName = writer.getName();
+ Library library = createAnonymousLibrary(em);
+ String libraryName = library.getName();
+ library.getWriters().add(writer);
+ commitTransaction();
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ Writer actualWriter = findWriterWithName(em, writerName);
+ assertNotNull("writer", actualWriter);
+ assertEquals("writer name", writerName, actualWriter.getName());
+ assertNotNull("Field Actual/Writer.eContainer not set", actualWriter.eContainer());
+ int containerFeatureID = ((InternalEObject) writer).eContainerFeatureID();
+ int actualContainerFeatureID = ((InternalEObject) actualWriter).eContainerFeatureID();
+ assertEquals("Containment Feature Id DB Writer", containerFeatureID, actualContainerFeatureID);
+
+ Library actualLibrary = findLibraryWithName(em, libraryName);
+ assertNotNull("library missing", actualLibrary);
+
+ Writer actualLibraryWriter = actualLibrary.getWriters().get(0);
+ assertNotNull("writer missing", actualLibraryWriter);
+ assertEquals("writer name", writerName, actualLibraryWriter.getName());
+ assertEquals("Writer Check", actualWriter, actualLibraryWriter);
+
+ // verify whether the field eContainer is set
+ assertNotNull("Field Library/Writer.eContainer not set", actualLibraryWriter.eContainer());
+ assertEquals("Containment Relationship", actualLibrary, actualLibraryWriter.eContainer());
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEContainerLibraryTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEContainerLibraryTest.java
new file mode 100755
index 000000000..8820b6fb3
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEContainerLibraryTest.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+public class LibraryEContainerLibraryTest extends LibraryJPATest {
+
+ public LibraryEContainerLibraryTest(String name) {
+ super(name);
+ }
+
+ public void testInsertWriterAndBooksAndLibraryWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertWriterBookLibrary(checkCache);
+ }
+
+ public void testInsertWriterAndBooksAndLibraryNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertWriterBookLibrary(checkCache);
+ }
+
+ /**
+ * Create a library object model holding a library, writer and book object. Fetches back the library object from the
+ * data base. Check whether the containment relationship is correctly set up at the field eContainer of the book and
+ * writer objects.
+ *
+ * @param checkCache
+ */
+ private void verifyInsertWriterBookLibrary(boolean checkCache) {
+
+ beginTransaction();
+ Writer writer = createAnonymousWriterWithOneBook(em);
+ String writerName = writer.getName();
+ Book book = writer.getBooks().get(0);
+ String bookTitle = book.getTitle();
+ Library library = createAnonymousLibrary(em);
+ String libraryName = library.getName();
+ library.getBooks().put(book.getTitle(), book);
+ library.getWriters().add(writer);
+
+ commitTransaction();
+
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ Library actualLibrary = findLibraryWithName(em, libraryName);
+ Book actualLibraryBook = actualLibrary.getBooks().get(bookTitle);
+ assertNotNull("book missing", actualLibraryBook);
+
+ Writer actualLibraryWriter = actualLibrary.getWriters().get(0);
+ assertNotNull("writer missing", actualLibraryWriter);
+ assertEquals("writer name", writerName, actualLibraryWriter.getName());
+
+ // verify whether the field eContainer is set
+ assertNotNull("Field Library/Book.eContainer not set", actualLibraryBook.eContainer());
+ assertNotNull("Field Library/Writer.eContainer not set", actualLibraryWriter.eContainer());
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEContainerTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEContainerTest.java
new file mode 100755
index 000000000..0ed327955
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEContainerTest.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+public class LibraryEContainerTest extends LibraryJPATest {
+
+ public LibraryEContainerTest(String name) {
+ super(name);
+ }
+
+ public void testInsertWriterAndBooksAndLibraryWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertWriterBookLibrary(checkCache);
+ }
+
+ public void testInsertWriterAndBooksAndLibraryNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertWriterBookLibrary(checkCache);
+ }
+
+ /**
+ * The test case creates a library object model holding a library, writer and book object. The writer and book
+ * objects are directly fetched back from the data base. Check whether the containment relationship is correctly set
+ * up at the field eContainer of the book and writer objects.
+ *
+ * @param checkCache
+ */
+ private void verifyInsertWriterBookLibrary(boolean checkCache) {
+
+ beginTransaction();
+ Writer writer = createAnonymousWriterWithOneBook(em);
+ String writerName = writer.getName();
+ Book book = writer.getBooks().get(0);
+ String bookTitle = book.getTitle();
+ Library library = createAnonymousLibrary(em);
+ library.getBooks().put(book.getTitle(), book);
+ library.getWriters().add(writer);
+ commitTransaction();
+
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ Writer actualWriter = findWriterWithName(em, writerName);
+ assertNotNull("writer", actualWriter);
+ assertEquals("writer name", writerName, actualWriter.getName());
+
+ Book actualBook = findBookWithTitle(em, bookTitle);
+ assertNotNull("book", actualBook);
+ assertEquals("number of writer books", 1, actualWriter.getBooks().size());
+ Book actualWriterBook = actualWriter.getBooks().get(0);
+ assertEquals("book/writer book", actualBook, actualWriterBook);
+ assertEquals("writer book", actualWriter.getBooks().get(0), actualBook);
+
+ // verify whether the field eContainer is set
+ assertNotNull("Field Actual/Writer.eContainer not set", actualWriter.eContainer());
+ assertNotNull("Field Actual/Book.eContainer not set", actualBook.eContainer());
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEnvironmentTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEnvironmentTest.java
new file mode 100755
index 000000000..a2cfc84b5
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryEnvironmentTest.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.Address;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Publisher;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Style;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Translator;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+public class LibraryEnvironmentTest extends LibraryJPATest {
+
+ public LibraryEnvironmentTest(String name) {
+
+ super(name);
+ }
+
+ public void testLibraryEnvironmentWithCache() throws Exception {
+
+ boolean checkCache = true;
+ verifyLibraryEnvironment(checkCache);
+ }
+
+ public void testLibraryEnvironmentNoCache() throws Exception {
+
+ boolean checkCache = false;
+ verifyLibraryEnvironment(checkCache);
+ }
+
+ private void verifyLibraryEnvironment(boolean checkCache) {
+
+ beginTransaction();
+
+ // Create the Test Environment
+
+ Library library = setupLibraryEnvironment(em);
+
+ String libraryName = library.getName();
+
+ // put the data to the data base
+
+ commitTransaction();
+
+ // set the cache usage
+
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ // fetch back the library
+
+ Library dbLibrary = findLibraryWithName(em, libraryName);
+
+ // verify
+
+ assertNotNull("dbLibray not found", dbLibrary);
+ assertEquals("dbLibrary.name", libraryName, dbLibrary.getName());
+
+ Book dbBook = (Book) dbLibrary.getBooks().values().toArray()[0];
+ Writer dbWriter = dbLibrary.getWriters().get(0);
+
+ assertNotNull("dbBook not found", dbBook);
+ assertNotNull("dbWriter not found", dbWriter);
+
+ Translator dbTranslator = dbBook.getTranslator();
+ Address dbAddress = dbWriter.getAddress();
+ Publisher dbPublisher = dbWriter.getPublishers().get(0);
+ Style dbStyle = (Style) dbBook.getStyles().values().toArray()[0];
+
+ assertNotNull("dbTranslator not found", dbTranslator);
+ assertNotNull("dbAddress not found", dbAddress);
+ assertNotNull("dbPublisher not found", dbPublisher);
+ assertNotNull("dbStyle not found", dbStyle);
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryJPATest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryJPATest.java
new file mode 100755
index 000000000..249472d4e
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryJPATest.java
@@ -0,0 +1,236 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import java.util.List;
+
+import javax.persistence.EntityManager;
+
+import junit.framework.AssertionFailedError;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.Address;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.BookCategory;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Cover;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.LibraryFactory;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Publisher;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Style;
+import org.eclipse.emf.teneo.eclipselink.examples.library.TWriterType;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Translator;
+import org.eclipse.emf.teneo.eclipselink.examples.library.TypeWriter;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+import org.eclipse.emf.teneo.eclipselink.examples.library.impl.LibraryFactoryImpl;
+
+public abstract class LibraryJPATest extends JPATest {
+
+ public LibraryJPATest(String name) {
+ super(name);
+ }
+
+ @Override
+ protected String getPersistenceUnitName() {
+ return "library";
+ }
+
+ @Override
+ protected void cleanDatabase(EntityManager em) {
+ // delete does not cascade so order is important
+ em.createQuery("delete from Publisher o").executeUpdate();
+ em.createQuery("delete from StringToBookMapEntry o").executeUpdate();
+ em.createQuery("delete from BookStylesMapEntry o").executeUpdate();
+ em.createQuery("delete from Cover o").executeUpdate();
+ em.createQuery("delete from Book o").executeUpdate();
+ em.createQuery("delete from Translator o").executeUpdate();
+ em.createQuery("delete from Writer o").executeUpdate();
+ em.createQuery("delete from TypeWriter o").executeUpdate();
+ em.createQuery("delete from Address o").executeUpdate();
+ em.createQuery("delete from Library o").executeUpdate();
+ em.createQuery("delete from Style o").executeUpdate();
+ }
+
+ protected static final LibraryFactory factory = LibraryFactoryImpl.eINSTANCE;
+
+ protected static void assertBookListContains(List<Book> books, Book firstBook) {
+ for (Book each : books) {
+ try {
+ assertBooksEqual(each, firstBook);
+ return; // found
+ } catch (AssertionFailedError e) {
+ }
+ }
+ }
+
+ protected static void assertBooksEqual(Book expectedBook, Book actualBook) {
+ assertEquals("author", expectedBook.getAuthor(), actualBook.getAuthor());
+ assertEquals("title", expectedBook.getTitle(), actualBook.getTitle());
+ assertEquals("category", expectedBook.getCategory(), actualBook.getCategory());
+ assertEquals("pages", expectedBook.getPages(), actualBook.getPages());
+ }
+
+ protected Book createAnonymousBookForWriter(EntityManager em, Writer writer) {
+ Book book = createAnonymousBook(em);
+ book.setAuthor(writer);
+ writer.getBooks().add(book);
+ return book;
+ }
+
+ protected Book createAnonymousBook(EntityManager em) {
+ Book book = factory.createBook();
+ em.persist(book);
+ book.setCategory(BookCategory.BIOGRAPHY);
+ book.setPages(100);
+ book.setTitle(getAnonymousString());
+ return book;
+ }
+
+ protected Book createAnonymousBookWithCover(EntityManager em) {
+ Book book = createAnonymousBook(em);
+ Cover cover = factory.createCover();
+ cover.setColored(true);
+ book.setCover(cover);
+ return book;
+ }
+
+ protected Writer createAnonymousWriter(EntityManager em) {
+ Writer writer = factory.createWriter();
+
+ em.persist(writer);
+ writer.setName(getAnonymousString());
+ return writer;
+ }
+
+ protected Library createAnonymousLibrary(EntityManager em) {
+ Library library = factory.createLibrary();
+ em.persist(library);
+ library.setName(getAnonymousString());
+ return library;
+ }
+
+ protected Writer createAnonymousWriterWithOneBook(EntityManager em) {
+ Writer writer = createAnonymousWriter(em);
+ createAnonymousBookForWriter(em, writer);
+ return writer;
+ }
+
+ protected Writer createAnonymousWriterWithAddress(EntityManager em) {
+ Writer writer = createAnonymousWriter(em);
+ createAnonymousAddressForWriter(em, writer);
+ return writer;
+ }
+
+ protected Address createAnonymousAddressForWriter(EntityManager em, Writer writer) {
+ Address address = factory.createAddress();
+ address.setTown(getAnonymousString());
+ em.persist(address);
+ writer.setAddress(address);
+ return address;
+ }
+
+ protected Publisher createAnonymousPublisher(EntityManager em) {
+ Publisher publisher = factory.createPublisher();
+ publisher.setName(getAnonymousString());
+ em.persist(publisher);
+ return publisher;
+ }
+
+ protected Book createAnonymousBookWithTranslator(EntityManager em) {
+ Book book = createAnonymousBook(em);
+ book.setTranslator(createAnonymousTranslator(em));
+ return book;
+ }
+
+ protected Translator createAnonymousTranslator(EntityManager em) {
+ Translator translator = factory.createTranslator();
+ translator.setName(getAnonymousString());
+ translator.setLocation("Stuttgart");
+ em.persist(translator);
+ return translator;
+ }
+
+ protected Book createAnonymousBookWithStyles(EntityManager em) {
+ Book book = createAnonymousBook(em);
+ Style style1 = createAnonymousStyle(em);
+ Style style2 = createAnonymousStyle(em);
+ book.getStyles().put(style1.getName(), style1);
+ book.getStyles().put(style2.getName(), style2);
+ return book;
+ }
+
+ protected Style createAnonymousStyle(EntityManager em) {
+ Style style = factory.createStyle();
+ style.setName(getAnonymousString());
+ em.persist(style);
+ return style;
+ }
+
+ protected TypeWriter createAnonymousTypewriter(EntityManager em) {
+ TypeWriter twriter = factory.createTypeWriter();
+ twriter.setMaker(getAnonymousString());
+ twriter.setType(TWriterType.COMPUTER);
+ em.persist(twriter);
+ return twriter;
+ }
+
+ protected Writer createAnonymousWriterWithTypeWriter(EntityManager em) {
+ Writer writer = createAnonymousWriter(em);
+ TypeWriter twriter = createAnonymousTypewriter(em);
+ writer.getTypewriters().add(twriter);
+ return writer;
+ }
+
+ protected Library setupLibraryEnvironment(EntityManager em) {
+
+ Library library = createAnonymousLibrary(em);
+
+ Book book = createAnonymousBookWithStyles(em);
+ library.getBooks().put(book.getTitle(), book);
+
+ Translator translator = createAnonymousTranslator(em);
+ book.setTranslator(translator);
+
+ Writer writer = createAnonymousWriterWithAddress(em);
+ library.getWriters().add(writer);
+
+ Publisher publisher = createAnonymousPublisher(em);
+ writer.getPublishers().add(publisher);
+ publisher.getWriters().add(writer);
+
+ return library;
+ }
+
+ protected Writer findWriterWithName(EntityManager em, String name) {
+ return (Writer) em.createQuery("select o from Writer o where o.name = :name").setParameter("name", name)
+ .getSingleResult();
+ }
+
+ protected Book findBookWithTitle(EntityManager em, String title) {
+ return (Book) em.createQuery("select o from Book o where o.title = :title").setParameter("title", title)
+ .getSingleResult();
+ }
+
+ protected Library findLibraryWithName(EntityManager em, String name) {
+ return (Library) em.createQuery("select o from Library o where o.name = :name").setParameter("name", name)
+ .getSingleResult();
+ }
+
+ protected Publisher findPublisherWithName(EntityManager em, String name) {
+ return (Publisher) em.createQuery("select o from Publisher o where o.name = :name").setParameter("name", name)
+ .getSingleResult();
+ }
+
+ protected TypeWriter findTypeWriterWithMaker(EntityManager em, String maker) {
+
+ return (TypeWriter) em.createQuery("select o from TypeWriter o where o.maker = :maker").setParameter("maker",
+ maker).getSingleResult();
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryXMIPersistenceTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryXMIPersistenceTest.java
new file mode 100755
index 000000000..9b50dae40
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/LibraryXMIPersistenceTest.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collections;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.XMIResource;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Book;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Library;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+public class LibraryXMIPersistenceTest extends LibraryJPATest {
+
+ public LibraryXMIPersistenceTest(String name) {
+ super(name);
+ }
+
+ public void testInsertWriterAndBooksAndLibraryWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertWriterBookLibrary(checkCache);
+ }
+
+ public void testInsertWriterAndBooksAndLibraryNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyInsertWriterBookLibrary(checkCache);
+ }
+
+ /**
+ * The test case creates a library object model holding a library, writer and book object. It generates a XMI file
+ * using the build in persistency API of EMF. The first XMI file is generated directly after creation of the library
+ * object model. A second XMI file is created based on the library object model which is read back from the data
+ * base. Both files shall be identical.
+ *
+ * @param checkCache
+ */
+ private void verifyInsertWriterBookLibrary(boolean checkCache) throws Exception {
+ beginTransaction();
+ Writer writer = createAnonymousWriterWithOneBook(em);
+ String writerName = writer.getName();
+ Book book = writer.getBooks().get(0);
+ String bookTitle = book.getTitle();
+ Library library = createAnonymousLibrary(em);
+ String libraryName = library.getName();
+ library.getBooks().put(book.getTitle(), book);
+ library.getWriters().add(writer);
+
+ File tempFile = File.createTempFile("temp", "library.xmi");
+ saveToXMIFile(library, tempFile);
+
+ commitTransaction();
+ // verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ Writer actualWriter = findWriterWithName(em, writerName);
+ assertNotNull("writer", actualWriter);
+ assertEquals("writer name", writerName, actualWriter.getName());
+
+ Book actualBook = findBookWithTitle(em, bookTitle);
+ assertNotNull("book", actualBook);
+ assertEquals("number of writer books", 1, actualWriter.getBooks().size());
+ Book actualWriterBook = actualWriter.getBooks().get(0);
+ assertEquals("book/writer book", actualBook, actualWriterBook);
+ assertEquals("writer book", actualWriter.getBooks().get(0), actualBook);
+
+ Library actualLibrary = findLibraryWithName(em, libraryName);
+ Book actualLibraryBook = actualLibrary.getBooks().get(bookTitle);
+ assertEquals("book/library book", actualBook, actualLibraryBook);
+ Writer actualLibraryWriter = actualLibrary.getWriters().get(0);
+ assertEquals("writer/library writer", actualWriter, actualLibraryWriter);
+
+ // Start the writing to XMI
+
+ saveToXMIFile(actualLibrary, tempFile);
+
+ }
+
+ /**
+ * The private method saveToXMIFile allocates a resource set and stores the contents of the library object model to
+ * a XMI file.
+ *
+ * @param library
+ * The root object of the library object model
+ * @param fileURI
+ * The name of the file "file://C:/<file name>"
+ * @throws IOException
+ */
+ private void saveToXMIFile(Library library, File aFile) throws IOException {
+ new ResourceSetImpl();
+ URI resURI = URI.createFileURI(aFile.getAbsolutePath());
+ XMIResource xmiResource = new XMIResourceImpl(resURI);
+
+ xmiResource.getContents().add(library);
+
+ FileWriter fw = new FileWriter(aFile);
+ xmiResource.save(fw, Collections.EMPTY_MAP);
+ fw.close();
+ }
+} \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/ManagedTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/ManagedTest.java
new file mode 100755
index 000000000..37e0d0d8f
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/ManagedTest.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+public abstract class ManagedTest extends TestCase {
+ private static List<ManagedTest> runningTests = new ArrayList<ManagedTest>();
+
+ public ManagedTest(String sTestName) {
+ super(sTestName);
+ registerTest();
+ }
+
+ private void registerTest() {
+ runningTests.add(this);
+ }
+
+ private void unregisterTest() {
+ runningTests.remove(this);
+ if (runningTests.isEmpty()) {
+ allTestsComplete();
+ }
+ }
+
+ /**
+ * Called when all the tests in the current suite are have been run.
+ */
+ protected abstract void allTestsComplete();
+
+ @Override
+ protected void tearDown() throws Exception {
+ unregisterTest();
+ super.tearDown();
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/OneToOneTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/OneToOneTest.java
new file mode 100755
index 000000000..461fc1d01
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/OneToOneTest.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.Address;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+public class OneToOneTest extends LibraryJPATest {
+
+ public OneToOneTest(String name) {
+ super(name);
+ }
+
+ public void testWriteRead() throws Exception {
+ em.getTransaction().begin();
+ Writer writer = createAnonymousWriter(em);
+ String writerName = writer.getName();
+ Address address = createAnonymousAddressForWriter(em, writer);
+ String addressTown = address.getTown();
+ writer.setAddress(address);
+ em.getTransaction().commit();
+
+ Writer actualWriter = (Writer) em.createQuery("select o from Writer o where o.name = :name").setParameter(
+ "name", writerName).getSingleResult();
+ Address actualAddress = (Address) em.createQuery("select o from Address o where o.town = :town").setParameter(
+ "town", addressTown).getSingleResult();
+
+ assertEquals("writer address", actualWriter.getAddress(), actualAddress);
+ }
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/PublisherWriterTest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/PublisherWriterTest.java
new file mode 100755
index 000000000..474817284
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/PublisherWriterTest.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle and Geensys.
+ * 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:
+ * Oracle and Geensys - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests;
+
+import org.eclipse.emf.teneo.eclipselink.examples.library.Publisher;
+import org.eclipse.emf.teneo.eclipselink.examples.library.Writer;
+
+/**
+ * @author ebk2fe
+ * @version 1.0 (April 28th, 2006)
+ * <p>
+ * This test case creates a publisher object and assignes two writers to the publisher. The objects are
+ * committed to the data base. The publisher is fetched back from the data base.
+ */
+public class PublisherWriterTest extends LibraryJPATest {
+
+ private Writer writer1;
+ private String writer1Name;
+ private Writer writer2;
+ private String writer2Name;
+ private Publisher publisher;
+ private String publisherName;
+
+ public PublisherWriterTest(String name) {
+ super(name);
+ }
+
+ public void testInsertPublisherWriterWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertPublisherWriter(checkCache);
+ }
+
+ public void testInsertPublisherWriterNoCache() throws Exception {
+ boolean checkCache = true;
+ verifyInsertPublisherWriter(checkCache);
+ }
+
+ public void testRemovePublisherWriterWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyRemovePublisherWriter(checkCache);
+ }
+
+ public void testRemovePublisherWriterNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyRemovePublisherWriter(checkCache);
+ }
+
+ public void testMovePublisherWriterWithCache() throws Exception {
+ boolean checkCache = true;
+ verifyMovePublisherWriter(checkCache);
+ }
+
+ public void testMovePublisherWriterNoCache() throws Exception {
+ boolean checkCache = false;
+ verifyMovePublisherWriter(checkCache);
+ }
+
+ private void verifyMovePublisherWriter(boolean checkCache) {
+
+ // move a writer to a new publisher
+ beginTransaction();
+ Publisher publisher2 = createAnonymousPublisher(em);
+ String publisher2Name = publisher2.getName();
+
+ Publisher dbPublisher1 = findPublisherWithName(em, publisherName);
+ Writer dbWriter2 = findWriterWithName(em, writer2Name);
+
+ dbPublisher1.getWriters().remove(dbWriter2);
+ dbWriter2.getPublishers().remove(dbPublisher1);
+ dbWriter2.getPublishers().add(publisher2);
+ publisher2.getWriters().add(dbWriter2);
+ commitTransaction();
+
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+
+ // verify dissassociation
+ dbPublisher1 = findPublisherWithName(em, publisherName);
+ Publisher dbPublisher2 = findPublisherWithName(em, publisher2Name);
+ Writer dbWriter1 = findWriterWithName(em, writer1Name);
+ dbWriter2 = findWriterWithName(em, writer2Name);
+
+ assertNotNull("publisher1", dbPublisher1);
+ assertNotNull("publisher2", dbPublisher2);
+ assertNotNull("writer1", dbWriter1);
+ assertNotNull("writer2", dbWriter2);
+ assertEquals("writer1's publishers", 1, dbWriter1.getPublishers().size());
+ assertEquals("writer2's publishers", 1, dbWriter2.getPublishers().size());
+ assertEquals("publisher1's writers", 1, dbPublisher1.getWriters().size());
+ assertEquals("publisher2's writers", 1, dbPublisher2.getWriters().size());
+ assertEquals("publisher1's writer", dbWriter1, dbPublisher1.getWriters().get(0));
+ assertEquals("publisher2's writer", dbWriter2, dbPublisher2.getWriters().get(0));
+ assertEquals("writer1's publisher", dbPublisher1, dbWriter1.getPublishers().get(0));
+ assertEquals("writer2's publisher", dbPublisher2, dbWriter2.getPublishers().get(0));
+ }
+
+ private void verifyRemovePublisherWriter(boolean checkCache) {
+
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ // dissassociate a writer from a publisher
+ beginTransaction();
+ Publisher dbPublisher = findPublisherWithName(em, publisherName);
+ Writer dbWriter1 = findWriterWithName(em, writer1Name);
+
+ dbPublisher.getWriters().remove(dbWriter1);
+ dbWriter1.getPublishers().remove(dbPublisher);
+ commitTransaction();
+
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ // verify dissassociation
+ dbPublisher = findPublisherWithName(em, publisherName);
+ dbWriter1 = findWriterWithName(em, writer1Name);
+ Writer dbWriter2 = findWriterWithName(em, writer2Name);
+
+ assertNotNull("publisher not found", dbPublisher);
+ assertNotNull("writer1 not found", dbWriter1);
+ assertNotNull("writer2 not found", dbWriter2);
+ assertTrue("writer's publishers", dbWriter1.getPublishers().isEmpty());
+ assertEquals("num publisher's writers", 1, dbPublisher.getWriters().size());
+ assertEquals("publisher's writer", dbWriter2, dbPublisher.getWriters().get(0));
+ }
+
+ private void verifyInsertPublisherWriter(boolean checkCache) {
+ // the fixture setUp does the insert, now verify
+ if (!checkCache) {
+ reinitializeCachesAndEntityManager();
+ }
+ Publisher dbPublisher = findPublisherWithName(em, publisherName);
+
+ assertNotNull("publisher not found", dbPublisher);
+ assertEquals("publisher's writers", 2, dbPublisher.getWriters().size());
+
+ Writer dbWriter = dbPublisher.getWriters().get(0);
+ assertNotNull("writer not found", dbWriter);
+ assertEquals("writer's publisher", dbPublisher, dbWriter.getPublishers().get(0));
+ }
+
+ /**
+ * The test fixture consists of a single publisher with two writers.
+ */
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ beginTransaction();
+ publisher = createAnonymousPublisher(em);
+ publisherName = publisher.getName();
+ writer1 = createAnonymousWriter(em);
+ writer1Name = writer1.getName();
+ writer2 = createAnonymousWriter(em);
+ writer2Name = writer2.getName();
+ //
+ publisher.getWriters().add(writer1);
+ publisher.getWriters().add(writer2);
+ commitTransaction();
+ }
+
+}
diff --git a/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/TestSuppressedJPATest.java b/eclipselink/org.eclipse.emf.teneo.eclipselink.examples.library.orm.tests/src/org/eclipse/emf/teneo/eclipselink/examples/library/orm/tests/TestSuppressedJPATest.java
new file mode 100755
index 000000000..dd897d7bb
--- /dev/null
+++ b/