Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'eclipselink/org.eclipse.emf.teneo.orm')
-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
200 files changed, 60430 insertions, 0 deletions
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/.classpath b/eclipselink/org.eclipse.emf.teneo.orm/.classpath
new file mode 100755
index 000000000..64c5e31b7
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/.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.orm/.cvsignore b/eclipselink/org.eclipse.emf.teneo.orm/.cvsignore
new file mode 100755
index 000000000..ba077a403
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/.project b/eclipselink/org.eclipse.emf.teneo.orm/.project
new file mode 100755
index 000000000..3b1d01f3e
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.teneo.orm</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.orm/.settings/org.eclipse.jdt.core.prefs b/eclipselink/org.eclipse.emf.teneo.orm/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 000000000..7b2f62f62
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Mon Feb 08 06:57:09 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.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/.settings/org.eclipse.pde.core.prefs b/eclipselink/org.eclipse.emf.teneo.orm/.settings/org.eclipse.pde.core.prefs
new file mode 100755
index 000000000..024139cfe
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,5 @@
+#Sun Dec 21 11:26:26 CET 2008
+eclipse.preferences.version=1
+pluginProject.equinox=false
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/META-INF/MANIFEST.MF b/eclipselink/org.eclipse.emf.teneo.orm/META-INF/MANIFEST.MF
new file mode 100755
index 000000000..668652668
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Plugin.name
+Bundle-SymbolicName: org.eclipse.emf.teneo.orm;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Eclipse-BuddyPolicy: dependent
+Bundle-Vendor: %Plugin.providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.teneo.annotations;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.teneo;bundle-version="[1.0.0,2.0.0)";visibility:=reexport
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.teneo.jpa,
+ org.eclipse.emf.teneo.jpa.convert,
+ org.eclipse.emf.teneo.jpa.orm,
+ org.eclipse.emf.teneo.jpa.orm.impl,
+ org.eclipse.emf.teneo.jpa.orm.util
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/about.html b/eclipselink/org.eclipse.emf.teneo.orm/about.html
new file mode 100755
index 000000000..5a279453c
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/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.orm/about.ini b/eclipselink/org.eclipse.emf.teneo.orm/about.ini
new file mode 100755
index 000000000..1d17e5539
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/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.orm/about.properties b/eclipselink/org.eclipse.emf.teneo.orm/about.properties
new file mode 100755
index 000000000..55b04ffc5
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/about.properties
@@ -0,0 +1,46 @@
+#/**
+# * <copyright>
+# *
+# * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+# * All rights reserved. This program and the accompanying materials
+# * are made available under the terms of the Eclipse Public License v1.0
+# * which accompanies this distribution, and is available at
+# * http://www.eclipse.org/legal/epl-v10.html
+# *
+# * Contributors:
+# * Martin Taal - Initial API and implementation
+# *
+# * </copyright>
+# *
+# * $Id: about.properties,v 1.1 2009/03/15 23:45:03 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=Eclipse Modeling Framework Technology Object Relational Persistence
+
+featureText=Eclipse Modeling Framework Technology Object Relational Persistence \n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+(c) Copyright Springsite BV (The Netherlands) and others. 2006 - 2009. All rights reserved.\n\
+\n\
+Visit http://www.eclipse.org/emft
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/build.properties b/eclipselink/org.eclipse.emf.teneo.orm/build.properties
new file mode 100755
index 000000000..1433038ae
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/build.properties
@@ -0,0 +1,27 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.5 2010/02/04 10:53:02 mtaal Exp $
+
+bin.includes = .,\
+ model/,\
+ epl-v10.html,\
+ modeling32.png,\
+ about.ini,\
+ about.properties,\
+ copyright.txt,\
+ about.html,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+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.orm/copyright.txt b/eclipselink/org.eclipse.emf.teneo.orm/copyright.txt
new file mode 100755
index 000000000..00a634676
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/copyright.txt
@@ -0,0 +1,8 @@
+Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html
+
+Contributors:
+ Martin Taal \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/epl-v10.html b/eclipselink/org.eclipse.emf.teneo.orm/epl-v10.html
new file mode 100755
index 000000000..d7b88e941
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/epl-v10.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.orm/license.html b/eclipselink/org.eclipse.emf.teneo.orm/license.html
new file mode 100755
index 000000000..d7b88e941
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/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.orm/model/orm.ecore b/eclipselink/org.eclipse.emf.teneo.orm/model/orm.ecore
new file mode 100755
index 000000000..a2bda3733
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/model/orm.ecore
@@ -0,0 +1,2445 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="orm"
+ nsURI="http://java.sun.com/xml/ns/persistence/orm" nsPrefix="orm">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="qualified" value="false"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EEnum" name="AccessType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; This element determines how the persistence provider accesses the&#xA; state of an entity or embedded object.&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="access-type"/>
+ </eAnnotations>
+ <eLiterals name="PROPERTY"/>
+ <eLiterals name="FIELD" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="AccessTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="access-type:Object"/>
+ <details key="baseType" value="access-type"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AssociationOverride">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface AssociationOverride {&#xA; String name();&#xA; JoinColumn[] joinColumns();&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="association-override"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="joinColumn" lowerBound="1"
+ upperBound="-1" eType="#//JoinColumn" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="join-column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AttributeOverride">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface AttributeOverride {&#xA; String name();&#xA; Column column();&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="attribute-override"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="column" lowerBound="1"
+ eType="#//Column" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; This element contains the entity field or property mappings.&#xA; It may be sparsely populated to include only a subset of the&#xA; fields or properties. If metadata-complete for the entity is true&#xA; then the remainder of the attributes will be defaulted according&#xA; to the default rules.&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="attributes"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="id" upperBound="-1" eType="#//Id"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="id"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="embeddedId" eType="#//EmbeddedId"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="embedded-id"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="basic" upperBound="-1"
+ eType="#//Basic" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="basic"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="version" upperBound="-1"
+ eType="#//Version" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="version"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="manyToOne" upperBound="-1"
+ eType="#//ManyToOne" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="many-to-one"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="oneToMany" upperBound="-1"
+ eType="#//OneToMany" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="one-to-many"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="oneToOne" upperBound="-1"
+ eType="#//OneToOne" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="one-to-one"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="manyToMany" upperBound="-1"
+ eType="#//ManyToMany" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="many-to-many"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="embedded" upperBound="-1"
+ eType="#//Embedded" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="embedded"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transient" upperBound="-1"
+ eType="#//Transient" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="transient"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Basic">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface Basic {&#xA; FetchType fetch() default EAGER;&#xA; boolean optional() default true;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="basic"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="column" eType="#//Column"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="lob" eType="#//Lob" containment="true"
+ resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="lob"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="temporal" eType="#//Temporal">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="temporal"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="enumerated" eType="#//Enumerated">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="enumerated"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fetch" eType="#//FetchType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="fetch"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="optional" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CascadeType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH};&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="cascade-type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cascadeAll" eType="#//EmptyType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="cascade-all"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cascadePersist" eType="#//EmptyType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="cascade-persist"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cascadeMerge" eType="#//EmptyType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="cascade-merge"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cascadeRemove" eType="#//EmptyType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="cascade-remove"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cascadeRefresh" eType="#//EmptyType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="cascade-refresh"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Column">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface Column {&#xA; String name() default &quot;&quot;;&#xA; boolean unique() default false;&#xA; boolean nullable() default true;&#xA; boolean insertable() default true;&#xA; boolean updatable() default true;&#xA; String columnDefinition() default &quot;&quot;;&#xA; String table() default &quot;&quot;;&#xA; int length() default 255;&#xA; int precision() default 0; // decimal precision&#xA; int scale() default 0; // decimal scale&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="column"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnDefinition" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="column-definition"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="insertable" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="insertable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="length" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="length"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ <eAnnotations source="teneo.escape">
+ <details key="value" value="true"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullable" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="nullable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="precision" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="precision"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="scale" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="scale"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="table" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="table"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="unique"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="updatable" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="updatable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColumnResult">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({}) @Retention(RUNTIME)&#xA; public @interface ColumnResult {&#xA; String name();&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="column-result"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DiscriminatorColumn">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE}) @Retention(RUNTIME)&#xA; public @interface DiscriminatorColumn {&#xA; String name() default &quot;DTYPE&quot;;&#xA; DiscriminatorType discriminatorType() default STRING;&#xA; String columnDefinition() default &quot;&quot;;&#xA; int length() default 31;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="discriminator-column"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnDefinition" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="column-definition"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="discriminatorType" eType="#//DiscriminatorType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="discriminator-type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="length" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="length"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ <eAnnotations source="teneo.escape">
+ <details key="value" value="true"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="DiscriminatorType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; public enum DiscriminatorType { STRING, CHAR, INTEGER };&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="discriminator-type"/>
+ </eAnnotations>
+ <eLiterals name="STRING"/>
+ <eLiterals name="CHAR" value="1"/>
+ <eLiterals name="INTEGER" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="DiscriminatorTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="discriminator-type:Object"/>
+ <details key="baseType" value="discriminator-type"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="DiscriminatorValue" instanceClassName="java.lang.String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE}) @Retention(RUNTIME)&#xA; public @interface DiscriminatorValue {&#xA; String value();&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="discriminator-value"/>
+ <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#string"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DocumentRoot">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value=""/>
+ <details key="kind" value="mixed"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mixed" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="elementWildcard"/>
+ <details key="name" value=":mixed"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="xMLNSPrefixMap" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ transient="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="xmlns:prefix"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="xSISchemaLocation" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ transient="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="xsi:schemaLocation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityMappings" upperBound="-2"
+ eType="#//EntityMappingsType" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="entity-mappings"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Embeddable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; Defines the settings and mappings for embeddable objects. Is &#xA; allowed to be sparsely populated and used in conjunction with &#xA; the annotations. Alternatively, the metadata-complete attribute &#xA; can be used to indicate that no annotations are to be processed &#xA; in the class. If this is the case then the defaulting rules will &#xA; be recursively applied.&#xA;&#xA; @Target({TYPE}) @Retention(RUNTIME)&#xA; public @interface Embeddable {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="embeddable"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="description"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" eType="#//EmbeddableAttributes"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="attributes"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" eType="#//AccessType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="access"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="class" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metadataComplete" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="metadata-complete"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EmbeddableAttributes">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="embeddable-attributes"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="basic" upperBound="-1"
+ eType="#//Basic" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="basic"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transient" upperBound="-1"
+ eType="#//Transient" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="transient"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Embedded">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface Embedded {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="embedded"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributeOverride" upperBound="-1"
+ eType="#//AttributeOverride" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="attribute-override"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EmbeddedId">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface EmbeddedId {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="embedded-id"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributeOverride" upperBound="-1"
+ eType="#//AttributeOverride" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="attribute-override"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EmptyType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="emptyType"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Entity">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; Defines the settings and mappings for an entity. Is allowed to be&#xA; sparsely populated and used in conjunction with the annotations.&#xA; Alternatively, the metadata-complete attribute can be used to &#xA; indicate that no annotations on the entity class (and its fields&#xA; or properties) are to be processed. If this is the case then &#xA; the defaulting rules for the entity and its subelements will &#xA; be recursively applied.&#xA;&#xA; @Target(TYPE) @Retention(RUNTIME)&#xA; public @interface Entity {&#xA; String name() default &quot;&quot;;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="entity"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="description"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="table" eType="#//Table"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="table"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="secondaryTable" upperBound="-1"
+ eType="#//SecondaryTable" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="secondary-table"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="primaryKeyJoinColumn" upperBound="-1"
+ eType="#//PrimaryKeyJoinColumn" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="primary-key-join-column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="idClass" eType="#//IdClass"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="id-class"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inheritance" eType="#//Inheritance"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="inheritance"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="discriminatorValue" eType="#//DiscriminatorValue">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="discriminator-value"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="discriminatorColumn" eType="#//DiscriminatorColumn"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="discriminator-column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sequenceGenerator" eType="#//SequenceGenerator"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="sequence-generator"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tableGenerator" eType="#//TableGenerator"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="table-generator"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="namedQuery" upperBound="-1"
+ eType="#//NamedQuery" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="named-query"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="namedNativeQuery" upperBound="-1"
+ eType="#//NamedNativeQuery" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="named-native-query"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sqlResultSetMapping" upperBound="-1"
+ eType="#//SqlResultSetMapping" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="sql-result-set-mapping"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="excludeDefaultListeners"
+ eType="#//EmptyType" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="exclude-default-listeners"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="excludeSuperclassListeners"
+ eType="#//EmptyType" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="exclude-superclass-listeners"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityListeners" eType="#//EntityListeners"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="entity-listeners"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="prePersist" eType="#//PrePersist"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="pre-persist"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postPersist" eType="#//PostPersist"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-persist"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preRemove" eType="#//PreRemove"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="pre-remove"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postRemove" eType="#//PostRemove"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-remove"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preUpdate" eType="#//PreUpdate"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="pre-update"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postUpdate" eType="#//PostUpdate"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-update"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postLoad" eType="#//PostLoad"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-load"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributeOverride" upperBound="-1"
+ eType="#//AttributeOverride" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="attribute-override"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="associationOverride" upperBound="-1"
+ eType="#//AssociationOverride" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="association-override"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" eType="#//Attributes"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="attributes"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" eType="#//AccessType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="access"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="class" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metadataComplete" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="metadata-complete"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntityListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; Defines an entity listener to be invoked at lifecycle events&#xA; for the entities that list this listener.&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="entity-listener"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="prePersist" eType="#//PrePersist"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="pre-persist"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postPersist" eType="#//PostPersist"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-persist"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preRemove" eType="#//PreRemove"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="pre-remove"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postRemove" eType="#//PostRemove"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-remove"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preUpdate" eType="#//PreUpdate"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="pre-update"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postUpdate" eType="#//PostUpdate"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-update"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postLoad" eType="#//PostLoad"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-load"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="class" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntityListeners">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE}) @Retention(RUNTIME)&#xA; public @interface EntityListeners {&#xA; Class[] value();&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="entity-listeners"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityListener" upperBound="-1"
+ eType="#//EntityListener" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="entity-listener"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntityMappingsType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; The entity-mappings element is the root element of an mapping&#xA; file. It contains the following four types of elements:&#xA;&#xA; 1. The persistence-unit-metadata element contains metadata&#xA; for the entire persistence unit. It is undefined if this element&#xA; occurs in multiple mapping files within the same persistence unit.&#xA; &#xA; 2. The package, schema, catalog and access elements apply to all of&#xA; the entity, mapped-superclass and embeddable elements defined in&#xA; the same file in which they occur.&#xA;&#xA; 3. The sequence-generator, table-generator, named-query,&#xA; named-native-query and sql-result-set-mapping elements are global&#xA; to the persistence unit. It is undefined to have more than one&#xA; sequence-generator or table-generator of the same name in the same&#xA; or different mapping files in a persistence unit. It is also &#xA; undefined to have more than one named-query or named-native-query&#xA; of the same name in the same or different mapping files in a &#xA; persistence unit.&#xA;&#xA; 4. The entity, mapped-superclass and embeddable elements each define&#xA; the mapping information for a managed persistent class. The mapping&#xA; information contained in these elements may be complete or it may&#xA; be partial.&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="entity-mappings_._type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="description"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="persistenceUnitMetadata"
+ eType="#//PersistenceUnitMetadata" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="persistence-unit-metadata"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="package" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="package"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="schema" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="schema"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalog" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="catalog"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" eType="#//AccessType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="access"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sequenceGenerator" upperBound="-1"
+ eType="#//SequenceGenerator" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="sequence-generator"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tableGenerator" upperBound="-1"
+ eType="#//TableGenerator" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="table-generator"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="namedQuery" upperBound="-1"
+ eType="#//NamedQuery" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="named-query"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="namedNativeQuery" upperBound="-1"
+ eType="#//NamedNativeQuery" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="named-native-query"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sqlResultSetMapping" upperBound="-1"
+ eType="#//SqlResultSetMapping" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="sql-result-set-mapping"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mappedSuperclass" upperBound="-1"
+ eType="#//MappedSuperclass" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="mapped-superclass"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entity" upperBound="-1"
+ eType="#//Entity" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="entity"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="embeddable" upperBound="-1"
+ eType="#//Embeddable" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="embeddable"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" lowerBound="1"
+ eType="#//VersionType" defaultValueLiteral="1.0" unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="version"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntityResult">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({}) @Retention(RUNTIME)&#xA; public @interface EntityResult {&#xA; Class entityClass();&#xA; FieldResult[] fields() default {};&#xA; String discriminatorColumn() default &quot;&quot;;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="entity-result"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="fieldResult" upperBound="-1"
+ eType="#//FieldResult" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="field-result"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="discriminatorColumn" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="discriminator-column"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="entityClass" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="entity-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="Enumerated" instanceClassName="org.eclipse.emf.common.util.Enumerator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface Enumerated {&#xA; EnumType value() default ORDINAL;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="enumerated"/>
+ <details key="baseType" value="enum-type"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="EnumType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; public enum EnumType {&#xA; ORDINAL,&#xA; STRING&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="enum-type"/>
+ </eAnnotations>
+ <eLiterals name="ORDINAL"/>
+ <eLiterals name="STRING" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="EnumTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="enum-type:Object"/>
+ <details key="baseType" value="enum-type"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="FetchType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; public enum FetchType { LAZY, EAGER };&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="fetch-type"/>
+ </eAnnotations>
+ <eLiterals name="LAZY"/>
+ <eLiterals name="EAGER" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="FetchTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="fetch-type:Object"/>
+ <details key="baseType" value="fetch-type"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FieldResult">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({}) @Retention(RUNTIME)&#xA; public @interface FieldResult {&#xA; String name();&#xA; String column();&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="field-result"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="column" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="column"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GeneratedValue">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface GeneratedValue {&#xA; GenerationType strategy() default AUTO;&#xA; String generator() default &quot;&quot;;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="generated-value"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="generator" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="generator"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="strategy" eType="#//GenerationType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="strategy"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenerationType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="generation-type"/>
+ </eAnnotations>
+ <eLiterals name="TABLE"/>
+ <eLiterals name="SEQUENCE" value="1"/>
+ <eLiterals name="IDENTITY" value="2"/>
+ <eLiterals name="AUTO" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="GenerationTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="generation-type:Object"/>
+ <details key="baseType" value="generation-type"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Id">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface Id {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="id"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="column" eType="#//Column"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="generatedValue" eType="#//GeneratedValue"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="generated-value"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="temporal" eType="#//Temporal">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="temporal"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tableGenerator" eType="#//TableGenerator"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="table-generator"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sequenceGenerator" eType="#//SequenceGenerator"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="sequence-generator"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IdClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE}) @Retention(RUNTIME)&#xA; public @interface IdClass {&#xA; Class value();&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="id-class"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="class" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Inheritance">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE}) @Retention(RUNTIME)&#xA; public @interface Inheritance {&#xA; InheritanceType strategy() default SINGLE_TABLE;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="inheritance"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="strategy" eType="#//InheritanceType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="strategy"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="InheritanceType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; public enum InheritanceType&#xA; { SINGLE_TABLE, JOINED, TABLE_PER_CLASS};&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="inheritance-type"/>
+ </eAnnotations>
+ <eLiterals name="SINGLETABLE" literal="SINGLE_TABLE"/>
+ <eLiterals name="JOINED" value="1"/>
+ <eLiterals name="TABLEPERCLASS" value="2" literal="TABLE_PER_CLASS"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="InheritanceTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="inheritance-type:Object"/>
+ <details key="baseType" value="inheritance-type"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JoinColumn">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface JoinColumn {&#xA; String name() default &quot;&quot;;&#xA; String referencedColumnName() default &quot;&quot;;&#xA; boolean unique() default false;&#xA; boolean nullable() default true;&#xA; boolean insertable() default true;&#xA; boolean updatable() default true;&#xA; String columnDefinition() default &quot;&quot;;&#xA; String table() default &quot;&quot;;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="join-column"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnDefinition" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="column-definition"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="insertable" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="insertable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ <eAnnotations source="teneo.escape">
+ <details key="value" value="true"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullable" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="nullable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referencedColumnName" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="referenced-column-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="table" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="table"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="unique"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="updatable" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="updatable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JoinTable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface JoinTable {&#xA; String name() default &quot;&quot;;&#xA; String catalog() default &quot;&quot;;&#xA; String schema() default &quot;&quot;;&#xA; JoinColumn[] joinColumns() default {};&#xA; JoinColumn[] inverseJoinColumns() default {};&#xA; UniqueConstraint[] uniqueConstraints() default {};&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="join-table"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="joinColumn" upperBound="-1"
+ eType="#//JoinColumn" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="join-column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inverseJoinColumn" upperBound="-1"
+ eType="#//JoinColumn" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="inverse-join-column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="uniqueConstraint" upperBound="-1"
+ eType="#//UniqueConstraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="unique-constraint"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalog" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="catalog"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ <eAnnotations source="teneo.escape">
+ <details key="value" value="true"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="schema" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="schema"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Lob">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface Lob {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="lob"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ManyToMany">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface ManyToMany {&#xA; Class targetEntity() default void.class;&#xA; CascadeType[] cascade() default {};&#xA; FetchType fetch() default LAZY;&#xA; String mappedBy() default &quot;&quot;;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="many-to-many"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="orderBy" eType="#//OrderBy">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="order-by"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapKey" eType="#//MapKey"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="map-key"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="joinTable" eType="#//JoinTable"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="join-table"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cascade" eType="#//CascadeType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="cascade"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fetch" eType="#//FetchType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="fetch"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mappedBy" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="mapped-by"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetEntity" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="target-entity"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ManyToOne">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface ManyToOne {&#xA; Class targetEntity() default void.class;&#xA; CascadeType[] cascade() default {};&#xA; FetchType fetch() default EAGER;&#xA; boolean optional() default true;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="many-to-one"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="joinColumn" upperBound="-1"
+ eType="#//JoinColumn" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="join-column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="joinTable" eType="#//JoinTable"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="join-table"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cascade" eType="#//CascadeType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="cascade"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fetch" eType="#//FetchType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="fetch"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="optional" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetEntity" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="target-entity"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MapKey">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface MapKey {&#xA; String name() default &quot;&quot;;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="map-key"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MappedSuperclass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; Defines the settings and mappings for a mapped superclass. Is &#xA; allowed to be sparsely populated and used in conjunction with &#xA; the annotations. Alternatively, the metadata-complete attribute &#xA; can be used to indicate that no annotations are to be processed &#xA; If this is the case then the defaulting rules will be recursively &#xA; applied.&#xA;&#xA; @Target(TYPE) @Retention(RUNTIME)&#xA; public @interface MappedSuperclass{}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="mapped-superclass"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="description"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="idClass" eType="#//IdClass"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="id-class"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="excludeDefaultListeners"
+ eType="#//EmptyType" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="exclude-default-listeners"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="excludeSuperclassListeners"
+ eType="#//EmptyType" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="exclude-superclass-listeners"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityListeners" eType="#//EntityListeners"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="entity-listeners"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="prePersist" eType="#//PrePersist"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="pre-persist"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postPersist" eType="#//PostPersist"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-persist"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preRemove" eType="#//PreRemove"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="pre-remove"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postRemove" eType="#//PostRemove"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-remove"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preUpdate" eType="#//PreUpdate"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="pre-update"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postUpdate" eType="#//PostUpdate"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-update"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postLoad" eType="#//PostLoad"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="post-load"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" eType="#//Attributes"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="attributes"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" eType="#//AccessType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="access"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="class" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metadataComplete" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="metadata-complete"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NamedNativeQuery">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE}) @Retention(RUNTIME)&#xA; public @interface NamedNativeQuery {&#xA; String name();&#xA; String query();&#xA; QueryHint[] hints() default {};&#xA; Class resultClass() default void.class;&#xA; String resultSetMapping() default &quot;&quot;; //named SqlResultSetMapping&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="named-native-query"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="query" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="query"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hint" upperBound="-1" eType="#//QueryHint"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="hint"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resultClass" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="result-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resultSetMapping" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="result-set-mapping"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NamedQuery">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE}) @Retention(RUNTIME)&#xA; public @interface NamedQuery {&#xA; String name();&#xA; String query();&#xA; QueryHint[] hints() default {};&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="named-query"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="query" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="query"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hint" upperBound="-1" eType="#//QueryHint"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="hint"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OneToMany">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface OneToMany {&#xA; Class targetEntity() default void.class;&#xA; CascadeType[] cascade() default {};&#xA; FetchType fetch() default LAZY;&#xA; String mappedBy() default &quot;&quot;;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="one-to-many"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="orderBy" eType="#//OrderBy">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="order-by"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapKey" eType="#//MapKey"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="map-key"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="joinTable" eType="#//JoinTable"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="join-table"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="joinColumn" upperBound="-1"
+ eType="#//JoinColumn" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="join-column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cascade" eType="#//CascadeType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="cascade"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fetch" eType="#//FetchType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="fetch"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mappedBy" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="mapped-by"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetEntity" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="target-entity"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OneToOne">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface OneToOne {&#xA; Class targetEntity() default void.class;&#xA; CascadeType[] cascade() default {};&#xA; FetchType fetch() default EAGER;&#xA; boolean optional() default true;&#xA; String mappedBy() default &quot;&quot;;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="one-to-one"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="primaryKeyJoinColumn" upperBound="-1"
+ eType="#//PrimaryKeyJoinColumn" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="primary-key-join-column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="joinColumn" upperBound="-1"
+ eType="#//JoinColumn" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="join-column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="joinTable" eType="#//JoinTable"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="join-table"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cascade" eType="#//CascadeType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="cascade"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fetch" eType="#//FetchType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="fetch"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mappedBy" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="mapped-by"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="optional" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetEntity" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="target-entity"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="OrderBy" instanceClassName="java.lang.String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface OrderBy {&#xA; String value() default &quot;&quot;;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="order-by"/>
+ <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#string"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PersistenceUnitDefaults">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; These defaults are applied to the persistence unit as a whole &#xA; unless they are overridden by local annotation or XML &#xA; element settings. &#xA; &#xA; schema - Used as the schema for all tables or secondary tables&#xA; that apply to the persistence unit&#xA; catalog - Used as the catalog for all tables or secondary tables&#xA; that apply to the persistence unit&#xA; access - Used as the access type for all managed classes in&#xA; the persistence unit&#xA; cascade-persist - Adds cascade-persist to the set of cascade options&#xA; in entity relationships of the persistence unit&#xA; entity-listeners - List of default entity listeners to be invoked &#xA; on each entity in the persistence unit. &#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="persistence-unit-defaults"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="schema" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="schema"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalog" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="catalog"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" eType="#//AccessType"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="access"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cascadePersist" eType="#//EmptyType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="cascade-persist"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityListeners" eType="#//EntityListeners"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="entity-listeners"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PersistenceUnitMetadata">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; Metadata that applies to the persistence unit and not just to &#xA; the mapping file in which it is contained. &#xA;&#xA; If the xml-mapping-metadata-complete element is specified then &#xA; the complete set of mapping metadata for the persistence unit &#xA; is contained in the XML mapping files for the persistence unit.&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="persistence-unit-metadata"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="xmlMappingMetadataComplete"
+ eType="#//EmptyType" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="xml-mapping-metadata-complete"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="persistenceUnitDefaults"
+ eType="#//PersistenceUnitDefaults" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="persistence-unit-defaults"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PostLoad">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD}) @Retention(RUNTIME)&#xA; public @interface PostLoad {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="post-load"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="methodName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="method-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PostPersist">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD}) @Retention(RUNTIME)&#xA; public @interface PostPersist {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="post-persist"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="methodName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="method-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PostRemove">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD}) @Retention(RUNTIME)&#xA; public @interface PostRemove {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="post-remove"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="methodName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="method-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PostUpdate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD}) @Retention(RUNTIME)&#xA; public @interface PostUpdate {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="post-update"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="methodName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="method-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PrePersist">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD}) @Retention(RUNTIME)&#xA; public @interface PrePersist {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="pre-persist"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="methodName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="method-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PreRemove">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD}) @Retention(RUNTIME)&#xA; public @interface PreRemove {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="pre-remove"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="methodName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="method-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PreUpdate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD}) @Retention(RUNTIME)&#xA; public @interface PreUpdate {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="pre-update"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="methodName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="method-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PrimaryKeyJoinColumn">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface PrimaryKeyJoinColumn {&#xA; String name() default &quot;&quot;;&#xA; String referencedColumnName() default &quot;&quot;;&#xA; String columnDefinition() default &quot;&quot;;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="primary-key-join-column"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnDefinition" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="column-definition"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referencedColumnName" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="referenced-column-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="QueryHint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({}) @Retention(RUNTIME) &#xA; public @interface QueryHint {&#xA; String name();&#xA; String value();&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="query-hint"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SecondaryTable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE}) @Retention(RUNTIME)&#xA; public @interface SecondaryTable {&#xA; String name();&#xA; String catalog() default &quot;&quot;;&#xA; String schema() default &quot;&quot;;&#xA; PrimaryKeyJoinColumn[] pkJoinColumns() default {};&#xA; UniqueConstraint[] uniqueConstraints() default {};&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="secondary-table"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="primaryKeyJoinColumn" upperBound="-1"
+ eType="#//PrimaryKeyJoinColumn" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="primary-key-join-column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="uniqueConstraint" upperBound="-1"
+ eType="#//UniqueConstraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="unique-constraint"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalog" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="catalog"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="schema" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="schema"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SequenceGenerator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface SequenceGenerator {&#xA; String name();&#xA; String sequenceName() default &quot;&quot;;&#xA; int initialValue() default 1;&#xA; int allocationSize() default 50;&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="sequence-generator"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="allocationSize" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="allocation-size"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialValue" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="initial-value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sequenceName" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="sequence-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SqlResultSetMapping">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE}) @Retention(RUNTIME)&#xA; public @interface SqlResultSetMapping {&#xA; String name();&#xA; EntityResult[] entities() default {};&#xA; ColumnResult[] columns() default {};&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="sql-result-set-mapping"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityResult" upperBound="-1"
+ eType="#//EntityResult" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="entity-result"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="columnResult" upperBound="-1"
+ eType="#//ColumnResult" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="column-result"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Table">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE}) @Retention(RUNTIME)&#xA; public @interface Table {&#xA; String name() default &quot;&quot;;&#xA; String catalog() default &quot;&quot;;&#xA; String schema() default &quot;&quot;;&#xA; UniqueConstraint[] uniqueConstraints() default {};&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="table"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="uniqueConstraint" upperBound="-1"
+ eType="#//UniqueConstraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="unique-constraint"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalog" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="catalog"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ <eAnnotations source="teneo.escape">
+ <details key="value" value="true"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="schema" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="schema"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TableGenerator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface TableGenerator {&#xA; String name();&#xA; String table() default &quot;&quot;;&#xA; String catalog() default &quot;&quot;;&#xA; String schema() default &quot;&quot;;&#xA; String pkColumnName() default &quot;&quot;;&#xA; String valueColumnName() default &quot;&quot;;&#xA; String pkColumnValue() default &quot;&quot;;&#xA; int initialValue() default 0;&#xA; int allocationSize() default 50;&#xA; UniqueConstraint[] uniqueConstraints() default {};&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="table-generator"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="uniqueConstraint" upperBound="-1"
+ eType="#//UniqueConstraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="unique-constraint"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="allocationSize" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="allocation-size"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalog" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="catalog"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialValue" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="initial-value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pkColumnName" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="pk-column-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pkColumnValue" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="pk-column-value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="schema" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="schema"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="table" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="table"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueColumnName" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="value-column-name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="Temporal" instanceClassName="org.eclipse.emf.common.util.Enumerator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface Temporal {&#xA; TemporalType value();&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="temporal"/>
+ <details key="baseType" value="temporal-type"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TemporalType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; public enum TemporalType {&#xA; DATE, // java.sql.Date&#xA; TIME, // java.sql.Time&#xA; TIMESTAMP // java.sql.Timestamp&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="temporal-type"/>
+ </eAnnotations>
+ <eLiterals name="DATE"/>
+ <eLiterals name="TIME" value="1"/>
+ <eLiterals name="TIMESTAMP" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="TemporalTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="temporal-type:Object"/>
+ <details key="baseType" value="temporal-type"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Transient">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface Transient {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="transient"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UniqueConstraint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({}) @Retention(RUNTIME)&#xA; public @interface UniqueConstraint {&#xA; String[] columnNames();&#xA; }&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="unique-constraint"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnName" unique="false"
+ lowerBound="1" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="column-name"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ <eAnnotations source="teneo.escape">
+ <details key="value" value="true"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Version">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xA;&#xA; @Target({METHOD, FIELD}) @Retention(RUNTIME)&#xA; public @interface Version {}&#xA;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="version"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="column" eType="#//Column"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="column"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="temporal" eType="#//Temporal">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="temporal"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="VersionType" instanceClassName="java.lang.String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="versionType"/>
+ <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#token"/>
+ <details key="pattern" value="[0-9]+(\.[0-9]+)*"/>
+ </eAnnotations>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/model/orm.genmodel b/eclipselink/org.eclipse.emf.teneo.orm/model/orm.genmodel
new file mode 100755
index 000000000..c4d7f00c1
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/model/orm.genmodel
@@ -0,0 +1,409 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.teneo.orm/src"
+ modelPluginID="org.eclipse.emf.teneo.orm" modelName="Orm" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="5.0" copyrightFields="false">
+ <foreignModel>orm.ecore</foreignModel>
+ <genPackages prefix="Orm" basePackage="org.eclipse.emf.teneo.jpa" resource="XML"
+ disposableProviderFactory="true" ecorePackage="orm.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="orm.ecore#//AccessType">
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//AccessType/PROPERTY"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//AccessType/FIELD"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="orm.ecore#//DiscriminatorType">
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//DiscriminatorType/STRING"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//DiscriminatorType/CHAR"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//DiscriminatorType/INTEGER"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="orm.ecore#//EnumType">
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//EnumType/ORDINAL"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//EnumType/STRING"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="orm.ecore#//FetchType">
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//FetchType/LAZY"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//FetchType/EAGER"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="orm.ecore#//GenerationType">
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//GenerationType/TABLE"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//GenerationType/SEQUENCE"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//GenerationType/IDENTITY"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//GenerationType/AUTO"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="orm.ecore#//InheritanceType">
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//InheritanceType/SINGLETABLE"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//InheritanceType/JOINED"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//InheritanceType/TABLEPERCLASS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="orm.ecore#//TemporalType">
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//TemporalType/DATE"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//TemporalType/TIME"/>
+ <genEnumLiterals ecoreEnumLiteral="orm.ecore#//TemporalType/TIMESTAMP"/>
+ </genEnums>
+ <genDataTypes ecoreDataType="orm.ecore#//AccessTypeObject"/>
+ <genDataTypes ecoreDataType="orm.ecore#//DiscriminatorTypeObject"/>
+ <genDataTypes ecoreDataType="orm.ecore#//DiscriminatorValue"/>
+ <genDataTypes ecoreDataType="orm.ecore#//Enumerated"/>
+ <genDataTypes ecoreDataType="orm.ecore#//EnumTypeObject"/>
+ <genDataTypes ecoreDataType="orm.ecore#//FetchTypeObject"/>
+ <genDataTypes ecoreDataType="orm.ecore#//GenerationTypeObject"/>
+ <genDataTypes ecoreDataType="orm.ecore#//InheritanceTypeObject"/>
+ <genDataTypes ecoreDataType="orm.ecore#//OrderBy"/>
+ <genDataTypes ecoreDataType="orm.ecore#//Temporal"/>
+ <genDataTypes ecoreDataType="orm.ecore#//TemporalTypeObject"/>
+ <genDataTypes ecoreDataType="orm.ecore#//VersionType"/>
+ <genClasses ecoreClass="orm.ecore#//AssociationOverride">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//AssociationOverride/joinColumn"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AssociationOverride/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//AttributeOverride">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//AttributeOverride/column"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AttributeOverride/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//Attributes">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Attributes/id"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Attributes/embeddedId"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Attributes/basic"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Attributes/version"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Attributes/manyToOne"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Attributes/oneToMany"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Attributes/oneToOne"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Attributes/manyToMany"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Attributes/embedded"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Attributes/transient"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//Basic">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Basic/column"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Basic/lob"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Basic/temporal"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Basic/enumerated"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Basic/fetch"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Basic/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Basic/optional"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//CascadeType">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//CascadeType/cascadeAll"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//CascadeType/cascadePersist"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//CascadeType/cascadeMerge"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//CascadeType/cascadeRemove"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//CascadeType/cascadeRefresh"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//Column">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Column/columnDefinition"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Column/insertable"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Column/length"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Column/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Column/nullable"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Column/precision"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Column/scale"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Column/table"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Column/unique"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Column/updatable"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//ColumnResult">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//ColumnResult/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//DiscriminatorColumn">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//DiscriminatorColumn/columnDefinition"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//DiscriminatorColumn/discriminatorType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//DiscriminatorColumn/length"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//DiscriminatorColumn/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//DocumentRoot">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//DocumentRoot/mixed"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference orm.ecore#//DocumentRoot/xMLNSPrefixMap"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference orm.ecore#//DocumentRoot/xSISchemaLocation"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//DocumentRoot/entityMappings"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//Embeddable">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Embeddable/description"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Embeddable/attributes"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Embeddable/access"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Embeddable/class"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Embeddable/metadataComplete"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//EmbeddableAttributes">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EmbeddableAttributes/basic"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EmbeddableAttributes/transient"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//Embedded">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Embedded/attributeOverride"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Embedded/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//EmbeddedId">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EmbeddedId/attributeOverride"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EmbeddedId/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//EmptyType"/>
+ <genClasses ecoreClass="orm.ecore#//Entity">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Entity/description"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/table"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/secondaryTable"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/primaryKeyJoinColumn"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/idClass"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/inheritance"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Entity/discriminatorValue"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/discriminatorColumn"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/sequenceGenerator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/tableGenerator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/namedQuery"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/namedNativeQuery"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/sqlResultSetMapping"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/excludeDefaultListeners"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/excludeSuperclassListeners"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/entityListeners"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/prePersist"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/postPersist"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/preRemove"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/postRemove"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/preUpdate"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/postUpdate"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/postLoad"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/attributeOverride"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/associationOverride"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Entity/attributes"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Entity/access"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Entity/class"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Entity/metadataComplete"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Entity/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//EntityListener">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityListener/prePersist"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityListener/postPersist"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityListener/preRemove"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityListener/postRemove"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityListener/preUpdate"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityListener/postUpdate"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityListener/postLoad"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityListener/class"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//EntityListeners">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityListeners/entityListener"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//EntityMappingsType">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsType/description"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsType/persistenceUnitMetadata"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsType/package"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsType/schema"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsType/catalog"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsType/access"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsType/sequenceGenerator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsType/tableGenerator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsType/namedQuery"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsType/namedNativeQuery"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsType/sqlResultSetMapping"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsType/mappedSuperclass"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsType/entity"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsType/embeddable"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsType/version"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//EntityResult">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityResult/fieldResult"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityResult/discriminatorColumn"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityResult/entityClass"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//FieldResult">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//FieldResult/column"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//FieldResult/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//GeneratedValue">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//GeneratedValue/generator"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//GeneratedValue/strategy"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//Id">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Id/column"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Id/generatedValue"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Id/temporal"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Id/tableGenerator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Id/sequenceGenerator"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Id/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//IdClass">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//IdClass/class"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//Inheritance">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Inheritance/strategy"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//JoinColumn">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//JoinColumn/columnDefinition"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//JoinColumn/insertable"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//JoinColumn/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//JoinColumn/nullable"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//JoinColumn/referencedColumnName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//JoinColumn/table"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//JoinColumn/unique"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//JoinColumn/updatable"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//JoinTable">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//JoinTable/joinColumn"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//JoinTable/inverseJoinColumn"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//JoinTable/uniqueConstraint"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//JoinTable/catalog"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//JoinTable/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//JoinTable/schema"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//Lob"/>
+ <genClasses ecoreClass="orm.ecore#//ManyToMany">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//ManyToMany/orderBy"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//ManyToMany/mapKey"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//ManyToMany/joinTable"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//ManyToMany/cascade"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//ManyToMany/fetch"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//ManyToMany/mappedBy"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//ManyToMany/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//ManyToMany/targetEntity"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//ManyToOne">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//ManyToOne/joinColumn"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//ManyToOne/joinTable"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//ManyToOne/cascade"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//ManyToOne/fetch"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//ManyToOne/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//ManyToOne/optional"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//ManyToOne/targetEntity"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//MapKey">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//MapKey/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//MappedSuperclass">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//MappedSuperclass/description"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/idClass"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/excludeDefaultListeners"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/excludeSuperclassListeners"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/entityListeners"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/prePersist"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/postPersist"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/preRemove"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/postRemove"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/preUpdate"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/postUpdate"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/postLoad"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//MappedSuperclass/attributes"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//MappedSuperclass/access"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//MappedSuperclass/class"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//MappedSuperclass/metadataComplete"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//NamedNativeQuery">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//NamedNativeQuery/query"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//NamedNativeQuery/hint"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//NamedNativeQuery/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//NamedNativeQuery/resultClass"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//NamedNativeQuery/resultSetMapping"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//NamedQuery">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//NamedQuery/query"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//NamedQuery/hint"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//NamedQuery/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//OneToMany">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//OneToMany/orderBy"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//OneToMany/mapKey"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//OneToMany/joinTable"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//OneToMany/joinColumn"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//OneToMany/cascade"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//OneToMany/fetch"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//OneToMany/mappedBy"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//OneToMany/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//OneToMany/targetEntity"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//OneToOne">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//OneToOne/primaryKeyJoinColumn"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//OneToOne/joinColumn"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//OneToOne/joinTable"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//OneToOne/cascade"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//OneToOne/fetch"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//OneToOne/mappedBy"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//OneToOne/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//OneToOne/optional"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//OneToOne/targetEntity"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//PersistenceUnitDefaults">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaults/schema"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaults/catalog"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaults/access"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//PersistenceUnitDefaults/cascadePersist"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//PersistenceUnitDefaults/entityListeners"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//PersistenceUnitMetadata">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//PersistenceUnitMetadata/xmlMappingMetadataComplete"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//PersistenceUnitMetadata/persistenceUnitDefaults"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//PostLoad">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PostLoad/methodName"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//PostPersist">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PostPersist/methodName"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//PostRemove">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PostRemove/methodName"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//PostUpdate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PostUpdate/methodName"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//PrePersist">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PrePersist/methodName"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//PreRemove">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PreRemove/methodName"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//PreUpdate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PreUpdate/methodName"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//PrimaryKeyJoinColumn">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PrimaryKeyJoinColumn/columnDefinition"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PrimaryKeyJoinColumn/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PrimaryKeyJoinColumn/referencedColumnName"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//QueryHint">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//QueryHint/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//QueryHint/value"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//SecondaryTable">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//SecondaryTable/primaryKeyJoinColumn"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//SecondaryTable/uniqueConstraint"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//SecondaryTable/catalog"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//SecondaryTable/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//SecondaryTable/schema"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//SequenceGenerator">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//SequenceGenerator/allocationSize"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//SequenceGenerator/initialValue"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//SequenceGenerator/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//SequenceGenerator/sequenceName"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//SqlResultSetMapping">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//SqlResultSetMapping/entityResult"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//SqlResultSetMapping/columnResult"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//SqlResultSetMapping/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//Table">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Table/uniqueConstraint"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Table/catalog"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Table/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Table/schema"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//TableGenerator">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//TableGenerator/uniqueConstraint"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//TableGenerator/allocationSize"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//TableGenerator/catalog"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//TableGenerator/initialValue"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//TableGenerator/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//TableGenerator/pkColumnName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//TableGenerator/pkColumnValue"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//TableGenerator/schema"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//TableGenerator/table"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//TableGenerator/valueColumnName"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//Transient">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Transient/name"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//UniqueConstraint">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//UniqueConstraint/columnName"/>
+ </genClasses>
+ <genClasses ecoreClass="orm.ecore#//Version">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//Version/column"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Version/temporal"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//Version/name"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/modeling32.png b/eclipselink/org.eclipse.emf.teneo.orm/modeling32.png
new file mode 100755
index 000000000..6b08de2ad
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/modeling32.png
Binary files differ
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/plugin.properties b/eclipselink/org.eclipse.emf.teneo.orm/plugin.properties
new file mode 100755
index 000000000..1ec9b511f
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/plugin.properties
@@ -0,0 +1,35 @@
+#/**
+# * <copyright>
+# *
+# * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+# * All rights reserved. This program and the accompanying materials
+# * are made available under the terms of the Eclipse Public License v1.0
+# * which accompanies this distribution, and is available at
+# * http://www.eclipse.org/legal/epl-v10.html
+# *
+# * Contributors:
+# * Martin Taal - Initial API and implementation
+# *
+# * </copyright>
+# *
+# * $Id: plugin.properties,v 1.5 2009/07/23 11:16:30 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.
+# ==============================================================================
+
+Plugin.name = EMF Teneo ORM Generation
+Plugin.providerName = Eclipse Modeling Project
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
+pluginName = Orm Model
+providerName = www.example.org
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/plugin.xml b/eclipselink/org.eclipse.emf.teneo.orm/plugin.xml
new file mode 100755
index 000000000..044204bb7
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/plugin.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id: plugin.xml,v 1.2 2009/07/06 13:23:39 mtaal Exp $
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://java.sun.com/xml/ns/persistence/orm"
+ class="org.eclipse.emf.teneo.jpa.orm.OrmPackage"
+ genModel="model/orm.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ type="orm"
+ class="org.eclipse.emf.teneo.jpa.orm.util.OrmResourceFactoryImpl"/>
+ </extension>
+
+</plugin>
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/GenerateORM.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/GenerateORM.java
new file mode 100755
index 000000000..6492234a8
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/GenerateORM.java
@@ -0,0 +1,139 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2009 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: GenerateORM.java,v 1.1 2009/03/23 19:01:40 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.jpa;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Properties;
+
+import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.TeneoException;
+import org.eclipse.emf.teneo.annotations.mapper.PersistenceMappingBuilder;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedModel;
+import org.eclipse.emf.teneo.extension.ExtensionManager;
+import org.eclipse.emf.teneo.extension.ExtensionManagerFactory;
+import org.eclipse.emf.teneo.jpa.convert.ORMGenerator;
+
+/**
+ * Class is responsible for generating the hbm file. Is run through a launcher
+ * therefore the main methods.
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.1 $
+ */
+
+public class GenerateORM {
+
+ /** Parses the args and generates a hbm file */
+ public static void main(String[] args) {
+ // decode the args
+ Properties options = new Properties();
+ ArrayList<String> ecores = new ArrayList<String>();
+ String targetFileName = null;
+ for (int i = 0; i < args.length; i++) {
+ if (i == 0) {
+ targetFileName = args[0];
+ } else if (args[i].startsWith("+")) { // option
+ final String[] keyValue = args[i].substring(1).split(",");
+ options.put(keyValue[0], keyValue[1]);
+ } else if (args[i].startsWith("-")) { // epackage classnames
+ final String[] epacks = args[i].substring(1).split(",");
+
+ // the epackages load them all, hope for the best
+ // when loading the epackage should be loaded
+ for (String element : epacks) {
+ try {
+ Class.forName(element);
+ } catch (Throwable t) { // ignore everything but show
+ // something
+ t.printStackTrace(System.err);
+ }
+ }
+ } else {
+ ecores.add(args[i]);
+ }
+ }
+
+ createORMapperFile(targetFileName, ecores.toArray(new String[ecores
+ .size()]), options);
+ }
+
+ /** Creates the mapping file */
+ private static void createORMapperFile(String targetFileName,
+ String[] ecores, Properties options) {
+ try {
+ // get the first ecore file
+ File firstEcore = new File(ecores[0]);
+ File file = new File(firstEcore.getParentFile(), targetFileName);
+ final File archiveFile = new File(firstEcore.getParentFile(),
+ targetFileName + "_old");
+
+ if (file.exists()) {
+ if (archiveFile.exists()) {
+ archiveFile.delete();
+ }
+ copyFile(file, archiveFile);
+ file.delete();
+ }
+ file.createNewFile();
+
+ final ExtensionManager extensionManager = ExtensionManagerFactory
+ .getInstance().create();
+
+ final ORMGenerator converter = new ORMGenerator();
+ final PersistenceOptions po = converter
+ .getDefaultPersistenceOptions(options);
+ final PAnnotatedModel paModel = extensionManager.getExtension(
+ PersistenceMappingBuilder.class).buildMapping(ecores, po,
+ extensionManager);
+ final String orm = converter.generateORM(paModel.getPaEPackages(),
+ po);
+ FileWriter writer = new FileWriter(file);
+ writer.write(orm);
+ writer.flush();
+ } catch (IOException e) {
+ throw new TeneoException(
+ "IOException when creating or mapping file", e);
+ }
+ }
+
+ /** Copies a file */
+ public static void copyFile(File src, File dst) throws IOException {
+ if (!dst.exists()) {
+ dst.createNewFile();
+ }
+
+ InputStream in = new FileInputStream(src);
+ OutputStream out = new FileOutputStream(dst);
+
+ // Transfer bytes from in to out
+ byte[] buf = new byte[1024];
+ int len;
+ while ((len = in.read(buf)) > 0) {
+ out.write(buf, 0, len);
+ }
+ in.close();
+ out.close();
+ }
+} \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/convert/ORMGenerator.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/convert/ORMGenerator.java
new file mode 100755
index 000000000..156deae52
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/convert/ORMGenerator.java
@@ -0,0 +1,726 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2009 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: ORMGenerator.java,v 1.8 2010/04/22 17:58:01 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.jpa.convert;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+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.xmi.XMLResource;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+import org.eclipse.emf.teneo.ERuntime;
+import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.annotations.mapper.PersistenceMappingBuilder;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEPackage;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedModel;
+import org.eclipse.emf.teneo.annotations.pannotation.CascadeType;
+import org.eclipse.emf.teneo.extension.DefaultExtensionManager;
+import org.eclipse.emf.teneo.extension.ExtensionManager;
+import org.eclipse.emf.teneo.jpa.orm.AccessType;
+import org.eclipse.emf.teneo.jpa.orm.AttributeOverride;
+import org.eclipse.emf.teneo.jpa.orm.Attributes;
+import org.eclipse.emf.teneo.jpa.orm.Basic;
+import org.eclipse.emf.teneo.jpa.orm.Column;
+import org.eclipse.emf.teneo.jpa.orm.DocumentRoot;
+import org.eclipse.emf.teneo.jpa.orm.Embeddable;
+import org.eclipse.emf.teneo.jpa.orm.EmbeddableAttributes;
+import org.eclipse.emf.teneo.jpa.orm.Embedded;
+import org.eclipse.emf.teneo.jpa.orm.EmbeddedId;
+import org.eclipse.emf.teneo.jpa.orm.Entity;
+import org.eclipse.emf.teneo.jpa.orm.EntityMappingsType;
+import org.eclipse.emf.teneo.jpa.orm.Id;
+import org.eclipse.emf.teneo.jpa.orm.IdClass;
+import org.eclipse.emf.teneo.jpa.orm.JoinColumn;
+import org.eclipse.emf.teneo.jpa.orm.ManyToMany;
+import org.eclipse.emf.teneo.jpa.orm.ManyToOne;
+import org.eclipse.emf.teneo.jpa.orm.MappedSuperclass;
+import org.eclipse.emf.teneo.jpa.orm.OneToMany;
+import org.eclipse.emf.teneo.jpa.orm.OneToOne;
+import org.eclipse.emf.teneo.jpa.orm.OrmFactory;
+import org.eclipse.emf.teneo.jpa.orm.PersistenceUnitDefaults;
+import org.eclipse.emf.teneo.jpa.orm.PersistenceUnitMetadata;
+import org.eclipse.emf.teneo.jpa.orm.Transient;
+import org.eclipse.emf.teneo.jpa.orm.Version;
+
+/**
+ * Converts a PAnnotatedModel to an ORM model.
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.8 $
+ */
+
+public class ORMGenerator {
+
+ private OrmFactory factory = OrmFactory.eINSTANCE;
+
+ // public static void main(String[] args) {
+ // final ORMGenerator ormGenerator = new ORMGenerator();
+ // ormGenerator.testGenerateORM();
+ // }
+ //
+ // public void testGenerateORM() {
+ // final Properties props = new Properties();
+ // props.setProperty(PersistenceOptions.SQL_TABLE_NAME_PREFIX, "EMFLIB_");
+ //
+ // final ORMGenerator converter = new ORMGenerator();
+ // final String orm = converter.generateORM(
+ // new EPackage[] { DataPackage.eINSTANCE }, converter
+ // .getDefaultPersistenceOptions(props));
+ // System.err.println(orm);
+ // // writeToFile(orm, "bin/META-INF/orm.xml");
+ // // writeToFile(orm, "src/META-INF/orm.xml");
+ // }
+ //
+ // private void writeToFile(String content, String path) {
+ // try {
+ // FileWriter fw = new FileWriter(
+ // "/home/mtaal/mydata/dev/workspaces/nextspace/org.eclipse.emf.teneo.eclipselink.examples.library/"
+ // + path);
+ // fw.write(content);
+ // fw.close();
+ // } catch (Exception e) {
+ // throw new IllegalStateException(e);
+ // }
+ // }
+
+ /**
+ * Returns the default settings of some persistence options
+ *
+ * @param props
+ * properties set by the user, new properties override current ones
+ * @return the PersistenceOptions object
+ */
+ public PersistenceOptions getDefaultPersistenceOptions(Properties props) {
+ props.setProperty(PersistenceOptions.SQL_NAME_ESCAPE_CHARACTER, "");
+ props.setProperty(PersistenceOptions.EMAP_AS_TRUE_MAP, "false");
+ props.setProperty(PersistenceOptions.SET_DEFAULT_CASCADE_ON_NON_CONTAINMENT, "true");
+ props.setProperty(PersistenceOptions.CASCADE_POLICY_ON_NON_CONTAINMENT, "REFRESH,PERSIST,MERGE");
+ props.setProperty(PersistenceOptions.ID_FEATURE_AS_PRIMARY_KEY, "false");
+ props.setProperty(PersistenceOptions.SQL_CASE_STRATEGY, "uppercase");
+ final ExtensionManager extensionManager = new DefaultExtensionManager();
+ return extensionManager.getExtension(PersistenceOptions.class, new Object[] { props });
+ }
+
+ /**
+ * Generate the ORM for a set of EPackages. Uses the default PersistenceOptions settings.
+ *
+ * @param ePackages
+ * the ePackages to generate an ORM for
+ * @return the orm.xml as a String
+ */
+ public String generateORM(EPackage[] ePackages) {
+ return generateORM(ePackages, getDefaultPersistenceOptions(new Properties()));
+ }
+
+ /**
+ * Generate the ORM for a set of EPackages
+ *
+ * @param ePackages
+ * the ePackages to generate an ORM for
+ * @param po
+ * the PersistenceOptions to use for generation
+ * @return the orm.xml as a String
+ */
+ public String generateORM(EPackage[] ePackages, PersistenceOptions po) {
+ final ExtensionManager extensionManager = new DefaultExtensionManager();
+ final PAnnotatedModel paModel = extensionManager.getExtension(PersistenceMappingBuilder.class).buildMapping(
+ ePackages, po, extensionManager);
+ return generateORM(paModel.getPaEPackages(), po);
+ }
+
+ /**
+ * Convert a PAnnotated model to an ORM model.
+ *
+ * @param annotatedEPackages
+ * the annotated EPackages to convert
+ * @param po
+ * some {@link PersistenceOptions}
+ * @return the orm model as a XML string
+ */
+ public String generateORM(List<PAnnotatedEPackage> annotatedEPackages, PersistenceOptions po) {
+ final XMLResource res = new XMLResourceImpl();
+ final Map<String, Object> options = new HashMap<String, Object>();
+ options.put(XMLResource.OPTION_ENCODING, "UTF-8");
+ options.put(XMLResource.OPTION_EXTENDED_META_DATA, true);
+ options.put(XMLResource.OPTION_SCHEMA_LOCATION, true);
+ options.put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, true);
+
+ final StringWriter sw = new StringWriter();
+ final DocumentRoot dr = factory.createDocumentRoot();
+ dr.setEntityMappings(convertPAnnotatedEPackages(annotatedEPackages, po));
+ dr.getXMLNSPrefixMap().put("xsi", "http://www.w3.org/2001/XMLSchema-instance");
+ dr.getXSISchemaLocation().put("http://java.sun.com/xml/ns/persistence/orm",
+ "http://java.sun.com/xml/ns/persistence/orm_1_0.xsd");
+ res.getContents().add(dr);
+ try {
+ res.save(sw, options);
+ final String result = sw.toString();
+ // ugly but effective
+ if (!result.contains("xmlns=")) {
+ return result.replace("<entity-mappings ", "<entity-mappings xmlns=\"http://java.sun.com/xml/ns/persistence/orm\" ");
+ } else {
+ return result;
+ }
+ } catch (IOException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
+ /**
+ * Convert an annotated model to an instance of an ORM model
+ *
+ * @param annotatedEPackages
+ * the annotated model
+ * @param po
+ * the persistence options influencing the mapping
+ * @return an instance of an ORM model
+ */
+ public EntityMappingsType convertPAnnotatedEPackages(List<PAnnotatedEPackage> annotatedEPackages,
+ PersistenceOptions po) {
+ final EntityMappingsType entityMappings = OrmFactory.eINSTANCE.createEntityMappingsType();
+ entityMappings.setVersion("1.0");
+ entityMappings.setPersistenceUnitMetadata(getMetaData());
+ for (PAnnotatedEPackage pPackage : annotatedEPackages) {
+
+ copyFeatures(pPackage, entityMappings);
+
+ for (PAnnotatedEClass pClass : pPackage.getPaEClasses()) {
+ if (pClass.getEntity() == null && pClass.getEmbeddable() == null) {
+ continue;
+ }
+ if (ERuntime.INSTANCE.getJavaClass(pClass.getModelEClass()) == null) {
+ continue;
+ }
+ convertPAnnotatedEClass(entityMappings, pClass);
+ }
+ }
+ escape(entityMappings, po.getSqlNameEscapeCharacter());
+
+ return entityMappings;
+ }
+
+ /**
+ * Escape the table and column names in the model, using an eannotation flag on the orm meta model.
+ *
+ * @param entityMappings
+ * the model containing the table/column instances of which the names will be escaped
+ * @param escapeChar
+ * the character to use for escaping
+ */
+ private void escape(EntityMappingsType entityMappings, String escapeChar) {
+ if (escapeChar == null || escapeChar.trim().length() == 0) {
+ return;
+ }
+ for (Iterator<EObject> it = entityMappings.eAllContents(); it.hasNext();) {
+ final EObject eObject = it.next();
+ for (EStructuralFeature eFeature : eObject.eClass().getEAllAttributes()) {
+ final EAnnotation eAnnotation = eFeature.getEAnnotation("teneo.escape");
+ if (eAnnotation != null) {
+ final String value = (String) eObject.eGet(eFeature);
+ if (value != null && value.trim().length() > 0 && !value.startsWith(escapeChar)
+ && !value.endsWith(escapeChar)) {
+ eObject.eSet(eFeature, "'\"" + value + "\"'");
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Converts an annotated EClass by creating an ORM model equivalent and adding it to the passed entityTypes.
+ *
+ * @param entityTypes
+ * the ORM model to fill
+ * @param pClass
+ * the annotated EClass to convert to ORM
+ */
+ private void convertPAnnotatedEClass(EntityMappingsType entityTypes, PAnnotatedEClass pClass) {
+ List<PAnnotatedEPackage> annotatedEPackages = pClass.getPaModel().getPaEPackages();
+ final EObject mainType;
+ if (pClass.getMappedSuperclass() != null) {
+ final MappedSuperclass mappedSuperclass = factory.createMappedSuperclass();
+ entityTypes.getMappedSuperclass().add(mappedSuperclass);
+ mainType = mappedSuperclass;
+ mappedSuperclass.setClass(ERuntime.INSTANCE.getJavaClass(pClass.getModelEClass()).getName());
+ } else if (pClass.getEmbeddable() != null) {
+ final Embeddable embeddable = factory.createEmbeddable();
+ embeddable.setClass(ERuntime.INSTANCE.getJavaInterfaceClass(pClass.getModelEClass()).getName());
+ mainType = embeddable;
+ entityTypes.getEmbeddable().add(embeddable);
+ copyFeatures(pClass, mainType);
+
+ final EmbeddableAttributes embeddableAttributes = factory.createEmbeddableAttributes();
+ embeddable.setAttributes(embeddableAttributes);
+
+ for (PAnnotatedEStructuralFeature pFeature : pClass.getPaEStructuralFeatures()) {
+ if (pFeature.getModelEStructuralFeature().isDerived() || pFeature.getModelEStructuralFeature().isVolatile()) {
+ continue;
+ }
+ mapEmbeddedFeatures(pFeature, embeddableAttributes);
+ }
+
+ // stop here
+ return;
+ } else {
+ final Entity entity = factory.createEntity();
+ entityTypes.getEntity().add(entity);
+ mainType = entity;
+ entity.setName(pClass.getEntity().getName());
+ entity.setClass(ERuntime.INSTANCE.getJavaClass(pClass.getModelEClass()).getName());
+ }
+ copyFeatures(pClass, mainType);
+
+ final Attributes attributes = factory.createAttributes();
+ mainType.eSet(mainType.eClass().getEStructuralFeature("attributes"), attributes);
+
+ if (isMapEntry(pClass.getModelEClass())) {
+ addEMapAnnotations((Entity) mainType, attributes, pClass);
+ }
+
+ for (PAnnotatedEStructuralFeature pFeature : pClass.getPaEStructuralFeatures()) {
+ if (pFeature.getModelEStructuralFeature().isDerived() || pFeature.getModelEStructuralFeature().isVolatile()) {
+ continue;
+ }
+ mapEFeature(pFeature, attributes);
+ }
+
+ // add container featureid
+ if (pClass.getPaSuperEntity() == null) {
+ final Basic basic = factory.createBasic();
+ basic.setName("eContainerFeatureID");
+ final Column c = factory.createColumn();
+ c.setName("ECONT_FEAT_ID");
+ basic.setColumn(c);
+ attributes.getBasic().add(basic);
+ }
+
+ final PAnnotatedEReference containmentRef = getContainmentFeature(pClass, annotatedEPackages);
+ if (containmentRef != null) {
+ if (containmentRef.getModelEReference().isMany()) {
+ final ManyToOne mto = factory.createManyToOne();
+ mto.setName("eContainer");
+ mto.setTargetEntity(ERuntime.INSTANCE.getJavaClass(containmentRef.getPaEClass().getModelEClass())
+ .getName());
+ attributes.getManyToOne().add(mto);
+
+ final JoinColumn jc = factory.createJoinColumn();
+ jc.setName(containmentRef.getJoinColumns().get(0).getName());
+ mto.getJoinColumn().add(jc);
+
+ final org.eclipse.emf.teneo.jpa.orm.CascadeType ct = factory.createCascadeType();
+ ct.setCascadeAll(factory.createEmptyType());
+ mto.setCascade(ct);
+ } else {
+ final OneToOne oto = factory.createOneToOne();
+ oto.setName("eContainer");
+ oto.setTargetEntity(ERuntime.INSTANCE.getJavaClass(containmentRef.getPaEClass().getModelEClass())
+ .getName());
+ attributes.getOneToOne().add(oto);
+ oto.setMappedBy(containmentRef.getModelEReference().getName());
+ final org.eclipse.emf.teneo.jpa.orm.CascadeType ct = factory.createCascadeType();
+ ct.setCascadeAll(factory.createEmptyType());
+ oto.setCascade(ct);
+ }
+ }
+ }
+
+ private void mapEmbeddedFeatures(PAnnotatedEStructuralFeature pFeature, EmbeddableAttributes attributes) {
+ if (isMapEntry(pFeature.getPaEClass().getModelEClass()) && pFeature.getModelElement().getName().equals("key")) {
+ return;
+ }
+
+ if (pFeature instanceof PAnnotatedEAttribute) {
+ final PAnnotatedEAttribute pAttribute = (PAnnotatedEAttribute) pFeature;
+ if (pAttribute.getTransient() != null) {
+ final Transient t = factory.createTransient();
+ t.setName(pAttribute.getModelEAttribute().getName());
+ attributes.getTransient().add(t);
+ } else if (pAttribute.getBasic() != null) {
+ final Basic b = factory.createBasic();
+ b.setName(pAttribute.getModelEAttribute().getName());
+ copyFeatures(pAttribute, b);
+ copyFeatures(pAttribute.getBasic(), b);
+ attributes.getBasic().add(b);
+ }
+ } else {
+ final PAnnotatedEReference pReference = (PAnnotatedEReference) pFeature;
+ if (pReference.getModelEReference().isContainer()) {
+ // do nothing ignore
+ } else if (pReference.getTransient() != null) {
+ final Transient t = factory.createTransient();
+ t.setName(pReference.getModelEReference().getName());
+ attributes.getTransient().add(t);
+ }
+ }
+ }
+
+ /**
+ * Translate one annotated EStructuralFeature to its ORM equivalent and add it to the ORM attributes
+ *
+ * @param pFeature
+ * the annotated EFeature to map
+ * @param attributes
+ * the ORM attributes
+ */
+ private void mapEFeature(PAnnotatedEStructuralFeature pFeature, Attributes attributes) {
+ if (isMapEntry(pFeature.getPaEClass().getModelEClass()) && pFeature.getModelElement().getName().equals("key")) {
+ return;
+ }
+
+ if (pFeature instanceof PAnnotatedEAttribute) {
+ final PAnnotatedEAttribute pAttribute = (PAnnotatedEAttribute) pFeature;
+ if (pAttribute.getTransient() != null) {
+ final Transient t = factory.createTransient();
+ t.setName(pAttribute.getModelEAttribute().getName());
+ attributes.getTransient().add(t);
+ } else if (pAttribute.getVersion() != null) {
+ final Version v = factory.createVersion();
+ v.setName(pAttribute.getModelEAttribute().getName());
+ copyFeatures(pAttribute, v);
+ copyFeatures(pAttribute.getVersion(), v);
+ attributes.getVersion().add(v);
+ } else if (pAttribute.getId() != null) {
+ final Id id = factory.createId();
+ id.setName(pAttribute.getModelEAttribute().getName());
+ copyFeatures(pAttribute, id);
+ copyFeatures(pAttribute.getId(), id);
+ attributes.getId().add(id);
+ } else if (pAttribute.getBasic() != null) {
+ final Basic b = factory.createBasic();
+ b.setName(pAttribute.getModelEAttribute().getName());
+ copyFeatures(pAttribute, b);
+ copyFeatures(pAttribute.getBasic(), b);
+ attributes.getBasic().add(b);
+ }
+ } else {
+ final PAnnotatedEReference pReference = (PAnnotatedEReference) pFeature;
+ if (pReference.getModelEReference().isContainer()) {
+ // do nothing ignore
+ } else if (pReference.getTransient() != null) {
+ final Transient t = factory.createTransient();
+ t.setName(pReference.getModelEReference().getName());
+ attributes.getTransient().add(t);
+ } else if (pReference.getEmbedded() != null) {
+ final Embedded embedded = factory.createEmbedded();
+ embedded.setName(pReference.getModelEReference().getName());
+ copyFeatures(pReference, embedded);
+ copyFeatures(pReference.getEmbedded(), embedded);
+ attributes.getEmbedded().add(embedded);
+ } else if (pReference.getEmbeddedId() != null) {
+ final EmbeddedId embeddedId = factory.createEmbeddedId();
+ embeddedId.setName(pReference.getModelEReference().getName());
+ copyFeatures(pReference, embeddedId);
+ copyFeatures(pReference.getEmbeddedId(), embeddedId);
+ attributes.setEmbeddedId(embeddedId);
+ } else if (pReference.getManyToOne() != null) {
+ if (pReference.getModelEReference().isContainment()) {
+ final OneToOne oto = factory.createOneToOne();
+ oto.setName(pReference.getModelEReference().getName());
+ copyFeatures(pReference, oto);
+ copyFeatures(pReference.getManyToOne(), oto);
+ attributes.getOneToOne().add(oto);
+
+ if (oto.getMappedBy() != null) {
+ oto.getJoinColumn().clear();
+ }
+
+ setTargetEntity(oto, pReference);
+ } else {
+ final ManyToOne mto = factory.createManyToOne();
+ mto.setName(pReference.getModelEReference().getName());
+ copyFeatures(pReference, mto);
+ copyFeatures(pReference.getManyToOne(), mto);
+ attributes.getManyToOne().add(mto);
+ setTargetEntity(mto, pReference);
+ }
+ } else if (pReference.getManyToMany() != null) {
+ // // do a small repair action, in case of a mtm only one side
+ // // should have the jointable and the other side the mappedby
+ // final EReference thisSide = pReference.getModelEReference();
+ // final EReference thatSide = thisSide.getEOpposite();
+ // if (thatSide != null) {
+ // final String thatName = thatSide.getEContainingClass()
+ // .getEPackage().getNsURI()
+ // + thatSide.getEContainingClass().getName()
+ // + "."
+ // + thatSide.getName();
+ // final String thisName = thisSide.getEContainingClass()
+ // .getEPackage().getNsURI()
+ // + thisSide.getEContainingClass().getName()
+ // + "."
+ // + thisSide.getName();
+ //
+ // if (thisName.compareTo(thatName) > 0
+ // && pReference.getJoinTable() != null) {
+ // pReference.setJoinTable(null);
+ // pReference.getManyToMany().setMappedBy(
+ // thatSide.getName());
+ // } else {
+ // pReference.getManyToMany().setMappedBy(null);
+ // }
+ // }
+
+ final ManyToMany mtm = factory.createManyToMany();
+ mtm.setName(pReference.getModelEReference().getName());
+ copyFeatures(pReference, mtm);
+ copyFeatures(pReference.getManyToMany(), mtm);
+ attributes.getManyToMany().add(mtm);
+ setTargetEntity(mtm, pReference);
+ } else if (pReference.getOneToMany() != null) {
+ final OneToMany otm = factory.createOneToMany();
+ otm.setName(pReference.getModelEReference().getName());
+ copyFeatures(pReference, otm);
+ copyFeatures(pReference.getOneToMany(), otm);
+ attributes.getOneToMany().add(otm);
+ if (pReference.getModelEReference().isContainment()
+ && pReference.getModelEReference().getEOpposite() == null) {
+ otm.setMappedBy("eContainer");
+ }
+ if (otm.getMappedBy() != null) {
+ otm.getJoinColumn().clear();
+ }
+ setTargetEntity(otm, pReference);
+ } else if (pReference.getOneToOne() != null) {
+ final OneToOne oto = factory.createOneToOne();
+ oto.setName(pReference.getModelEReference().getName());
+ copyFeatures(pReference, oto);
+ copyFeatures(pReference.getOneToOne(), oto);
+ attributes.getOneToOne().add(oto);
+ setTargetEntity(oto, pReference);
+ // do some clean up
+ if (oto.getMappedBy() != null) {
+ oto.getJoinColumn().clear();
+ }
+ }
+ }
+ }
+
+ // an EMap can be handled in two ways:
+ // 1) there is a superclass which has an id attribute in this case attribute
+ // overrides needs to be added, and the overridden attribute needs to be
+ // mapped to the column of the owner id
+ // 2) no super class, so the owner id is mapped as an id
+ // note that if an EMAP has a superclass then it must always be mapped
+ // to the same table or as a mappedsuperclass
+ private void addEMapAnnotations(Entity entity, Attributes attributes, PAnnotatedEClass aClass) {
+
+ final IdClass idClass = factory.createIdClass();
+ idClass.setClass("org.eclipse.emf.teneo.eclipselink.util.MapEntryId");
+ final Id id = factory.createId();
+ id.setName("key");
+ final Column idColumn = factory.createColumn();
+ // TODO: uses special prefix to prevent use of reserved name
+ idColumn.setName("e_key");
+ id.setColumn(idColumn);
+ attributes.getId().add(id);
+
+ final Transient t = factory.createTransient();
+ t.setName("hash");
+ attributes.getTransient().add(t);
+
+ // add an attribute overrides
+ if (hasSuperTypeWithId(aClass)) {
+ // get the one-to-many of the owning type
+ PAnnotatedEReference owningReference = getContainmentFeature(aClass, aClass.getPaModel().getPaEPackages());
+ if (owningReference == null) {
+ System.err.println("EMap " + aClass.getModelEClass().getName() + " has no owning type");
+ return;
+ }
+
+ final AttributeOverride ao = factory.createAttributeOverride();
+ final Column c = factory.createColumn();
+ c.setName(owningReference.getJoinColumns().get(0).getName());
+ c.setUpdatable(false);
+ c.setInsertable(false);
+ ao.setName("id");
+ ao.setColumn(c);
+ entity.getAttributeOverride().add(ao);
+ } else { // create our own id
+ final Id eContainerId = factory.createId();
+ eContainerId.setName("eContainer");
+ attributes.getId().add(eContainerId);
+ }
+ }
+
+ private boolean isMapEntry(EClass eclass) {
+ return eclass != null && eclass.getInstanceClass() != null
+ && Map.Entry.class.isAssignableFrom(eclass.getInstanceClass())
+ && eclass.getEStructuralFeatures().size() == 2 && eclass.getEStructuralFeature("key") != null
+ && eclass.getEStructuralFeature("value") != null;
+ }
+
+ private boolean hasSuperTypeWithId(PAnnotatedEClass aClass) {
+ for (PAnnotatedEClass aSuperClass : aClass.getPaMappedSupers()) {
+ for (PAnnotatedEStructuralFeature aFeature : aSuperClass.getPaEStructuralFeatures()) {
+ if (aFeature instanceof PAnnotatedEAttribute) {
+ final PAnnotatedEAttribute aAttribute = (PAnnotatedEAttribute) aFeature;
+ if (aAttribute.getId() != null) {
+ return true;
+ }
+ }
+ }
+ if (hasSuperTypeWithId(aSuperClass)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @SuppressWarnings("unchecked")
+ private void copyFeatures(final EObject from, EObject to) {
+ for (EStructuralFeature eToFeature : to.eClass().getEAllStructuralFeatures()) {
+ EObject localFrom = from;
+ String postFix = "";
+ if (eToFeature.isMany()) {
+ postFix = "s";
+ }
+ final String lookingFor = eToFeature.getName() + postFix;
+ EStructuralFeature eFromFeature = localFrom.eClass().getEStructuralFeature(lookingFor);
+ if (eFromFeature == null) {
+ // System.err.println("ERROR FEATURE " + eToFeature.getName()
+ // + " not defined for PAnnotatedEClass "
+ // + from.eClass().getName() + " " + lookingFor);
+ continue;
+ }
+
+ if (eFromFeature.getEType().getName().equals("CascadeType")) {
+ to.eSet(eToFeature, getCascade((List<Object>) from.eGet(eFromFeature)));
+ continue;
+ }
+
+ if (eFromFeature.isMany() != eToFeature.isMany()) {
+ System.err.println("ERROR FEATURES HAVE DIFFERENT MANIES " + eFromFeature.getName());
+ continue;
+ }
+
+ if (eFromFeature.eClass() != eToFeature.eClass()) {
+ // special case DiscriminatorValue
+ localFrom = (EObject) from.eGet(eFromFeature);
+ if (localFrom != null) {
+ eFromFeature = localFrom.eClass().getEStructuralFeature("value");
+ } else {
+ continue;
+ }
+ }
+
+ if (eFromFeature.isMany()) {
+ copyList(eFromFeature, (List<Object>) from.eGet(eFromFeature), (List<Object>) to.eGet(eToFeature),
+ eToFeature);
+ } else { // if (localFrom.eIsSet(eFromFeature)) {
+ to.eSet(eToFeature, convertValue(eFromFeature, localFrom.eGet(eFromFeature), eToFeature));
+ }
+ }
+ }
+
+ private Object convertValue(EStructuralFeature from, Object value, EStructuralFeature to) {
+ if (value == null) {
+ return null;
+ }
+ if (from instanceof EAttribute && ((EAttribute) from).getEAttributeType() instanceof EEnum) {
+ final EAttribute eAttribute = (EAttribute) to;
+ final Enumerator eenum = (Enumerator) value;
+ final EDataType eDataType = eAttribute.getEAttributeType();
+ final Object newValue = factory.createFromString(eDataType, eenum.getName());
+ if (newValue == null) {
+ System.err.println("EENUM NOT DEFINED " + eenum.getName() + " for datatype " + eDataType.getName());
+ }
+ return newValue;
+ } else if (from instanceof EReference) {
+ final EObject eValue = (EObject) value;
+ final EObject ormObject = factory.create(((EReference) to).getEReferenceType());
+ copyFeatures(eValue, ormObject);
+ return ormObject;
+ } else {
+ return value;
+ }
+ }
+
+ private void copyList(EStructuralFeature fromFeature, List<Object> from, List<Object> to,
+ EStructuralFeature toFeature) {
+ for (Object o : from) {
+ to.add(convertValue(fromFeature, o, toFeature));
+ }
+ }
+
+ private PersistenceUnitMetadata getMetaData() {
+ final PersistenceUnitMetadata metaData = factory.createPersistenceUnitMetadata();
+ metaData.setXmlMappingMetadataComplete(factory.createEmptyType());
+ final PersistenceUnitDefaults defaults = factory.createPersistenceUnitDefaults();
+ defaults.setAccess(AccessType.FIELD);
+ metaData.setPersistenceUnitDefaults(defaults);
+ return metaData;
+ }
+
+ private org.eclipse.emf.teneo.jpa.orm.CascadeType getCascade(List<Object> cascades) {
+ final org.eclipse.emf.teneo.jpa.orm.CascadeType newCascade = factory.createCascadeType();
+ for (Object o : cascades) {
+ CascadeType cascadeType = (org.eclipse.emf.teneo.annotations.pannotation.CascadeType) o;
+ if (cascadeType == CascadeType.ALL) {
+ newCascade.setCascadeAll(factory.createEmptyType());
+ } else if (cascadeType == CascadeType.MERGE) {
+ newCascade.setCascadeMerge(factory.createEmptyType());
+ } else if (cascadeType == CascadeType.PERSIST) {
+ newCascade.setCascadePersist(factory.createEmptyType());
+ } else if (cascadeType == CascadeType.REFRESH) {
+ newCascade.setCascadeRefresh(factory.createEmptyType());
+ } else if (cascadeType == CascadeType.REMOVE) {
+ newCascade.setCascadeRemove(factory.createEmptyType());
+ }
+ }
+ return newCascade;
+ }
+
+ private PAnnotatedEReference getContainmentFeature(PAnnotatedEClass pClass,
+ List<PAnnotatedEPackage> annotatedEPackages) {
+ for (PAnnotatedEPackage pPackage : annotatedEPackages) {
+ for (PAnnotatedEClass paClass : pPackage.getPaEClasses()) {
+ for (PAnnotatedEStructuralFeature pFeature : paClass.getPaEStructuralFeatures()) {
+ if (pFeature instanceof PAnnotatedEReference
+ && ((PAnnotatedEReference) pFeature).getModelEReference().isContainment()
+ && ((PAnnotatedEReference) pFeature).getAReferenceType() == pClass) {
+ return (PAnnotatedEReference) pFeature;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ private void setTargetEntity(EObject ormType, PAnnotatedEReference pReference) {
+ final Class<?> clz = ERuntime.INSTANCE.getJavaClass(pReference.getModelEReference().getEReferenceType());
+ ormType.eSet(ormType.eClass().getEStructuralFeature("targetEntity"), clz.getName());
+ }
+} \ No newline at end of file
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AccessType.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AccessType.java
new file mode 100755
index 000000000..26a239532
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AccessType.java
@@ -0,0 +1,220 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AccessType.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Access Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ *
+ * This element determines how the persistence provider accesses the
+ * state of an entity or embedded object.
+ *
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAccessType()
+ * @model extendedMetaData="name='access-type'"
+ * @generated
+ */
+public enum AccessType implements Enumerator {
+ /**
+ * The '<em><b>PROPERTY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PROPERTY_VALUE
+ * @generated
+ * @ordered
+ */
+ PROPERTY(0, "PROPERTY", "PROPERTY"),
+
+ /**
+ * The '<em><b>FIELD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FIELD_VALUE
+ * @generated
+ * @ordered
+ */
+ FIELD(1, "FIELD", "FIELD");
+
+ /**
+ * The '<em><b>PROPERTY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PROPERTY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PROPERTY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY_VALUE = 0;
+
+ /**
+ * The '<em><b>FIELD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FIELD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FIELD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FIELD_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Access Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final AccessType[] VALUES_ARRAY =
+ new AccessType[] {
+ PROPERTY,
+ FIELD,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Access Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<AccessType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Access Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AccessType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AccessType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Access Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AccessType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AccessType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Access Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AccessType get(int value) {
+ switch (value) {
+ case PROPERTY_VALUE: return PROPERTY;
+ case FIELD_VALUE: return FIELD;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private AccessType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //AccessType
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AssociationOverride.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AssociationOverride.java
new file mode 100755
index 000000000..81667512b
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AssociationOverride.java
@@ -0,0 +1,87 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AssociationOverride.java,v 1.1 2009/03/15 23:44:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Association Override</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface AssociationOverride {
+ * String name();
+ * JoinColumn[] joinColumns();
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.AssociationOverride#getJoinColumn <em>Join Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.AssociationOverride#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAssociationOverride()
+ * @model extendedMetaData="name='association-override' kind='elementOnly'"
+ * @generated
+ */
+public interface AssociationOverride extends EObject {
+ /**
+ * Returns the value of the '<em><b>Join Column</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.JoinColumn}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Join Column</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Join Column</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAssociationOverride_JoinColumn()
+ * @model containment="true" required="true"
+ * extendedMetaData="kind='element' name='join-column' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<JoinColumn> getJoinColumn();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAssociationOverride_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.AssociationOverride#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // AssociationOverride
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AttributeOverride.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AttributeOverride.java
new file mode 100755
index 000000000..19f030464
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/AttributeOverride.java
@@ -0,0 +1,95 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AttributeOverride.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Attribute Override</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface AttributeOverride {
+ * String name();
+ * Column column();
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.AttributeOverride#getColumn <em>Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.AttributeOverride#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributeOverride()
+ * @model extendedMetaData="name='attribute-override' kind='elementOnly'"
+ * @generated
+ */
+public interface AttributeOverride extends EObject {
+ /**
+ * Returns the value of the '<em><b>Column</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Column</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Column</em>' containment reference.
+ * @see #setColumn(Column)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributeOverride_Column()
+ * @model containment="true" required="true"
+ * extendedMetaData="kind='element' name='column' namespace='##targetNamespace'"
+ * @generated
+ */
+ Column getColumn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.AttributeOverride#getColumn <em>Column</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Column</em>' containment reference.
+ * @see #getColumn()
+ * @generated
+ */
+ void setColumn(Column value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributeOverride_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.AttributeOverride#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // AttributeOverride
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Attributes.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Attributes.java
new file mode 100755
index 000000000..944dc52ee
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Attributes.java
@@ -0,0 +1,231 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Attributes.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Attributes</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * This element contains the entity field or property mappings.
+ * It may be sparsely populated to include only a subset of the
+ * fields or properties. If metadata-complete for the entity is true
+ * then the remainder of the attributes will be defaulted according
+ * to the default rules.
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Attributes#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Attributes#getEmbeddedId <em>Embedded Id</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Attributes#getBasic <em>Basic</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Attributes#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Attributes#getManyToOne <em>Many To One</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Attributes#getOneToMany <em>One To Many</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Attributes#getOneToOne <em>One To One</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Attributes#getManyToMany <em>Many To Many</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Attributes#getEmbedded <em>Embedded</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Attributes#getTransient <em>Transient</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributes()
+ * @model extendedMetaData="name='attributes' kind='elementOnly'"
+ * @generated
+ */
+public interface Attributes extends EObject {
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.Id}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributes_Id()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='id' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<Id> getId();
+
+ /**
+ * Returns the value of the '<em><b>Embedded Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Embedded Id</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Embedded Id</em>' containment reference.
+ * @see #setEmbeddedId(EmbeddedId)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributes_EmbeddedId()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='embedded-id' namespace='##targetNamespace'"
+ * @generated
+ */
+ EmbeddedId getEmbeddedId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Attributes#getEmbeddedId <em>Embedded Id</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Embedded Id</em>' containment reference.
+ * @see #getEmbeddedId()
+ * @generated
+ */
+ void setEmbeddedId(EmbeddedId value);
+
+ /**
+ * Returns the value of the '<em><b>Basic</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.Basic}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Basic</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Basic</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributes_Basic()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='basic' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<Basic> getBasic();
+
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.Version}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Version</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributes_Version()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='version' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<Version> getVersion();
+
+ /**
+ * Returns the value of the '<em><b>Many To One</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.ManyToOne}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Many To One</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Many To One</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributes_ManyToOne()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='many-to-one' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<ManyToOne> getManyToOne();
+
+ /**
+ * Returns the value of the '<em><b>One To Many</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.OneToMany}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>One To Many</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>One To Many</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributes_OneToMany()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='one-to-many' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<OneToMany> getOneToMany();
+
+ /**
+ * Returns the value of the '<em><b>One To One</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.OneToOne}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>One To One</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>One To One</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributes_OneToOne()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='one-to-one' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<OneToOne> getOneToOne();
+
+ /**
+ * Returns the value of the '<em><b>Many To Many</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.ManyToMany}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Many To Many</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Many To Many</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributes_ManyToMany()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='many-to-many' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<ManyToMany> getManyToMany();
+
+ /**
+ * Returns the value of the '<em><b>Embedded</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.Embedded}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Embedded</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Embedded</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributes_Embedded()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='embedded' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<Embedded> getEmbedded();
+
+ /**
+ * Returns the value of the '<em><b>Transient</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.Transient}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transient</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transient</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getAttributes_Transient()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='transient' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<Transient> getTransient();
+
+} // Attributes
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Basic.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Basic.java
new file mode 100755
index 000000000..89bcd6388
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Basic.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Basic.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Basic</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface Basic {
+ * FetchType fetch() default EAGER;
+ * boolean optional() default true;
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Basic#getColumn <em>Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Basic#getLob <em>Lob</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Basic#getTemporal <em>Temporal</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Basic#getEnumerated <em>Enumerated</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Basic#getFetch <em>Fetch</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Basic#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Basic#isOptional <em>Optional</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getBasic()
+ * @model extendedMetaData="name='basic' kind='elementOnly'"
+ * @generated
+ */
+public interface Basic extends EObject {
+ /**
+ * Returns the value of the '<em><b>Column</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Column</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Column</em>' containment reference.
+ * @see #setColumn(Column)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getBasic_Column()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='column' namespace='##targetNamespace'"
+ * @generated
+ */
+ Column getColumn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Basic#getColumn <em>Column</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Column</em>' containment reference.
+ * @see #getColumn()
+ * @generated
+ */
+ void setColumn(Column value);
+
+ /**
+ * Returns the value of the '<em><b>Lob</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lob</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lob</em>' containment reference.
+ * @see #setLob(Lob)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getBasic_Lob()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='lob' namespace='##targetNamespace'"
+ * @generated
+ */
+ Lob getLob();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Basic#getLob <em>Lob</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lob</em>' containment reference.
+ * @see #getLob()
+ * @generated
+ */
+ void setLob(Lob value);
+
+ /**
+ * Returns the value of the '<em><b>Temporal</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Temporal</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Temporal</em>' attribute.
+ * @see #setTemporal(TemporalType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getBasic_Temporal()
+ * @model dataType="org.eclipse.emf.teneo.jpa.orm.Temporal"
+ * extendedMetaData="kind='element' name='temporal' namespace='##targetNamespace'"
+ * @generated
+ */
+ TemporalType getTemporal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Basic#getTemporal <em>Temporal</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Temporal</em>' attribute.
+ * @see #getTemporal()
+ * @generated
+ */
+ void setTemporal(TemporalType value);
+
+ /**
+ * Returns the value of the '<em><b>Enumerated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Enumerated</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Enumerated</em>' attribute.
+ * @see #setEnumerated(EnumType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getBasic_Enumerated()
+ * @model dataType="org.eclipse.emf.teneo.jpa.orm.Enumerated"
+ * extendedMetaData="kind='element' name='enumerated' namespace='##targetNamespace'"
+ * @generated
+ */
+ EnumType getEnumerated();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Basic#getEnumerated <em>Enumerated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Enumerated</em>' attribute.
+ * @see #getEnumerated()
+ * @generated
+ */
+ void setEnumerated(EnumType value);
+
+ /**
+ * Returns the value of the '<em><b>Fetch</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.jpa.orm.FetchType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Fetch</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Fetch</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.FetchType
+ * @see #isSetFetch()
+ * @see #unsetFetch()
+ * @see #setFetch(FetchType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getBasic_Fetch()
+ * @model unsettable="true"
+ * extendedMetaData="kind='attribute' name='fetch'"
+ * @generated
+ */
+ FetchType getFetch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Basic#getFetch <em>Fetch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Fetch</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.FetchType
+ * @see #isSetFetch()
+ * @see #unsetFetch()
+ * @see #getFetch()
+ * @generated
+ */
+ void setFetch(FetchType value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Basic#getFetch <em>Fetch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetFetch()
+ * @see #getFetch()
+ * @see #setFetch(FetchType)
+ * @generated
+ */
+ void unsetFetch();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Basic#getFetch <em>Fetch</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Fetch</em>' attribute is set.
+ * @see #unsetFetch()
+ * @see #getFetch()
+ * @see #setFetch(FetchType)
+ * @generated
+ */
+ boolean isSetFetch();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getBasic_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Basic#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Optional</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Optional</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Optional</em>' attribute.
+ * @see #isSetOptional()
+ * @see #unsetOptional()
+ * @see #setOptional(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getBasic_Optional()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='optional'"
+ * @generated
+ */
+ boolean isOptional();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Basic#isOptional <em>Optional</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Optional</em>' attribute.
+ * @see #isSetOptional()
+ * @see #unsetOptional()
+ * @see #isOptional()
+ * @generated
+ */
+ void setOptional(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Basic#isOptional <em>Optional</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetOptional()
+ * @see #isOptional()
+ * @see #setOptional(boolean)
+ * @generated
+ */
+ void unsetOptional();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Basic#isOptional <em>Optional</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Optional</em>' attribute is set.
+ * @see #unsetOptional()
+ * @see #isOptional()
+ * @see #setOptional(boolean)
+ * @generated
+ */
+ boolean isSetOptional();
+
+} // Basic
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/CascadeType.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/CascadeType.java
new file mode 100755
index 000000000..1df89f006
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/CascadeType.java
@@ -0,0 +1,175 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CascadeType.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cascade Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH};
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.CascadeType#getCascadeAll <em>Cascade All</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.CascadeType#getCascadePersist <em>Cascade Persist</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.CascadeType#getCascadeMerge <em>Cascade Merge</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.CascadeType#getCascadeRemove <em>Cascade Remove</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.CascadeType#getCascadeRefresh <em>Cascade Refresh</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getCascadeType()
+ * @model extendedMetaData="name='cascade-type' kind='elementOnly'"
+ * @generated
+ */
+public interface CascadeType extends EObject {
+ /**
+ * Returns the value of the '<em><b>Cascade All</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cascade All</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cascade All</em>' containment reference.
+ * @see #setCascadeAll(EmptyType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getCascadeType_CascadeAll()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='cascade-all' namespace='##targetNamespace'"
+ * @generated
+ */
+ EmptyType getCascadeAll();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.CascadeType#getCascadeAll <em>Cascade All</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cascade All</em>' containment reference.
+ * @see #getCascadeAll()
+ * @generated
+ */
+ void setCascadeAll(EmptyType value);
+
+ /**
+ * Returns the value of the '<em><b>Cascade Persist</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cascade Persist</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cascade Persist</em>' containment reference.
+ * @see #setCascadePersist(EmptyType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getCascadeType_CascadePersist()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='cascade-persist' namespace='##targetNamespace'"
+ * @generated
+ */
+ EmptyType getCascadePersist();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.CascadeType#getCascadePersist <em>Cascade Persist</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cascade Persist</em>' containment reference.
+ * @see #getCascadePersist()
+ * @generated
+ */
+ void setCascadePersist(EmptyType value);
+
+ /**
+ * Returns the value of the '<em><b>Cascade Merge</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cascade Merge</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cascade Merge</em>' containment reference.
+ * @see #setCascadeMerge(EmptyType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getCascadeType_CascadeMerge()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='cascade-merge' namespace='##targetNamespace'"
+ * @generated
+ */
+ EmptyType getCascadeMerge();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.CascadeType#getCascadeMerge <em>Cascade Merge</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cascade Merge</em>' containment reference.
+ * @see #getCascadeMerge()
+ * @generated
+ */
+ void setCascadeMerge(EmptyType value);
+
+ /**
+ * Returns the value of the '<em><b>Cascade Remove</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cascade Remove</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cascade Remove</em>' containment reference.
+ * @see #setCascadeRemove(EmptyType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getCascadeType_CascadeRemove()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='cascade-remove' namespace='##targetNamespace'"
+ * @generated
+ */
+ EmptyType getCascadeRemove();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.CascadeType#getCascadeRemove <em>Cascade Remove</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cascade Remove</em>' containment reference.
+ * @see #getCascadeRemove()
+ * @generated
+ */
+ void setCascadeRemove(EmptyType value);
+
+ /**
+ * Returns the value of the '<em><b>Cascade Refresh</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cascade Refresh</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cascade Refresh</em>' containment reference.
+ * @see #setCascadeRefresh(EmptyType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getCascadeType_CascadeRefresh()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='cascade-refresh' namespace='##targetNamespace'"
+ * @generated
+ */
+ EmptyType getCascadeRefresh();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.CascadeType#getCascadeRefresh <em>Cascade Refresh</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cascade Refresh</em>' containment reference.
+ * @see #getCascadeRefresh()
+ * @generated
+ */
+ void setCascadeRefresh(EmptyType value);
+
+} // CascadeType
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Column.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Column.java
new file mode 100755
index 000000000..f3de1cbf0
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Column.java
@@ -0,0 +1,517 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Column.java,v 1.2 2009/03/23 19:01:40 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Column</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface Column {
+ * String name() default "";
+ * boolean unique() default false;
+ * boolean nullable() default true;
+ * boolean insertable() default true;
+ * boolean updatable() default true;
+ * String columnDefinition() default "";
+ * String table() default "";
+ * int length() default 255;
+ * int precision() default 0; // decimal precision
+ * int scale() default 0; // decimal scale
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Column#getColumnDefinition <em>Column Definition</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Column#isInsertable <em>Insertable</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Column#getLength <em>Length</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Column#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Column#isNullable <em>Nullable</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Column#getPrecision <em>Precision</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Column#getScale <em>Scale</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Column#getTable <em>Table</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Column#isUnique <em>Unique</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Column#isUpdatable <em>Updatable</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumn()
+ * @model extendedMetaData="name='column' kind='empty'"
+ * @generated
+ */
+public interface Column extends EObject {
+ /**
+ * Returns the value of the '<em><b>Column Definition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Column Definition</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Column Definition</em>' attribute.
+ * @see #setColumnDefinition(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumn_ColumnDefinition()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='column-definition'"
+ * @generated
+ */
+ String getColumnDefinition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getColumnDefinition <em>Column Definition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Column Definition</em>' attribute.
+ * @see #getColumnDefinition()
+ * @generated
+ */
+ void setColumnDefinition(String value);
+
+ /**
+ * Returns the value of the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Insertable</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Insertable</em>' attribute.
+ * @see #isSetInsertable()
+ * @see #unsetInsertable()
+ * @see #setInsertable(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumn_Insertable()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='insertable'"
+ * @generated
+ */
+ boolean isInsertable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isInsertable <em>Insertable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Insertable</em>' attribute.
+ * @see #isSetInsertable()
+ * @see #unsetInsertable()
+ * @see #isInsertable()
+ * @generated
+ */
+ void setInsertable(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isInsertable <em>Insertable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetInsertable()
+ * @see #isInsertable()
+ * @see #setInsertable(boolean)
+ * @generated
+ */
+ void unsetInsertable();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isInsertable <em>Insertable</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Insertable</em>' attribute is set.
+ * @see #unsetInsertable()
+ * @see #isInsertable()
+ * @see #setInsertable(boolean)
+ * @generated
+ */
+ boolean isSetInsertable();
+
+ /**
+ * Returns the value of the '<em><b>Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Length</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Length</em>' attribute.
+ * @see #isSetLength()
+ * @see #unsetLength()
+ * @see #setLength(int)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumn_Length()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Int"
+ * extendedMetaData="kind='attribute' name='length'"
+ * @generated
+ */
+ int getLength();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getLength <em>Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Length</em>' attribute.
+ * @see #isSetLength()
+ * @see #unsetLength()
+ * @see #getLength()
+ * @generated
+ */
+ void setLength(int value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getLength <em>Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLength()
+ * @see #getLength()
+ * @see #setLength(int)
+ * @generated
+ */
+ void unsetLength();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getLength <em>Length</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Length</em>' attribute is set.
+ * @see #unsetLength()
+ * @see #getLength()
+ * @see #setLength(int)
+ * @generated
+ */
+ boolean isSetLength();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumn_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='name'"
+ * annotation="teneo.escape value='true'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Nullable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Nullable</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Nullable</em>' attribute.
+ * @see #isSetNullable()
+ * @see #unsetNullable()
+ * @see #setNullable(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumn_Nullable()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='nullable'"
+ * @generated
+ */
+ boolean isNullable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isNullable <em>Nullable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Nullable</em>' attribute.
+ * @see #isSetNullable()
+ * @see #unsetNullable()
+ * @see #isNullable()
+ * @generated
+ */
+ void setNullable(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isNullable <em>Nullable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetNullable()
+ * @see #isNullable()
+ * @see #setNullable(boolean)
+ * @generated
+ */
+ void unsetNullable();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isNullable <em>Nullable</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Nullable</em>' attribute is set.
+ * @see #unsetNullable()
+ * @see #isNullable()
+ * @see #setNullable(boolean)
+ * @generated
+ */
+ boolean isSetNullable();
+
+ /**
+ * Returns the value of the '<em><b>Precision</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Precision</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Precision</em>' attribute.
+ * @see #isSetPrecision()
+ * @see #unsetPrecision()
+ * @see #setPrecision(int)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumn_Precision()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Int"
+ * extendedMetaData="kind='attribute' name='precision'"
+ * @generated
+ */
+ int getPrecision();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getPrecision <em>Precision</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Precision</em>' attribute.
+ * @see #isSetPrecision()
+ * @see #unsetPrecision()
+ * @see #getPrecision()
+ * @generated
+ */
+ void setPrecision(int value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getPrecision <em>Precision</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetPrecision()
+ * @see #getPrecision()
+ * @see #setPrecision(int)
+ * @generated
+ */
+ void unsetPrecision();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getPrecision <em>Precision</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Precision</em>' attribute is set.
+ * @see #unsetPrecision()
+ * @see #getPrecision()
+ * @see #setPrecision(int)
+ * @generated
+ */
+ boolean isSetPrecision();
+
+ /**
+ * Returns the value of the '<em><b>Scale</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Scale</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Scale</em>' attribute.
+ * @see #isSetScale()
+ * @see #unsetScale()
+ * @see #setScale(int)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumn_Scale()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Int"
+ * extendedMetaData="kind='attribute' name='scale'"
+ * @generated
+ */
+ int getScale();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getScale <em>Scale</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Scale</em>' attribute.
+ * @see #isSetScale()
+ * @see #unsetScale()
+ * @see #getScale()
+ * @generated
+ */
+ void setScale(int value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getScale <em>Scale</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetScale()
+ * @see #getScale()
+ * @see #setScale(int)
+ * @generated
+ */
+ void unsetScale();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getScale <em>Scale</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Scale</em>' attribute is set.
+ * @see #unsetScale()
+ * @see #getScale()
+ * @see #setScale(int)
+ * @generated
+ */
+ boolean isSetScale();
+
+ /**
+ * Returns the value of the '<em><b>Table</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table</em>' attribute.
+ * @see #setTable(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumn_Table()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='table'"
+ * @generated
+ */
+ String getTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#getTable <em>Table</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table</em>' attribute.
+ * @see #getTable()
+ * @generated
+ */
+ void setTable(String value);
+
+ /**
+ * Returns the value of the '<em><b>Unique</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unique</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unique</em>' attribute.
+ * @see #isSetUnique()
+ * @see #unsetUnique()
+ * @see #setUnique(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumn_Unique()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='unique'"
+ * @generated
+ */
+ boolean isUnique();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isUnique <em>Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unique</em>' attribute.
+ * @see #isSetUnique()
+ * @see #unsetUnique()
+ * @see #isUnique()
+ * @generated
+ */
+ void setUnique(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isUnique <em>Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetUnique()
+ * @see #isUnique()
+ * @see #setUnique(boolean)
+ * @generated
+ */
+ void unsetUnique();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isUnique <em>Unique</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Unique</em>' attribute is set.
+ * @see #unsetUnique()
+ * @see #isUnique()
+ * @see #setUnique(boolean)
+ * @generated
+ */
+ boolean isSetUnique();
+
+ /**
+ * Returns the value of the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Updatable</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Updatable</em>' attribute.
+ * @see #isSetUpdatable()
+ * @see #unsetUpdatable()
+ * @see #setUpdatable(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumn_Updatable()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='updatable'"
+ * @generated
+ */
+ boolean isUpdatable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isUpdatable <em>Updatable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Updatable</em>' attribute.
+ * @see #isSetUpdatable()
+ * @see #unsetUpdatable()
+ * @see #isUpdatable()
+ * @generated
+ */
+ void setUpdatable(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isUpdatable <em>Updatable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetUpdatable()
+ * @see #isUpdatable()
+ * @see #setUpdatable(boolean)
+ * @generated
+ */
+ void unsetUpdatable();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Column#isUpdatable <em>Updatable</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Updatable</em>' attribute is set.
+ * @see #unsetUpdatable()
+ * @see #isUpdatable()
+ * @see #setUpdatable(boolean)
+ * @generated
+ */
+ boolean isSetUpdatable();
+
+} // Column
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ColumnResult.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ColumnResult.java
new file mode 100755
index 000000000..74cbff430
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ColumnResult.java
@@ -0,0 +1,66 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ColumnResult.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Column Result</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({}) @Retention(RUNTIME)
+ * public @interface ColumnResult {
+ * String name();
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ColumnResult#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumnResult()
+ * @model extendedMetaData="name='column-result' kind='empty'"
+ * @generated
+ */
+public interface ColumnResult extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getColumnResult_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ColumnResult#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // ColumnResult
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DiscriminatorColumn.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DiscriminatorColumn.java
new file mode 100755
index 000000000..f088f9696
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DiscriminatorColumn.java
@@ -0,0 +1,211 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DiscriminatorColumn.java,v 1.2 2009/03/23 19:01:40 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Discriminator Column</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({TYPE}) @Retention(RUNTIME)
+ * public @interface DiscriminatorColumn {
+ * String name() default "DTYPE";
+ * DiscriminatorType discriminatorType() default STRING;
+ * String columnDefinition() default "";
+ * int length() default 31;
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getColumnDefinition <em>Column Definition</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getDiscriminatorType <em>Discriminator Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getLength <em>Length</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getDiscriminatorColumn()
+ * @model extendedMetaData="name='discriminator-column' kind='empty'"
+ * @generated
+ */
+public interface DiscriminatorColumn extends EObject {
+ /**
+ * Returns the value of the '<em><b>Column Definition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Column Definition</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Column Definition</em>' attribute.
+ * @see #setColumnDefinition(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getDiscriminatorColumn_ColumnDefinition()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='column-definition'"
+ * @generated
+ */
+ String getColumnDefinition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getColumnDefinition <em>Column Definition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Column Definition</em>' attribute.
+ * @see #getColumnDefinition()
+ * @generated
+ */
+ void setColumnDefinition(String value);
+
+ /**
+ * Returns the value of the '<em><b>Discriminator Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Discriminator Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Discriminator Type</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.DiscriminatorType
+ * @see #isSetDiscriminatorType()
+ * @see #unsetDiscriminatorType()
+ * @see #setDiscriminatorType(DiscriminatorType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getDiscriminatorColumn_DiscriminatorType()
+ * @model unsettable="true"
+ * extendedMetaData="kind='attribute' name='discriminator-type'"
+ * @generated
+ */
+ DiscriminatorType getDiscriminatorType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getDiscriminatorType <em>Discriminator Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Discriminator Type</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.DiscriminatorType
+ * @see #isSetDiscriminatorType()
+ * @see #unsetDiscriminatorType()
+ * @see #getDiscriminatorType()
+ * @generated
+ */
+ void setDiscriminatorType(DiscriminatorType value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getDiscriminatorType <em>Discriminator Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDiscriminatorType()
+ * @see #getDiscriminatorType()
+ * @see #setDiscriminatorType(DiscriminatorType)
+ * @generated
+ */
+ void unsetDiscriminatorType();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getDiscriminatorType <em>Discriminator Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Discriminator Type</em>' attribute is set.
+ * @see #unsetDiscriminatorType()
+ * @see #getDiscriminatorType()
+ * @see #setDiscriminatorType(DiscriminatorType)
+ * @generated
+ */
+ boolean isSetDiscriminatorType();
+
+ /**
+ * Returns the value of the '<em><b>Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Length</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Length</em>' attribute.
+ * @see #isSetLength()
+ * @see #unsetLength()
+ * @see #setLength(int)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getDiscriminatorColumn_Length()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Int"
+ * extendedMetaData="kind='attribute' name='length'"
+ * @generated
+ */
+ int getLength();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getLength <em>Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Length</em>' attribute.
+ * @see #isSetLength()
+ * @see #unsetLength()
+ * @see #getLength()
+ * @generated
+ */
+ void setLength(int value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getLength <em>Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLength()
+ * @see #getLength()
+ * @see #setLength(int)
+ * @generated
+ */
+ void unsetLength();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getLength <em>Length</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Length</em>' attribute is set.
+ * @see #unsetLength()
+ * @see #getLength()
+ * @see #setLength(int)
+ * @generated
+ */
+ boolean isSetLength();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getDiscriminatorColumn_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='name'"
+ * annotation="teneo.escape value='true'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.DiscriminatorColumn#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // DiscriminatorColumn
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DiscriminatorType.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DiscriminatorType.java
new file mode 100755
index 000000000..4eabf6fed
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DiscriminatorType.java
@@ -0,0 +1,246 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DiscriminatorType.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Discriminator Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ *
+ * public enum DiscriminatorType { STRING, CHAR, INTEGER };
+ *
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getDiscriminatorType()
+ * @model extendedMetaData="name='discriminator-type'"
+ * @generated
+ */
+public enum DiscriminatorType implements Enumerator {
+ /**
+ * The '<em><b>STRING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STRING_VALUE
+ * @generated
+ * @ordered
+ */
+ STRING(0, "STRING", "STRING"),
+
+ /**
+ * The '<em><b>CHAR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CHAR_VALUE
+ * @generated
+ * @ordered
+ */
+ CHAR(1, "CHAR", "CHAR"),
+
+ /**
+ * The '<em><b>INTEGER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTEGER_VALUE
+ * @generated
+ * @ordered
+ */
+ INTEGER(2, "INTEGER", "INTEGER");
+
+ /**
+ * The '<em><b>STRING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STRING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STRING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STRING_VALUE = 0;
+
+ /**
+ * The '<em><b>CHAR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CHAR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CHAR
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CHAR_VALUE = 1;
+
+ /**
+ * The '<em><b>INTEGER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INTEGER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTEGER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INTEGER_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Discriminator Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DiscriminatorType[] VALUES_ARRAY =
+ new DiscriminatorType[] {
+ STRING,
+ CHAR,
+ INTEGER,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Discriminator Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<DiscriminatorType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Discriminator Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DiscriminatorType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DiscriminatorType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Discriminator Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DiscriminatorType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DiscriminatorType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Discriminator Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DiscriminatorType get(int value) {
+ switch (value) {
+ case STRING_VALUE: return STRING;
+ case CHAR_VALUE: return CHAR;
+ case INTEGER_VALUE: return INTEGER;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DiscriminatorType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //DiscriminatorType
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DocumentRoot.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DocumentRoot.java
new file mode 100755
index 000000000..34c06b833
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/DocumentRoot.java
@@ -0,0 +1,115 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DocumentRoot.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Document Root</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.DocumentRoot#getMixed <em>Mixed</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.DocumentRoot#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.DocumentRoot#getXSISchemaLocation <em>XSI Schema Location</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.DocumentRoot#getEntityMappings <em>Entity Mappings</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getDocumentRoot()
+ * @model extendedMetaData="name='' kind='mixed'"
+ * @generated
+ */
+public interface DocumentRoot extends EObject {
+ /**
+ * Returns the value of the '<em><b>Mixed</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mixed</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mixed</em>' attribute list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getDocumentRoot_Mixed()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * extendedMetaData="kind='elementWildcard' name=':mixed'"
+ * @generated
+ */
+ FeatureMap getMixed();
+
+ /**
+ * Returns the value of the '<em><b>XMLNS Prefix Map</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>XMLNS Prefix Map</em>' map isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>XMLNS Prefix Map</em>' map.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getDocumentRoot_XMLNSPrefixMap()
+ * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" transient="true"
+ * extendedMetaData="kind='attribute' name='xmlns:prefix'"
+ * @generated
+ */
+ EMap<String, String> getXMLNSPrefixMap();
+
+ /**
+ * Returns the value of the '<em><b>XSI Schema Location</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>XSI Schema Location</em>' map isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>XSI Schema Location</em>' map.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getDocumentRoot_XSISchemaLocation()
+ * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" transient="true"
+ * extendedMetaData="kind='attribute' name='xsi:schemaLocation'"
+ * @generated
+ */
+ EMap<String, String> getXSISchemaLocation();
+
+ /**
+ * Returns the value of the '<em><b>Entity Mappings</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Entity Mappings</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Entity Mappings</em>' containment reference.
+ * @see #setEntityMappings(EntityMappingsType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getDocumentRoot_EntityMappings()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='entity-mappings' namespace='##targetNamespace'"
+ * @generated
+ */
+ EntityMappingsType getEntityMappings();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.DocumentRoot#getEntityMappings <em>Entity Mappings</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Entity Mappings</em>' containment reference.
+ * @see #getEntityMappings()
+ * @generated
+ */
+ void setEntityMappings(EntityMappingsType value);
+
+} // DocumentRoot
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Embeddable.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Embeddable.java
new file mode 100755
index 000000000..b7b91afa3
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Embeddable.java
@@ -0,0 +1,240 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Embeddable.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Embeddable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * Defines the settings and mappings for embeddable objects. Is
+ * allowed to be sparsely populated and used in conjunction with
+ * the annotations. Alternatively, the metadata-complete attribute
+ * can be used to indicate that no annotations are to be processed
+ * in the class. If this is the case then the defaulting rules will
+ * be recursively applied.
+ *
+ * @Target({TYPE}) @Retention(RUNTIME)
+ * public @interface Embeddable {}
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#getAttributes <em>Attributes</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#getAccess <em>Access</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#getClass_ <em>Class</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#isMetadataComplete <em>Metadata Complete</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddable()
+ * @model extendedMetaData="name='embeddable' kind='elementOnly'"
+ * @generated
+ */
+public interface Embeddable extends EObject {
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddable_Description()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='element' name='description' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+ /**
+ * Returns the value of the '<em><b>Attributes</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attributes</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attributes</em>' containment reference.
+ * @see #setAttributes(EmbeddableAttributes)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddable_Attributes()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='attributes' namespace='##targetNamespace'"
+ * @generated
+ */
+ EmbeddableAttributes getAttributes();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#getAttributes <em>Attributes</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attributes</em>' containment reference.
+ * @see #getAttributes()
+ * @generated
+ */
+ void setAttributes(EmbeddableAttributes value);
+
+ /**
+ * Returns the value of the '<em><b>Access</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.jpa.orm.AccessType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Access</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Access</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.AccessType
+ * @see #isSetAccess()
+ * @see #unsetAccess()
+ * @see #setAccess(AccessType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddable_Access()
+ * @model unsettable="true"
+ * extendedMetaData="kind='attribute' name='access'"
+ * @generated
+ */
+ AccessType getAccess();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#getAccess <em>Access</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Access</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.AccessType
+ * @see #isSetAccess()
+ * @see #unsetAccess()
+ * @see #getAccess()
+ * @generated
+ */
+ void setAccess(AccessType value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#getAccess <em>Access</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAccess()
+ * @see #getAccess()
+ * @see #setAccess(AccessType)
+ * @generated
+ */
+ void unsetAccess();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#getAccess <em>Access</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Access</em>' attribute is set.
+ * @see #unsetAccess()
+ * @see #getAccess()
+ * @see #setAccess(AccessType)
+ * @generated
+ */
+ boolean isSetAccess();
+
+ /**
+ * Returns the value of the '<em><b>Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Class</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Class</em>' attribute.
+ * @see #setClass(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddable_Class()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='class'"
+ * @generated
+ */
+ String getClass_();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#getClass_ <em>Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Class</em>' attribute.
+ * @see #getClass_()
+ * @generated
+ */
+ void setClass(String value);
+
+ /**
+ * Returns the value of the '<em><b>Metadata Complete</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Metadata Complete</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Metadata Complete</em>' attribute.
+ * @see #isSetMetadataComplete()
+ * @see #unsetMetadataComplete()
+ * @see #setMetadataComplete(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddable_MetadataComplete()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='metadata-complete'"
+ * @generated
+ */
+ boolean isMetadataComplete();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#isMetadataComplete <em>Metadata Complete</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Metadata Complete</em>' attribute.
+ * @see #isSetMetadataComplete()
+ * @see #unsetMetadataComplete()
+ * @see #isMetadataComplete()
+ * @generated
+ */
+ void setMetadataComplete(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#isMetadataComplete <em>Metadata Complete</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMetadataComplete()
+ * @see #isMetadataComplete()
+ * @see #setMetadataComplete(boolean)
+ * @generated
+ */
+ void unsetMetadataComplete();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Embeddable#isMetadataComplete <em>Metadata Complete</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Metadata Complete</em>' attribute is set.
+ * @see #unsetMetadataComplete()
+ * @see #isMetadataComplete()
+ * @see #setMetadataComplete(boolean)
+ * @generated
+ */
+ boolean isSetMetadataComplete();
+
+} // Embeddable
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmbeddableAttributes.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmbeddableAttributes.java
new file mode 100755
index 000000000..a6e824aca
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmbeddableAttributes.java
@@ -0,0 +1,65 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: EmbeddableAttributes.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Embeddable Attributes</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EmbeddableAttributes#getBasic <em>Basic</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EmbeddableAttributes#getTransient <em>Transient</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddableAttributes()
+ * @model extendedMetaData="name='embeddable-attributes' kind='elementOnly'"
+ * @generated
+ */
+public interface EmbeddableAttributes extends EObject {
+ /**
+ * Returns the value of the '<em><b>Basic</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.Basic}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Basic</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Basic</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddableAttributes_Basic()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='basic' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<Basic> getBasic();
+
+ /**
+ * Returns the value of the '<em><b>Transient</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.Transient}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transient</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transient</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddableAttributes_Transient()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='transient' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<Transient> getTransient();
+
+} // EmbeddableAttributes
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Embedded.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Embedded.java
new file mode 100755
index 000000000..92c59a089
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Embedded.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Embedded.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Embedded</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface Embedded {}
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Embedded#getAttributeOverride <em>Attribute Override</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Embedded#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbedded()
+ * @model extendedMetaData="name='embedded' kind='elementOnly'"
+ * @generated
+ */
+public interface Embedded extends EObject {
+ /**
+ * Returns the value of the '<em><b>Attribute Override</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.AttributeOverride}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute Override</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute Override</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbedded_AttributeOverride()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='attribute-override' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<AttributeOverride> getAttributeOverride();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbedded_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Embedded#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // Embedded
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmbeddedId.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmbeddedId.java
new file mode 100755
index 000000000..2f3ab2047
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmbeddedId.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: EmbeddedId.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Embedded Id</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface EmbeddedId {}
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EmbeddedId#getAttributeOverride <em>Attribute Override</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EmbeddedId#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddedId()
+ * @model extendedMetaData="name='embedded-id' kind='elementOnly'"
+ * @generated
+ */
+public interface EmbeddedId extends EObject {
+ /**
+ * Returns the value of the '<em><b>Attribute Override</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.AttributeOverride}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute Override</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute Override</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddedId_AttributeOverride()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='attribute-override' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<AttributeOverride> getAttributeOverride();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmbeddedId_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EmbeddedId#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // EmbeddedId
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmptyType.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmptyType.java
new file mode 100755
index 000000000..58d38c35a
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EmptyType.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: EmptyType.java,v 1.1 2009/03/15 23:44:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Empty Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEmptyType()
+ * @model extendedMetaData="name='emptyType' kind='empty'"
+ * @generated
+ */
+public interface EmptyType extends EObject {
+} // EmptyType
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Entity.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Entity.java
new file mode 100755
index 000000000..26d3fc159
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Entity.java
@@ -0,0 +1,875 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Entity.java,v 1.1 2009/03/15 23:44:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Entity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * Defines the settings and mappings for an entity. Is allowed to be
+ * sparsely populated and used in conjunction with the annotations.
+ * Alternatively, the metadata-complete attribute can be used to
+ * indicate that no annotations on the entity class (and its fields
+ * or properties) are to be processed. If this is the case then
+ * the defaulting rules for the entity and its subelements will
+ * be recursively applied.
+ *
+ * @Target(TYPE) @Retention(RUNTIME)
+ * public @interface Entity {
+ * String name() default "";
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getTable <em>Table</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getSecondaryTable <em>Secondary Table</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPrimaryKeyJoinColumn <em>Primary Key Join Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getIdClass <em>Id Class</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getInheritance <em>Inheritance</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getDiscriminatorValue <em>Discriminator Value</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getDiscriminatorColumn <em>Discriminator Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getSequenceGenerator <em>Sequence Generator</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getTableGenerator <em>Table Generator</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getNamedQuery <em>Named Query</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getNamedNativeQuery <em>Named Native Query</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getSqlResultSetMapping <em>Sql Result Set Mapping</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getExcludeDefaultListeners <em>Exclude Default Listeners</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getExcludeSuperclassListeners <em>Exclude Superclass Listeners</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getEntityListeners <em>Entity Listeners</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPrePersist <em>Pre Persist</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPostPersist <em>Post Persist</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPreRemove <em>Pre Remove</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPostRemove <em>Post Remove</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPreUpdate <em>Pre Update</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPostUpdate <em>Post Update</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPostLoad <em>Post Load</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getAttributeOverride <em>Attribute Override</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getAssociationOverride <em>Association Override</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getAttributes <em>Attributes</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getAccess <em>Access</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getClass_ <em>Class</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#isMetadataComplete <em>Metadata Complete</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Entity#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity()
+ * @model extendedMetaData="name='entity' kind='elementOnly'"
+ * @generated
+ */
+public interface Entity extends EObject {
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_Description()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='element' name='description' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+ /**
+ * Returns the value of the '<em><b>Table</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table</em>' containment reference.
+ * @see #setTable(Table)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_Table()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='table' namespace='##targetNamespace'"
+ * @generated
+ */
+ Table getTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getTable <em>Table</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table</em>' containment reference.
+ * @see #getTable()
+ * @generated
+ */
+ void setTable(Table value);
+
+ /**
+ * Returns the value of the '<em><b>Secondary Table</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.SecondaryTable}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Secondary Table</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Secondary Table</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_SecondaryTable()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='secondary-table' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<SecondaryTable> getSecondaryTable();
+
+ /**
+ * Returns the value of the '<em><b>Primary Key Join Column</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.PrimaryKeyJoinColumn}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Primary Key Join Column</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Primary Key Join Column</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_PrimaryKeyJoinColumn()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='primary-key-join-column' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<PrimaryKeyJoinColumn> getPrimaryKeyJoinColumn();
+
+ /**
+ * Returns the value of the '<em><b>Id Class</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id Class</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id Class</em>' containment reference.
+ * @see #setIdClass(IdClass)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_IdClass()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='id-class' namespace='##targetNamespace'"
+ * @generated
+ */
+ IdClass getIdClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getIdClass <em>Id Class</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id Class</em>' containment reference.
+ * @see #getIdClass()
+ * @generated
+ */
+ void setIdClass(IdClass value);
+
+ /**
+ * Returns the value of the '<em><b>Inheritance</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inheritance</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Inheritance</em>' containment reference.
+ * @see #setInheritance(Inheritance)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_Inheritance()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='inheritance' namespace='##targetNamespace'"
+ * @generated
+ */
+ Inheritance getInheritance();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getInheritance <em>Inheritance</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Inheritance</em>' containment reference.
+ * @see #getInheritance()
+ * @generated
+ */
+ void setInheritance(Inheritance value);
+
+ /**
+ * Returns the value of the '<em><b>Discriminator Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Discriminator Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Discriminator Value</em>' attribute.
+ * @see #setDiscriminatorValue(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_DiscriminatorValue()
+ * @model dataType="org.eclipse.emf.teneo.jpa.orm.DiscriminatorValue"
+ * extendedMetaData="kind='element' name='discriminator-value' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getDiscriminatorValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getDiscriminatorValue <em>Discriminator Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Discriminator Value</em>' attribute.
+ * @see #getDiscriminatorValue()
+ * @generated
+ */
+ void setDiscriminatorValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>Discriminator Column</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Discriminator Column</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Discriminator Column</em>' containment reference.
+ * @see #setDiscriminatorColumn(DiscriminatorColumn)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_DiscriminatorColumn()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='discriminator-column' namespace='##targetNamespace'"
+ * @generated
+ */
+ DiscriminatorColumn getDiscriminatorColumn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getDiscriminatorColumn <em>Discriminator Column</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Discriminator Column</em>' containment reference.
+ * @see #getDiscriminatorColumn()
+ * @generated
+ */
+ void setDiscriminatorColumn(DiscriminatorColumn value);
+
+ /**
+ * Returns the value of the '<em><b>Sequence Generator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sequence Generator</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sequence Generator</em>' containment reference.
+ * @see #setSequenceGenerator(SequenceGenerator)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_SequenceGenerator()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='sequence-generator' namespace='##targetNamespace'"
+ * @generated
+ */
+ SequenceGenerator getSequenceGenerator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getSequenceGenerator <em>Sequence Generator</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sequence Generator</em>' containment reference.
+ * @see #getSequenceGenerator()
+ * @generated
+ */
+ void setSequenceGenerator(SequenceGenerator value);
+
+ /**
+ * Returns the value of the '<em><b>Table Generator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table Generator</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table Generator</em>' containment reference.
+ * @see #setTableGenerator(TableGenerator)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_TableGenerator()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='table-generator' namespace='##targetNamespace'"
+ * @generated
+ */
+ TableGenerator getTableGenerator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getTableGenerator <em>Table Generator</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table Generator</em>' containment reference.
+ * @see #getTableGenerator()
+ * @generated
+ */
+ void setTableGenerator(TableGenerator value);
+
+ /**
+ * Returns the value of the '<em><b>Named Query</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.NamedQuery}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Named Query</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Named Query</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_NamedQuery()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='named-query' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<NamedQuery> getNamedQuery();
+
+ /**
+ * Returns the value of the '<em><b>Named Native Query</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.NamedNativeQuery}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Named Native Query</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Named Native Query</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_NamedNativeQuery()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='named-native-query' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<NamedNativeQuery> getNamedNativeQuery();
+
+ /**
+ * Returns the value of the '<em><b>Sql Result Set Mapping</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.SqlResultSetMapping}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sql Result Set Mapping</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sql Result Set Mapping</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_SqlResultSetMapping()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='sql-result-set-mapping' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<SqlResultSetMapping> getSqlResultSetMapping();
+
+ /**
+ * Returns the value of the '<em><b>Exclude Default Listeners</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exclude Default Listeners</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exclude Default Listeners</em>' containment reference.
+ * @see #setExcludeDefaultListeners(EmptyType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_ExcludeDefaultListeners()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='exclude-default-listeners' namespace='##targetNamespace'"
+ * @generated
+ */
+ EmptyType getExcludeDefaultListeners();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getExcludeDefaultListeners <em>Exclude Default Listeners</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exclude Default Listeners</em>' containment reference.
+ * @see #getExcludeDefaultListeners()
+ * @generated
+ */
+ void setExcludeDefaultListeners(EmptyType value);
+
+ /**
+ * Returns the value of the '<em><b>Exclude Superclass Listeners</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exclude Superclass Listeners</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exclude Superclass Listeners</em>' containment reference.
+ * @see #setExcludeSuperclassListeners(EmptyType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_ExcludeSuperclassListeners()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='exclude-superclass-listeners' namespace='##targetNamespace'"
+ * @generated
+ */
+ EmptyType getExcludeSuperclassListeners();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getExcludeSuperclassListeners <em>Exclude Superclass Listeners</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exclude Superclass Listeners</em>' containment reference.
+ * @see #getExcludeSuperclassListeners()
+ * @generated
+ */
+ void setExcludeSuperclassListeners(EmptyType value);
+
+ /**
+ * Returns the value of the '<em><b>Entity Listeners</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Entity Listeners</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Entity Listeners</em>' containment reference.
+ * @see #setEntityListeners(EntityListeners)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_EntityListeners()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='entity-listeners' namespace='##targetNamespace'"
+ * @generated
+ */
+ EntityListeners getEntityListeners();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getEntityListeners <em>Entity Listeners</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Entity Listeners</em>' containment reference.
+ * @see #getEntityListeners()
+ * @generated
+ */
+ void setEntityListeners(EntityListeners value);
+
+ /**
+ * Returns the value of the '<em><b>Pre Persist</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Persist</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pre Persist</em>' containment reference.
+ * @see #setPrePersist(PrePersist)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_PrePersist()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='pre-persist' namespace='##targetNamespace'"
+ * @generated
+ */
+ PrePersist getPrePersist();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPrePersist <em>Pre Persist</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Persist</em>' containment reference.
+ * @see #getPrePersist()
+ * @generated
+ */
+ void setPrePersist(PrePersist value);
+
+ /**
+ * Returns the value of the '<em><b>Post Persist</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Persist</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Persist</em>' containment reference.
+ * @see #setPostPersist(PostPersist)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_PostPersist()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-persist' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostPersist getPostPersist();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPostPersist <em>Post Persist</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Persist</em>' containment reference.
+ * @see #getPostPersist()
+ * @generated
+ */
+ void setPostPersist(PostPersist value);
+
+ /**
+ * Returns the value of the '<em><b>Pre Remove</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Remove</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pre Remove</em>' containment reference.
+ * @see #setPreRemove(PreRemove)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_PreRemove()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='pre-remove' namespace='##targetNamespace'"
+ * @generated
+ */
+ PreRemove getPreRemove();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPreRemove <em>Pre Remove</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Remove</em>' containment reference.
+ * @see #getPreRemove()
+ * @generated
+ */
+ void setPreRemove(PreRemove value);
+
+ /**
+ * Returns the value of the '<em><b>Post Remove</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Remove</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Remove</em>' containment reference.
+ * @see #setPostRemove(PostRemove)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_PostRemove()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-remove' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostRemove getPostRemove();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPostRemove <em>Post Remove</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Remove</em>' containment reference.
+ * @see #getPostRemove()
+ * @generated
+ */
+ void setPostRemove(PostRemove value);
+
+ /**
+ * Returns the value of the '<em><b>Pre Update</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Update</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pre Update</em>' containment reference.
+ * @see #setPreUpdate(PreUpdate)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_PreUpdate()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='pre-update' namespace='##targetNamespace'"
+ * @generated
+ */
+ PreUpdate getPreUpdate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPreUpdate <em>Pre Update</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Update</em>' containment reference.
+ * @see #getPreUpdate()
+ * @generated
+ */
+ void setPreUpdate(PreUpdate value);
+
+ /**
+ * Returns the value of the '<em><b>Post Update</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Update</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Update</em>' containment reference.
+ * @see #setPostUpdate(PostUpdate)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_PostUpdate()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-update' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostUpdate getPostUpdate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPostUpdate <em>Post Update</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Update</em>' containment reference.
+ * @see #getPostUpdate()
+ * @generated
+ */
+ void setPostUpdate(PostUpdate value);
+
+ /**
+ * Returns the value of the '<em><b>Post Load</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Load</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Load</em>' containment reference.
+ * @see #setPostLoad(PostLoad)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_PostLoad()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-load' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostLoad getPostLoad();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getPostLoad <em>Post Load</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Load</em>' containment reference.
+ * @see #getPostLoad()
+ * @generated
+ */
+ void setPostLoad(PostLoad value);
+
+ /**
+ * Returns the value of the '<em><b>Attribute Override</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.AttributeOverride}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute Override</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute Override</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_AttributeOverride()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='attribute-override' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<AttributeOverride> getAttributeOverride();
+
+ /**
+ * Returns the value of the '<em><b>Association Override</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.AssociationOverride}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Association Override</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Association Override</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_AssociationOverride()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='association-override' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<AssociationOverride> getAssociationOverride();
+
+ /**
+ * Returns the value of the '<em><b>Attributes</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attributes</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attributes</em>' containment reference.
+ * @see #setAttributes(Attributes)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_Attributes()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='attributes' namespace='##targetNamespace'"
+ * @generated
+ */
+ Attributes getAttributes();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getAttributes <em>Attributes</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attributes</em>' containment reference.
+ * @see #getAttributes()
+ * @generated
+ */
+ void setAttributes(Attributes value);
+
+ /**
+ * Returns the value of the '<em><b>Access</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.jpa.orm.AccessType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Access</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Access</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.AccessType
+ * @see #isSetAccess()
+ * @see #unsetAccess()
+ * @see #setAccess(AccessType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_Access()
+ * @model unsettable="true"
+ * extendedMetaData="kind='attribute' name='access'"
+ * @generated
+ */
+ AccessType getAccess();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getAccess <em>Access</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Access</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.AccessType
+ * @see #isSetAccess()
+ * @see #unsetAccess()
+ * @see #getAccess()
+ * @generated
+ */
+ void setAccess(AccessType value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getAccess <em>Access</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAccess()
+ * @see #getAccess()
+ * @see #setAccess(AccessType)
+ * @generated
+ */
+ void unsetAccess();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getAccess <em>Access</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Access</em>' attribute is set.
+ * @see #unsetAccess()
+ * @see #getAccess()
+ * @see #setAccess(AccessType)
+ * @generated
+ */
+ boolean isSetAccess();
+
+ /**
+ * Returns the value of the '<em><b>Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Class</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Class</em>' attribute.
+ * @see #setClass(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_Class()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='class'"
+ * @generated
+ */
+ String getClass_();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getClass_ <em>Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Class</em>' attribute.
+ * @see #getClass_()
+ * @generated
+ */
+ void setClass(String value);
+
+ /**
+ * Returns the value of the '<em><b>Metadata Complete</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Metadata Complete</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Metadata Complete</em>' attribute.
+ * @see #isSetMetadataComplete()
+ * @see #unsetMetadataComplete()
+ * @see #setMetadataComplete(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_MetadataComplete()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='metadata-complete'"
+ * @generated
+ */
+ boolean isMetadataComplete();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#isMetadataComplete <em>Metadata Complete</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Metadata Complete</em>' attribute.
+ * @see #isSetMetadataComplete()
+ * @see #unsetMetadataComplete()
+ * @see #isMetadataComplete()
+ * @generated
+ */
+ void setMetadataComplete(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#isMetadataComplete <em>Metadata Complete</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMetadataComplete()
+ * @see #isMetadataComplete()
+ * @see #setMetadataComplete(boolean)
+ * @generated
+ */
+ void unsetMetadataComplete();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#isMetadataComplete <em>Metadata Complete</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Metadata Complete</em>' attribute is set.
+ * @see #unsetMetadataComplete()
+ * @see #isMetadataComplete()
+ * @see #setMetadataComplete(boolean)
+ * @generated
+ */
+ boolean isSetMetadataComplete();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntity_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Entity#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // Entity
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityListener.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityListener.java
new file mode 100755
index 000000000..82810fa4a
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityListener.java
@@ -0,0 +1,260 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: EntityListener.java,v 1.1 2009/03/15 23:44:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Entity Listener</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * Defines an entity listener to be invoked at lifecycle events
+ * for the entities that list this listener.
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPrePersist <em>Pre Persist</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPostPersist <em>Post Persist</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPreRemove <em>Pre Remove</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPostRemove <em>Post Remove</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPreUpdate <em>Pre Update</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPostUpdate <em>Post Update</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPostLoad <em>Post Load</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getClass_ <em>Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityListener()
+ * @model extendedMetaData="name='entity-listener' kind='elementOnly'"
+ * @generated
+ */
+public interface EntityListener extends EObject {
+ /**
+ * Returns the value of the '<em><b>Pre Persist</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Persist</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pre Persist</em>' containment reference.
+ * @see #setPrePersist(PrePersist)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityListener_PrePersist()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='pre-persist' namespace='##targetNamespace'"
+ * @generated
+ */
+ PrePersist getPrePersist();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPrePersist <em>Pre Persist</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Persist</em>' containment reference.
+ * @see #getPrePersist()
+ * @generated
+ */
+ void setPrePersist(PrePersist value);
+
+ /**
+ * Returns the value of the '<em><b>Post Persist</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Persist</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Persist</em>' containment reference.
+ * @see #setPostPersist(PostPersist)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityListener_PostPersist()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-persist' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostPersist getPostPersist();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPostPersist <em>Post Persist</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Persist</em>' containment reference.
+ * @see #getPostPersist()
+ * @generated
+ */
+ void setPostPersist(PostPersist value);
+
+ /**
+ * Returns the value of the '<em><b>Pre Remove</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Remove</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pre Remove</em>' containment reference.
+ * @see #setPreRemove(PreRemove)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityListener_PreRemove()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='pre-remove' namespace='##targetNamespace'"
+ * @generated
+ */
+ PreRemove getPreRemove();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPreRemove <em>Pre Remove</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Remove</em>' containment reference.
+ * @see #getPreRemove()
+ * @generated
+ */
+ void setPreRemove(PreRemove value);
+
+ /**
+ * Returns the value of the '<em><b>Post Remove</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Remove</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Remove</em>' containment reference.
+ * @see #setPostRemove(PostRemove)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityListener_PostRemove()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-remove' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostRemove getPostRemove();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPostRemove <em>Post Remove</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Remove</em>' containment reference.
+ * @see #getPostRemove()
+ * @generated
+ */
+ void setPostRemove(PostRemove value);
+
+ /**
+ * Returns the value of the '<em><b>Pre Update</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Update</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pre Update</em>' containment reference.
+ * @see #setPreUpdate(PreUpdate)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityListener_PreUpdate()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='pre-update' namespace='##targetNamespace'"
+ * @generated
+ */
+ PreUpdate getPreUpdate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPreUpdate <em>Pre Update</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Update</em>' containment reference.
+ * @see #getPreUpdate()
+ * @generated
+ */
+ void setPreUpdate(PreUpdate value);
+
+ /**
+ * Returns the value of the '<em><b>Post Update</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Update</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Update</em>' containment reference.
+ * @see #setPostUpdate(PostUpdate)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityListener_PostUpdate()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-update' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostUpdate getPostUpdate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPostUpdate <em>Post Update</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Update</em>' containment reference.
+ * @see #getPostUpdate()
+ * @generated
+ */
+ void setPostUpdate(PostUpdate value);
+
+ /**
+ * Returns the value of the '<em><b>Post Load</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Load</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Load</em>' containment reference.
+ * @see #setPostLoad(PostLoad)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityListener_PostLoad()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-load' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostLoad getPostLoad();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getPostLoad <em>Post Load</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Load</em>' containment reference.
+ * @see #getPostLoad()
+ * @generated
+ */
+ void setPostLoad(PostLoad value);
+
+ /**
+ * Returns the value of the '<em><b>Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Class</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Class</em>' attribute.
+ * @see #setClass(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityListener_Class()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='class'"
+ * @generated
+ */
+ String getClass_();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityListener#getClass_ <em>Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Class</em>' attribute.
+ * @see #getClass_()
+ * @generated
+ */
+ void setClass(String value);
+
+} // EntityListener
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityListeners.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityListeners.java
new file mode 100755
index 000000000..6efc2ee66
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityListeners.java
@@ -0,0 +1,58 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: EntityListeners.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Entity Listeners</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({TYPE}) @Retention(RUNTIME)
+ * public @interface EntityListeners {
+ * Class[] value();
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityListeners#getEntityListener <em>Entity Listener</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityListeners()
+ * @model extendedMetaData="name='entity-listeners' kind='elementOnly'"
+ * @generated
+ */
+public interface EntityListeners extends EObject {
+ /**
+ * Returns the value of the '<em><b>Entity Listener</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.EntityListener}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Entity Listener</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Entity Listener</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityListeners_EntityListener()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='entity-listener' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<EntityListener> getEntityListener();
+
+} // EntityListeners
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityMappingsType.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityMappingsType.java
new file mode 100755
index 000000000..98b1e5eda
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityMappingsType.java
@@ -0,0 +1,458 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: EntityMappingsType.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Entity Mappings Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * The entity-mappings element is the root element of an mapping
+ * file. It contains the following four types of elements:
+ *
+ * 1. The persistence-unit-metadata element contains metadata
+ * for the entire persistence unit. It is undefined if this element
+ * occurs in multiple mapping files within the same persistence unit.
+ *
+ * 2. The package, schema, catalog and access elements apply to all of
+ * the entity, mapped-superclass and embeddable elements defined in
+ * the same file in which they occur.
+ *
+ * 3. The sequence-generator, table-generator, named-query,
+ * named-native-query and sql-result-set-mapping elements are global
+ * to the persistence unit. It is undefined to have more than one
+ * sequence-generator or table-generator of the same name in the same
+ * or different mapping files in a persistence unit. It is also
+ * undefined to have more than one named-query or named-native-query
+ * of the same name in the same or different mapping files in a
+ * persistence unit.
+ *
+ * 4. The entity, mapped-superclass and embeddable elements each define
+ * the mapping information for a managed persistent class. The mapping
+ * information contained in these elements may be complete or it may
+ * be partial.
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getPersistenceUnitMetadata <em>Persistence Unit Metadata</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getPackage <em>Package</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getSchema <em>Schema</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getCatalog <em>Catalog</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getAccess <em>Access</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getSequenceGenerator <em>Sequence Generator</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getTableGenerator <em>Table Generator</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getNamedQuery <em>Named Query</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getNamedNativeQuery <em>Named Native Query</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getSqlResultSetMapping <em>Sql Result Set Mapping</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getMappedSuperclass <em>Mapped Superclass</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getEntity <em>Entity</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getEmbeddable <em>Embeddable</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getVersion <em>Version</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType()
+ * @model extendedMetaData="name='entity-mappings_._type' kind='elementOnly'"
+ * @generated
+ */
+public interface EntityMappingsType extends EObject {
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_Description()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='element' name='description' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+ /**
+ * Returns the value of the '<em><b>Persistence Unit Metadata</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Persistence Unit Metadata</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Persistence Unit Metadata</em>' containment reference.
+ * @see #setPersistenceUnitMetadata(PersistenceUnitMetadata)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_PersistenceUnitMetadata()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='persistence-unit-metadata' namespace='##targetNamespace'"
+ * @generated
+ */
+ PersistenceUnitMetadata getPersistenceUnitMetadata();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getPersistenceUnitMetadata <em>Persistence Unit Metadata</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Persistence Unit Metadata</em>' containment reference.
+ * @see #getPersistenceUnitMetadata()
+ * @generated
+ */
+ void setPersistenceUnitMetadata(PersistenceUnitMetadata value);
+
+ /**
+ * Returns the value of the '<em><b>Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Package</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Package</em>' attribute.
+ * @see #setPackage(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_Package()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='element' name='package' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getPackage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getPackage <em>Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Package</em>' attribute.
+ * @see #getPackage()
+ * @generated
+ */
+ void setPackage(String value);
+
+ /**
+ * Returns the value of the '<em><b>Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Schema</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Schema</em>' attribute.
+ * @see #setSchema(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_Schema()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='element' name='schema' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getSchema <em>Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Schema</em>' attribute.
+ * @see #getSchema()
+ * @generated
+ */
+ void setSchema(String value);
+
+ /**
+ * Returns the value of the '<em><b>Catalog</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Catalog</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Catalog</em>' attribute.
+ * @see #setCatalog(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_Catalog()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='element' name='catalog' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getCatalog();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getCatalog <em>Catalog</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Catalog</em>' attribute.
+ * @see #getCatalog()
+ * @generated
+ */
+ void setCatalog(String value);
+
+ /**
+ * Returns the value of the '<em><b>Access</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.jpa.orm.AccessType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Access</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Access</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.AccessType
+ * @see #isSetAccess()
+ * @see #unsetAccess()
+ * @see #setAccess(AccessType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_Access()
+ * @model unsettable="true"
+ * extendedMetaData="kind='element' name='access' namespace='##targetNamespace'"
+ * @generated
+ */
+ AccessType getAccess();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getAccess <em>Access</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Access</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.AccessType
+ * @see #isSetAccess()
+ * @see #unsetAccess()
+ * @see #getAccess()
+ * @generated
+ */
+ void setAccess(AccessType value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getAccess <em>Access</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAccess()
+ * @see #getAccess()
+ * @see #setAccess(AccessType)
+ * @generated
+ */
+ void unsetAccess();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getAccess <em>Access</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Access</em>' attribute is set.
+ * @see #unsetAccess()
+ * @see #getAccess()
+ * @see #setAccess(AccessType)
+ * @generated
+ */
+ boolean isSetAccess();
+
+ /**
+ * Returns the value of the '<em><b>Sequence Generator</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.SequenceGenerator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sequence Generator</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sequence Generator</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_SequenceGenerator()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='sequence-generator' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<SequenceGenerator> getSequenceGenerator();
+
+ /**
+ * Returns the value of the '<em><b>Table Generator</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.TableGenerator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table Generator</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table Generator</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_TableGenerator()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='table-generator' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<TableGenerator> getTableGenerator();
+
+ /**
+ * Returns the value of the '<em><b>Named Query</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.NamedQuery}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Named Query</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Named Query</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_NamedQuery()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='named-query' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<NamedQuery> getNamedQuery();
+
+ /**
+ * Returns the value of the '<em><b>Named Native Query</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.NamedNativeQuery}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Named Native Query</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Named Native Query</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_NamedNativeQuery()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='named-native-query' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<NamedNativeQuery> getNamedNativeQuery();
+
+ /**
+ * Returns the value of the '<em><b>Sql Result Set Mapping</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.SqlResultSetMapping}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sql Result Set Mapping</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sql Result Set Mapping</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_SqlResultSetMapping()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='sql-result-set-mapping' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<SqlResultSetMapping> getSqlResultSetMapping();
+
+ /**
+ * Returns the value of the '<em><b>Mapped Superclass</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mapped Superclass</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mapped Superclass</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_MappedSuperclass()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='mapped-superclass' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<MappedSuperclass> getMappedSuperclass();
+
+ /**
+ * Returns the value of the '<em><b>Entity</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.Entity}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Entity</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Entity</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_Entity()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='entity' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<Entity> getEntity();
+
+ /**
+ * Returns the value of the '<em><b>Embeddable</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.Embeddable}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Embeddable</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Embeddable</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_Embeddable()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='embeddable' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<Embeddable> getEmbeddable();
+
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' attribute.
+ * The default value is <code>"1.0"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Version</em>' attribute.
+ * @see #isSetVersion()
+ * @see #unsetVersion()
+ * @see #setVersion(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityMappingsType_Version()
+ * @model default="1.0" unsettable="true" dataType="org.eclipse.emf.teneo.jpa.orm.VersionType" required="true"
+ * extendedMetaData="kind='attribute' name='version'"
+ * @generated
+ */
+ String getVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Version</em>' attribute.
+ * @see #isSetVersion()
+ * @see #unsetVersion()
+ * @see #getVersion()
+ * @generated
+ */
+ void setVersion(String value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetVersion()
+ * @see #getVersion()
+ * @see #setVersion(String)
+ * @generated
+ */
+ void unsetVersion();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityMappingsType#getVersion <em>Version</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Version</em>' attribute is set.
+ * @see #unsetVersion()
+ * @see #getVersion()
+ * @see #setVersion(String)
+ * @generated
+ */
+ boolean isSetVersion();
+
+} // EntityMappingsType
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityResult.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityResult.java
new file mode 100755
index 000000000..6915f0d6e
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EntityResult.java
@@ -0,0 +1,116 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: EntityResult.java,v 1.1 2009/03/15 23:45:01 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Entity Result</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({}) @Retention(RUNTIME)
+ * public @interface EntityResult {
+ * Class entityClass();
+ * FieldResult[] fields() default {};
+ * String discriminatorColumn() default "";
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityResult#getFieldResult <em>Field Result</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityResult#getDiscriminatorColumn <em>Discriminator Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.EntityResult#getEntityClass <em>Entity Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityResult()
+ * @model extendedMetaData="name='entity-result' kind='elementOnly'"
+ * @generated
+ */
+public interface EntityResult extends EObject {
+ /**
+ * Returns the value of the '<em><b>Field Result</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.FieldResult}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Field Result</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Field Result</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityResult_FieldResult()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='field-result' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<FieldResult> getFieldResult();
+
+ /**
+ * Returns the value of the '<em><b>Discriminator Column</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Discriminator Column</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Discriminator Column</em>' attribute.
+ * @see #setDiscriminatorColumn(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityResult_DiscriminatorColumn()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='discriminator-column'"
+ * @generated
+ */
+ String getDiscriminatorColumn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityResult#getDiscriminatorColumn <em>Discriminator Column</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Discriminator Column</em>' attribute.
+ * @see #getDiscriminatorColumn()
+ * @generated
+ */
+ void setDiscriminatorColumn(String value);
+
+ /**
+ * Returns the value of the '<em><b>Entity Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Entity Class</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Entity Class</em>' attribute.
+ * @see #setEntityClass(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEntityResult_EntityClass()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='entity-class'"
+ * @generated
+ */
+ String getEntityClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.EntityResult#getEntityClass <em>Entity Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Entity Class</em>' attribute.
+ * @see #getEntityClass()
+ * @generated
+ */
+ void setEntityClass(String value);
+
+} // EntityResult
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EnumType.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EnumType.java
new file mode 100755
index 000000000..a0045acc8
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/EnumType.java
@@ -0,0 +1,222 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: EnumType.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Enum Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ *
+ * public enum EnumType {
+ * ORDINAL,
+ * STRING
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getEnumType()
+ * @model extendedMetaData="name='enum-type'"
+ * @generated
+ */
+public enum EnumType implements Enumerator {
+ /**
+ * The '<em><b>ORDINAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ORDINAL_VALUE
+ * @generated
+ * @ordered
+ */
+ ORDINAL(0, "ORDINAL", "ORDINAL"),
+
+ /**
+ * The '<em><b>STRING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STRING_VALUE
+ * @generated
+ * @ordered
+ */
+ STRING(1, "STRING", "STRING");
+
+ /**
+ * The '<em><b>ORDINAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ORDINAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ORDINAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ORDINAL_VALUE = 0;
+
+ /**
+ * The '<em><b>STRING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STRING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STRING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STRING_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Enum Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final EnumType[] VALUES_ARRAY =
+ new EnumType[] {
+ ORDINAL,
+ STRING,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Enum Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<EnumType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Enum Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EnumType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EnumType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Enum Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EnumType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EnumType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Enum Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EnumType get(int value) {
+ switch (value) {
+ case ORDINAL_VALUE: return ORDINAL;
+ case STRING_VALUE: return STRING;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EnumType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //EnumType
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/FetchType.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/FetchType.java
new file mode 100755
index 000000000..62d681224
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/FetchType.java
@@ -0,0 +1,219 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FetchType.java,v 1.1 2009/03/15 23:44:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Fetch Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ *
+ * public enum FetchType { LAZY, EAGER };
+ *
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getFetchType()
+ * @model extendedMetaData="name='fetch-type'"
+ * @generated
+ */
+public enum FetchType implements Enumerator {
+ /**
+ * The '<em><b>LAZY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LAZY_VALUE
+ * @generated
+ * @ordered
+ */
+ LAZY(0, "LAZY", "LAZY"),
+
+ /**
+ * The '<em><b>EAGER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EAGER_VALUE
+ * @generated
+ * @ordered
+ */
+ EAGER(1, "EAGER", "EAGER");
+
+ /**
+ * The '<em><b>LAZY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LAZY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LAZY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LAZY_VALUE = 0;
+
+ /**
+ * The '<em><b>EAGER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EAGER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EAGER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EAGER_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Fetch Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final FetchType[] VALUES_ARRAY =
+ new FetchType[] {
+ LAZY,
+ EAGER,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Fetch Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<FetchType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Fetch Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FetchType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ FetchType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Fetch Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FetchType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ FetchType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Fetch Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FetchType get(int value) {
+ switch (value) {
+ case LAZY_VALUE: return LAZY;
+ case EAGER_VALUE: return EAGER;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private FetchType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //FetchType
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/FieldResult.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/FieldResult.java
new file mode 100755
index 000000000..6e5feb31d
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/FieldResult.java
@@ -0,0 +1,95 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FieldResult.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Field Result</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({}) @Retention(RUNTIME)
+ * public @interface FieldResult {
+ * String name();
+ * String column();
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.FieldResult#getColumn <em>Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.FieldResult#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getFieldResult()
+ * @model extendedMetaData="name='field-result' kind='empty'"
+ * @generated
+ */
+public interface FieldResult extends EObject {
+ /**
+ * Returns the value of the '<em><b>Column</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Column</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Column</em>' attribute.
+ * @see #setColumn(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getFieldResult_Column()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='column'"
+ * @generated
+ */
+ String getColumn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.FieldResult#getColumn <em>Column</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Column</em>' attribute.
+ * @see #getColumn()
+ * @generated
+ */
+ void setColumn(String value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getFieldResult_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.FieldResult#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // FieldResult
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/GeneratedValue.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/GeneratedValue.java
new file mode 100755
index 000000000..61cc05608
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/GeneratedValue.java
@@ -0,0 +1,125 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GeneratedValue.java,v 1.1 2009/03/15 23:44:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Generated Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface GeneratedValue {
+ * GenerationType strategy() default AUTO;
+ * String generator() default "";
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.GeneratedValue#getGenerator <em>Generator</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.GeneratedValue#getStrategy <em>Strategy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getGeneratedValue()
+ * @model extendedMetaData="name='generated-value' kind='empty'"
+ * @generated
+ */
+public interface GeneratedValue extends EObject {
+ /**
+ * Returns the value of the '<em><b>Generator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Generator</em>' attribute.
+ * @see #setGenerator(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getGeneratedValue_Generator()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='generator'"
+ * @generated
+ */
+ String getGenerator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.GeneratedValue#getGenerator <em>Generator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Generator</em>' attribute.
+ * @see #getGenerator()
+ * @generated
+ */
+ void setGenerator(String value);
+
+ /**
+ * Returns the value of the '<em><b>Strategy</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.jpa.orm.GenerationType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Strategy</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Strategy</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.GenerationType
+ * @see #isSetStrategy()
+ * @see #unsetStrategy()
+ * @see #setStrategy(GenerationType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getGeneratedValue_Strategy()
+ * @model unsettable="true"
+ * extendedMetaData="kind='attribute' name='strategy'"
+ * @generated
+ */
+ GenerationType getStrategy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.GeneratedValue#getStrategy <em>Strategy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Strategy</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.GenerationType
+ * @see #isSetStrategy()
+ * @see #unsetStrategy()
+ * @see #getStrategy()
+ * @generated
+ */
+ void setStrategy(GenerationType value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.GeneratedValue#getStrategy <em>Strategy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetStrategy()
+ * @see #getStrategy()
+ * @see #setStrategy(GenerationType)
+ * @generated
+ */
+ void unsetStrategy();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.GeneratedValue#getStrategy <em>Strategy</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Strategy</em>' attribute is set.
+ * @see #unsetStrategy()
+ * @see #getStrategy()
+ * @see #setStrategy(GenerationType)
+ * @generated
+ */
+ boolean isSetStrategy();
+
+} // GeneratedValue
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/GenerationType.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/GenerationType.java
new file mode 100755
index 000000000..43f7c503d
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/GenerationType.java
@@ -0,0 +1,273 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GenerationType.java,v 1.1 2009/03/15 23:45:01 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Generation Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ *
+ * public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };
+ *
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getGenerationType()
+ * @model extendedMetaData="name='generation-type'"
+ * @generated
+ */
+public enum GenerationType implements Enumerator {
+ /**
+ * The '<em><b>TABLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TABLE_VALUE
+ * @generated
+ * @ordered
+ */
+ TABLE(0, "TABLE", "TABLE"),
+
+ /**
+ * The '<em><b>SEQUENCE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SEQUENCE_VALUE
+ * @generated
+ * @ordered
+ */
+ SEQUENCE(1, "SEQUENCE", "SEQUENCE"),
+
+ /**
+ * The '<em><b>IDENTITY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IDENTITY_VALUE
+ * @generated
+ * @ordered
+ */
+ IDENTITY(2, "IDENTITY", "IDENTITY"),
+
+ /**
+ * The '<em><b>AUTO</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AUTO_VALUE
+ * @generated
+ * @ordered
+ */
+ AUTO(3, "AUTO", "AUTO");
+
+ /**
+ * The '<em><b>TABLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TABLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TABLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TABLE_VALUE = 0;
+
+ /**
+ * The '<em><b>SEQUENCE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SEQUENCE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SEQUENCE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SEQUENCE_VALUE = 1;
+
+ /**
+ * The '<em><b>IDENTITY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>IDENTITY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #IDENTITY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int IDENTITY_VALUE = 2;
+
+ /**
+ * The '<em><b>AUTO</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AUTO</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AUTO
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AUTO_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Generation Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final GenerationType[] VALUES_ARRAY =
+ new GenerationType[] {
+ TABLE,
+ SEQUENCE,
+ IDENTITY,
+ AUTO,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Generation Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<GenerationType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Generation Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GenerationType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ GenerationType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Generation Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GenerationType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ GenerationType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Generation Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GenerationType get(int value) {
+ switch (value) {
+ case TABLE_VALUE: return TABLE;
+ case SEQUENCE_VALUE: return SEQUENCE;
+ case IDENTITY_VALUE: return IDENTITY;
+ case AUTO_VALUE: return AUTO;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private GenerationType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //GenerationType
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Id.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Id.java
new file mode 100755
index 000000000..e403081b2
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Id.java
@@ -0,0 +1,204 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Id.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Id</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface Id {}
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Id#getColumn <em>Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Id#getGeneratedValue <em>Generated Value</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Id#getTemporal <em>Temporal</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Id#getTableGenerator <em>Table Generator</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Id#getSequenceGenerator <em>Sequence Generator</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Id#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getId()
+ * @model extendedMetaData="name='id' kind='elementOnly'"
+ * @generated
+ */
+public interface Id extends EObject {
+ /**
+ * Returns the value of the '<em><b>Column</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Column</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Column</em>' containment reference.
+ * @see #setColumn(Column)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getId_Column()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='column' namespace='##targetNamespace'"
+ * @generated
+ */
+ Column getColumn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Id#getColumn <em>Column</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Column</em>' containment reference.
+ * @see #getColumn()
+ * @generated
+ */
+ void setColumn(Column value);
+
+ /**
+ * Returns the value of the '<em><b>Generated Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generated Value</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Generated Value</em>' containment reference.
+ * @see #setGeneratedValue(GeneratedValue)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getId_GeneratedValue()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='generated-value' namespace='##targetNamespace'"
+ * @generated
+ */
+ GeneratedValue getGeneratedValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Id#getGeneratedValue <em>Generated Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Generated Value</em>' containment reference.
+ * @see #getGeneratedValue()
+ * @generated
+ */
+ void setGeneratedValue(GeneratedValue value);
+
+ /**
+ * Returns the value of the '<em><b>Temporal</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Temporal</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Temporal</em>' attribute.
+ * @see #setTemporal(TemporalType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getId_Temporal()
+ * @model dataType="org.eclipse.emf.teneo.jpa.orm.Temporal"
+ * extendedMetaData="kind='element' name='temporal' namespace='##targetNamespace'"
+ * @generated
+ */
+ TemporalType getTemporal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Id#getTemporal <em>Temporal</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Temporal</em>' attribute.
+ * @see #getTemporal()
+ * @generated
+ */
+ void setTemporal(TemporalType value);
+
+ /**
+ * Returns the value of the '<em><b>Table Generator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table Generator</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table Generator</em>' containment reference.
+ * @see #setTableGenerator(TableGenerator)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getId_TableGenerator()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='table-generator' namespace='##targetNamespace'"
+ * @generated
+ */
+ TableGenerator getTableGenerator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Id#getTableGenerator <em>Table Generator</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table Generator</em>' containment reference.
+ * @see #getTableGenerator()
+ * @generated
+ */
+ void setTableGenerator(TableGenerator value);
+
+ /**
+ * Returns the value of the '<em><b>Sequence Generator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sequence Generator</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sequence Generator</em>' containment reference.
+ * @see #setSequenceGenerator(SequenceGenerator)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getId_SequenceGenerator()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='sequence-generator' namespace='##targetNamespace'"
+ * @generated
+ */
+ SequenceGenerator getSequenceGenerator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Id#getSequenceGenerator <em>Sequence Generator</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sequence Generator</em>' containment reference.
+ * @see #getSequenceGenerator()
+ * @generated
+ */
+ void setSequenceGenerator(SequenceGenerator value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getId_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Id#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // Id
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/IdClass.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/IdClass.java
new file mode 100755
index 000000000..1f21eb6e5
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/IdClass.java
@@ -0,0 +1,66 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IdClass.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Id Class</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({TYPE}) @Retention(RUNTIME)
+ * public @interface IdClass {
+ * Class value();
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.IdClass#getClass_ <em>Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getIdClass()
+ * @model extendedMetaData="name='id-class' kind='empty'"
+ * @generated
+ */
+public interface IdClass extends EObject {
+ /**
+ * Returns the value of the '<em><b>Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Class</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Class</em>' attribute.
+ * @see #setClass(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getIdClass_Class()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='class'"
+ * @generated
+ */
+ String getClass_();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.IdClass#getClass_ <em>Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Class</em>' attribute.
+ * @see #getClass_()
+ * @generated
+ */
+ void setClass(String value);
+
+} // IdClass
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Inheritance.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Inheritance.java
new file mode 100755
index 000000000..1cf5208cb
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Inheritance.java
@@ -0,0 +1,96 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Inheritance.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Inheritance</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({TYPE}) @Retention(RUNTIME)
+ * public @interface Inheritance {
+ * InheritanceType strategy() default SINGLE_TABLE;
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.Inheritance#getStrategy <em>Strategy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getInheritance()
+ * @model extendedMetaData="name='inheritance' kind='empty'"
+ * @generated
+ */
+public interface Inheritance extends EObject {
+ /**
+ * Returns the value of the '<em><b>Strategy</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.jpa.orm.InheritanceType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Strategy</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Strategy</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.InheritanceType
+ * @see #isSetStrategy()
+ * @see #unsetStrategy()
+ * @see #setStrategy(InheritanceType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getInheritance_Strategy()
+ * @model unsettable="true"
+ * extendedMetaData="kind='attribute' name='strategy'"
+ * @generated
+ */
+ InheritanceType getStrategy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Inheritance#getStrategy <em>Strategy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Strategy</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.InheritanceType
+ * @see #isSetStrategy()
+ * @see #unsetStrategy()
+ * @see #getStrategy()
+ * @generated
+ */
+ void setStrategy(InheritanceType value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Inheritance#getStrategy <em>Strategy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetStrategy()
+ * @see #getStrategy()
+ * @see #setStrategy(InheritanceType)
+ * @generated
+ */
+ void unsetStrategy();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.Inheritance#getStrategy <em>Strategy</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Strategy</em>' attribute is set.
+ * @see #unsetStrategy()
+ * @see #getStrategy()
+ * @see #setStrategy(InheritanceType)
+ * @generated
+ */
+ boolean isSetStrategy();
+
+} // Inheritance
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/InheritanceType.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/InheritanceType.java
new file mode 100755
index 000000000..79f83e96f
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/InheritanceType.java
@@ -0,0 +1,247 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: InheritanceType.java,v 1.1 2009/03/15 23:44:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Inheritance Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ *
+ * public enum InheritanceType
+ * { SINGLE_TABLE, JOINED, TABLE_PER_CLASS};
+ *
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getInheritanceType()
+ * @model extendedMetaData="name='inheritance-type'"
+ * @generated
+ */
+public enum InheritanceType implements Enumerator {
+ /**
+ * The '<em><b>SINGLETABLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SINGLETABLE_VALUE
+ * @generated
+ * @ordered
+ */
+ SINGLETABLE(0, "SINGLETABLE", "SINGLE_TABLE"),
+
+ /**
+ * The '<em><b>JOINED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #JOINED_VALUE
+ * @generated
+ * @ordered
+ */
+ JOINED(1, "JOINED", "JOINED"),
+
+ /**
+ * The '<em><b>TABLEPERCLASS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TABLEPERCLASS_VALUE
+ * @generated
+ * @ordered
+ */
+ TABLEPERCLASS(2, "TABLEPERCLASS", "TABLE_PER_CLASS");
+
+ /**
+ * The '<em><b>SINGLETABLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SINGLETABLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SINGLETABLE
+ * @model literal="SINGLE_TABLE"
+ * @generated
+ * @ordered
+ */
+ public static final int SINGLETABLE_VALUE = 0;
+
+ /**
+ * The '<em><b>JOINED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>JOINED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #JOINED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int JOINED_VALUE = 1;
+
+ /**
+ * The '<em><b>TABLEPERCLASS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TABLEPERCLASS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TABLEPERCLASS
+ * @model literal="TABLE_PER_CLASS"
+ * @generated
+ * @ordered
+ */
+ public static final int TABLEPERCLASS_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Inheritance Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final InheritanceType[] VALUES_ARRAY =
+ new InheritanceType[] {
+ SINGLETABLE,
+ JOINED,
+ TABLEPERCLASS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Inheritance Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<InheritanceType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Inheritance Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static InheritanceType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ InheritanceType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Inheritance Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static InheritanceType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ InheritanceType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Inheritance Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static InheritanceType get(int value) {
+ switch (value) {
+ case SINGLETABLE_VALUE: return SINGLETABLE;
+ case JOINED_VALUE: return JOINED;
+ case TABLEPERCLASS_VALUE: return TABLEPERCLASS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private InheritanceType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //InheritanceType
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/JoinColumn.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/JoinColumn.java
new file mode 100755
index 000000000..de796fb75
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/JoinColumn.java
@@ -0,0 +1,378 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: JoinColumn.java,v 1.2 2009/03/23 19:01:40 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Join Column</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface JoinColumn {
+ * String name() default "";
+ * String referencedColumnName() default "";
+ * boolean unique() default false;
+ * boolean nullable() default true;
+ * boolean insertable() default true;
+ * boolean updatable() default true;
+ * String columnDefinition() default "";
+ * String table() default "";
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#getColumnDefinition <em>Column Definition</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isInsertable <em>Insertable</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isNullable <em>Nullable</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#getReferencedColumnName <em>Referenced Column Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#getTable <em>Table</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isUnique <em>Unique</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isUpdatable <em>Updatable</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinColumn()
+ * @model extendedMetaData="name='join-column' kind='empty'"
+ * @generated
+ */
+public interface JoinColumn extends EObject {
+ /**
+ * Returns the value of the '<em><b>Column Definition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Column Definition</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Column Definition</em>' attribute.
+ * @see #setColumnDefinition(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinColumn_ColumnDefinition()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='column-definition'"
+ * @generated
+ */
+ String getColumnDefinition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#getColumnDefinition <em>Column Definition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Column Definition</em>' attribute.
+ * @see #getColumnDefinition()
+ * @generated
+ */
+ void setColumnDefinition(String value);
+
+ /**
+ * Returns the value of the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Insertable</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Insertable</em>' attribute.
+ * @see #isSetInsertable()
+ * @see #unsetInsertable()
+ * @see #setInsertable(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinColumn_Insertable()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='insertable'"
+ * @generated
+ */
+ boolean isInsertable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isInsertable <em>Insertable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Insertable</em>' attribute.
+ * @see #isSetInsertable()
+ * @see #unsetInsertable()
+ * @see #isInsertable()
+ * @generated
+ */
+ void setInsertable(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isInsertable <em>Insertable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetInsertable()
+ * @see #isInsertable()
+ * @see #setInsertable(boolean)
+ * @generated
+ */
+ void unsetInsertable();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isInsertable <em>Insertable</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Insertable</em>' attribute is set.
+ * @see #unsetInsertable()
+ * @see #isInsertable()
+ * @see #setInsertable(boolean)
+ * @generated
+ */
+ boolean isSetInsertable();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinColumn_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='name'"
+ * annotation="teneo.escape value='true'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Nullable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Nullable</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Nullable</em>' attribute.
+ * @see #isSetNullable()
+ * @see #unsetNullable()
+ * @see #setNullable(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinColumn_Nullable()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='nullable'"
+ * @generated
+ */
+ boolean isNullable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isNullable <em>Nullable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Nullable</em>' attribute.
+ * @see #isSetNullable()
+ * @see #unsetNullable()
+ * @see #isNullable()
+ * @generated
+ */
+ void setNullable(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isNullable <em>Nullable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetNullable()
+ * @see #isNullable()
+ * @see #setNullable(boolean)
+ * @generated
+ */
+ void unsetNullable();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isNullable <em>Nullable</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Nullable</em>' attribute is set.
+ * @see #unsetNullable()
+ * @see #isNullable()
+ * @see #setNullable(boolean)
+ * @generated
+ */
+ boolean isSetNullable();
+
+ /**
+ * Returns the value of the '<em><b>Referenced Column Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Referenced Column Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Referenced Column Name</em>' attribute.
+ * @see #setReferencedColumnName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinColumn_ReferencedColumnName()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='referenced-column-name'"
+ * @generated
+ */
+ String getReferencedColumnName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#getReferencedColumnName <em>Referenced Column Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Referenced Column Name</em>' attribute.
+ * @see #getReferencedColumnName()
+ * @generated
+ */
+ void setReferencedColumnName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Table</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table</em>' attribute.
+ * @see #setTable(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinColumn_Table()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='table'"
+ * @generated
+ */
+ String getTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#getTable <em>Table</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table</em>' attribute.
+ * @see #getTable()
+ * @generated
+ */
+ void setTable(String value);
+
+ /**
+ * Returns the value of the '<em><b>Unique</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unique</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unique</em>' attribute.
+ * @see #isSetUnique()
+ * @see #unsetUnique()
+ * @see #setUnique(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinColumn_Unique()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='unique'"
+ * @generated
+ */
+ boolean isUnique();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isUnique <em>Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unique</em>' attribute.
+ * @see #isSetUnique()
+ * @see #unsetUnique()
+ * @see #isUnique()
+ * @generated
+ */
+ void setUnique(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isUnique <em>Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetUnique()
+ * @see #isUnique()
+ * @see #setUnique(boolean)
+ * @generated
+ */
+ void unsetUnique();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isUnique <em>Unique</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Unique</em>' attribute is set.
+ * @see #unsetUnique()
+ * @see #isUnique()
+ * @see #setUnique(boolean)
+ * @generated
+ */
+ boolean isSetUnique();
+
+ /**
+ * Returns the value of the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Updatable</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Updatable</em>' attribute.
+ * @see #isSetUpdatable()
+ * @see #unsetUpdatable()
+ * @see #setUpdatable(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinColumn_Updatable()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='updatable'"
+ * @generated
+ */
+ boolean isUpdatable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isUpdatable <em>Updatable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Updatable</em>' attribute.
+ * @see #isSetUpdatable()
+ * @see #unsetUpdatable()
+ * @see #isUpdatable()
+ * @generated
+ */
+ void setUpdatable(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isUpdatable <em>Updatable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetUpdatable()
+ * @see #isUpdatable()
+ * @see #setUpdatable(boolean)
+ * @generated
+ */
+ void unsetUpdatable();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinColumn#isUpdatable <em>Updatable</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Updatable</em>' attribute is set.
+ * @see #unsetUpdatable()
+ * @see #isUpdatable()
+ * @see #setUpdatable(boolean)
+ * @generated
+ */
+ boolean isSetUpdatable();
+
+} // JoinColumn
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/JoinTable.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/JoinTable.java
new file mode 100755
index 000000000..3438d3afa
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/JoinTable.java
@@ -0,0 +1,184 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: JoinTable.java,v 1.2 2009/03/23 19:01:40 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Join Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface JoinTable {
+ * String name() default "";
+ * String catalog() default "";
+ * String schema() default "";
+ * JoinColumn[] joinColumns() default {};
+ * JoinColumn[] inverseJoinColumns() default {};
+ * UniqueConstraint[] uniqueConstraints() default {};
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinTable#getJoinColumn <em>Join Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinTable#getInverseJoinColumn <em>Inverse Join Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinTable#getUniqueConstraint <em>Unique Constraint</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinTable#getCatalog <em>Catalog</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinTable#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.JoinTable#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinTable()
+ * @model extendedMetaData="name='join-table' kind='elementOnly'"
+ * @generated
+ */
+public interface JoinTable extends EObject {
+ /**
+ * Returns the value of the '<em><b>Join Column</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.JoinColumn}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Join Column</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Join Column</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinTable_JoinColumn()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='join-column' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<JoinColumn> getJoinColumn();
+
+ /**
+ * Returns the value of the '<em><b>Inverse Join Column</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.JoinColumn}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inverse Join Column</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Inverse Join Column</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinTable_InverseJoinColumn()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='inverse-join-column' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<JoinColumn> getInverseJoinColumn();
+
+ /**
+ * Returns the value of the '<em><b>Unique Constraint</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.UniqueConstraint}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unique Constraint</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unique Constraint</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinTable_UniqueConstraint()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='unique-constraint' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<UniqueConstraint> getUniqueConstraint();
+
+ /**
+ * Returns the value of the '<em><b>Catalog</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Catalog</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Catalog</em>' attribute.
+ * @see #setCatalog(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinTable_Catalog()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='catalog'"
+ * @generated
+ */
+ String getCatalog();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinTable#getCatalog <em>Catalog</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Catalog</em>' attribute.
+ * @see #getCatalog()
+ * @generated
+ */
+ void setCatalog(String value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinTable_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='name'"
+ * annotation="teneo.escape value='true'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinTable#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Schema</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Schema</em>' attribute.
+ * @see #setSchema(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getJoinTable_Schema()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='schema'"
+ * @generated
+ */
+ String getSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.JoinTable#getSchema <em>Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Schema</em>' attribute.
+ * @see #getSchema()
+ * @generated
+ */
+ void setSchema(String value);
+
+} // JoinTable
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Lob.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Lob.java
new file mode 100755
index 000000000..ca095e088
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/Lob.java
@@ -0,0 +1,31 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Lob.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lob</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface Lob {}
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getLob()
+ * @model extendedMetaData="name='lob' kind='empty'"
+ * @generated
+ */
+public interface Lob extends EObject {
+} // Lob
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ManyToMany.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ManyToMany.java
new file mode 100755
index 000000000..8ad02e7ab
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ManyToMany.java
@@ -0,0 +1,295 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ManyToMany.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Many To Many</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface ManyToMany {
+ * Class targetEntity() default void.class;
+ * CascadeType[] cascade() default {};
+ * FetchType fetch() default LAZY;
+ * String mappedBy() default "";
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getOrderBy <em>Order By</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getMapKey <em>Map Key</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getJoinTable <em>Join Table</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getCascade <em>Cascade</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getFetch <em>Fetch</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getMappedBy <em>Mapped By</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getTargetEntity <em>Target Entity</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToMany()
+ * @model extendedMetaData="name='many-to-many' kind='elementOnly'"
+ * @generated
+ */
+public interface ManyToMany extends EObject {
+ /**
+ * Returns the value of the '<em><b>Order By</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Order By</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Order By</em>' attribute.
+ * @see #setOrderBy(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToMany_OrderBy()
+ * @model dataType="org.eclipse.emf.teneo.jpa.orm.OrderBy"
+ * extendedMetaData="kind='element' name='order-by' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getOrderBy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getOrderBy <em>Order By</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Order By</em>' attribute.
+ * @see #getOrderBy()
+ * @generated
+ */
+ void setOrderBy(String value);
+
+ /**
+ * Returns the value of the '<em><b>Map Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Map Key</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Map Key</em>' containment reference.
+ * @see #setMapKey(MapKey)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToMany_MapKey()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='map-key' namespace='##targetNamespace'"
+ * @generated
+ */
+ MapKey getMapKey();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getMapKey <em>Map Key</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Map Key</em>' containment reference.
+ * @see #getMapKey()
+ * @generated
+ */
+ void setMapKey(MapKey value);
+
+ /**
+ * Returns the value of the '<em><b>Join Table</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Join Table</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Join Table</em>' containment reference.
+ * @see #setJoinTable(JoinTable)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToMany_JoinTable()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='join-table' namespace='##targetNamespace'"
+ * @generated
+ */
+ JoinTable getJoinTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getJoinTable <em>Join Table</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Join Table</em>' containment reference.
+ * @see #getJoinTable()
+ * @generated
+ */
+ void setJoinTable(JoinTable value);
+
+ /**
+ * Returns the value of the '<em><b>Cascade</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cascade</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cascade</em>' containment reference.
+ * @see #setCascade(CascadeType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToMany_Cascade()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='cascade' namespace='##targetNamespace'"
+ * @generated
+ */
+ CascadeType getCascade();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getCascade <em>Cascade</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cascade</em>' containment reference.
+ * @see #getCascade()
+ * @generated
+ */
+ void setCascade(CascadeType value);
+
+ /**
+ * Returns the value of the '<em><b>Fetch</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.jpa.orm.FetchType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Fetch</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Fetch</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.FetchType
+ * @see #isSetFetch()
+ * @see #unsetFetch()
+ * @see #setFetch(FetchType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToMany_Fetch()
+ * @model unsettable="true"
+ * extendedMetaData="kind='attribute' name='fetch'"
+ * @generated
+ */
+ FetchType getFetch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getFetch <em>Fetch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Fetch</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.FetchType
+ * @see #isSetFetch()
+ * @see #unsetFetch()
+ * @see #getFetch()
+ * @generated
+ */
+ void setFetch(FetchType value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getFetch <em>Fetch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetFetch()
+ * @see #getFetch()
+ * @see #setFetch(FetchType)
+ * @generated
+ */
+ void unsetFetch();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getFetch <em>Fetch</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Fetch</em>' attribute is set.
+ * @see #unsetFetch()
+ * @see #getFetch()
+ * @see #setFetch(FetchType)
+ * @generated
+ */
+ boolean isSetFetch();
+
+ /**
+ * Returns the value of the '<em><b>Mapped By</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mapped By</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mapped By</em>' attribute.
+ * @see #setMappedBy(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToMany_MappedBy()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='mapped-by'"
+ * @generated
+ */
+ String getMappedBy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getMappedBy <em>Mapped By</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mapped By</em>' attribute.
+ * @see #getMappedBy()
+ * @generated
+ */
+ void setMappedBy(String value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToMany_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Target Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target Entity</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target Entity</em>' attribute.
+ * @see #setTargetEntity(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToMany_TargetEntity()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='target-entity'"
+ * @generated
+ */
+ String getTargetEntity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToMany#getTargetEntity <em>Target Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target Entity</em>' attribute.
+ * @see #getTargetEntity()
+ * @generated
+ */
+ void setTargetEntity(String value);
+
+} // ManyToMany
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ManyToOne.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ManyToOne.java
new file mode 100755
index 000000000..0f248a97f
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/ManyToOne.java
@@ -0,0 +1,286 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ManyToOne.java,v 1.1 2009/03/15 23:44:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Many To One</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface ManyToOne {
+ * Class targetEntity() default void.class;
+ * CascadeType[] cascade() default {};
+ * FetchType fetch() default EAGER;
+ * boolean optional() default true;
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getJoinColumn <em>Join Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getJoinTable <em>Join Table</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getCascade <em>Cascade</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getFetch <em>Fetch</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#isOptional <em>Optional</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getTargetEntity <em>Target Entity</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToOne()
+ * @model extendedMetaData="name='many-to-one' kind='elementOnly'"
+ * @generated
+ */
+public interface ManyToOne extends EObject {
+ /**
+ * Returns the value of the '<em><b>Join Column</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.JoinColumn}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Join Column</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Join Column</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToOne_JoinColumn()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='join-column' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<JoinColumn> getJoinColumn();
+
+ /**
+ * Returns the value of the '<em><b>Join Table</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Join Table</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Join Table</em>' containment reference.
+ * @see #setJoinTable(JoinTable)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToOne_JoinTable()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='join-table' namespace='##targetNamespace'"
+ * @generated
+ */
+ JoinTable getJoinTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getJoinTable <em>Join Table</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Join Table</em>' containment reference.
+ * @see #getJoinTable()
+ * @generated
+ */
+ void setJoinTable(JoinTable value);
+
+ /**
+ * Returns the value of the '<em><b>Cascade</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cascade</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cascade</em>' containment reference.
+ * @see #setCascade(CascadeType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToOne_Cascade()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='cascade' namespace='##targetNamespace'"
+ * @generated
+ */
+ CascadeType getCascade();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getCascade <em>Cascade</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cascade</em>' containment reference.
+ * @see #getCascade()
+ * @generated
+ */
+ void setCascade(CascadeType value);
+
+ /**
+ * Returns the value of the '<em><b>Fetch</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.jpa.orm.FetchType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Fetch</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Fetch</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.FetchType
+ * @see #isSetFetch()
+ * @see #unsetFetch()
+ * @see #setFetch(FetchType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToOne_Fetch()
+ * @model unsettable="true"
+ * extendedMetaData="kind='attribute' name='fetch'"
+ * @generated
+ */
+ FetchType getFetch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getFetch <em>Fetch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Fetch</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.FetchType
+ * @see #isSetFetch()
+ * @see #unsetFetch()
+ * @see #getFetch()
+ * @generated
+ */
+ void setFetch(FetchType value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getFetch <em>Fetch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetFetch()
+ * @see #getFetch()
+ * @see #setFetch(FetchType)
+ * @generated
+ */
+ void unsetFetch();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getFetch <em>Fetch</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Fetch</em>' attribute is set.
+ * @see #unsetFetch()
+ * @see #getFetch()
+ * @see #setFetch(FetchType)
+ * @generated
+ */
+ boolean isSetFetch();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToOne_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Optional</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Optional</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Optional</em>' attribute.
+ * @see #isSetOptional()
+ * @see #unsetOptional()
+ * @see #setOptional(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToOne_Optional()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='optional'"
+ * @generated
+ */
+ boolean isOptional();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#isOptional <em>Optional</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Optional</em>' attribute.
+ * @see #isSetOptional()
+ * @see #unsetOptional()
+ * @see #isOptional()
+ * @generated
+ */
+ void setOptional(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#isOptional <em>Optional</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetOptional()
+ * @see #isOptional()
+ * @see #setOptional(boolean)
+ * @generated
+ */
+ void unsetOptional();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#isOptional <em>Optional</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Optional</em>' attribute is set.
+ * @see #unsetOptional()
+ * @see #isOptional()
+ * @see #setOptional(boolean)
+ * @generated
+ */
+ boolean isSetOptional();
+
+ /**
+ * Returns the value of the '<em><b>Target Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target Entity</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target Entity</em>' attribute.
+ * @see #setTargetEntity(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getManyToOne_TargetEntity()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='target-entity'"
+ * @generated
+ */
+ String getTargetEntity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.ManyToOne#getTargetEntity <em>Target Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target Entity</em>' attribute.
+ * @see #getTargetEntity()
+ * @generated
+ */
+ void setTargetEntity(String value);
+
+} // ManyToOne
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/MapKey.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/MapKey.java
new file mode 100755
index 000000000..f0e7fab45
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/MapKey.java
@@ -0,0 +1,66 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MapKey.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Map Key</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface MapKey {
+ * String name() default "";
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MapKey#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMapKey()
+ * @model extendedMetaData="name='map-key' kind='empty'"
+ * @generated
+ */
+public interface MapKey extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMapKey_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MapKey#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // MapKey
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/MappedSuperclass.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/MappedSuperclass.java
new file mode 100755
index 000000000..4da4d2c56
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/MappedSuperclass.java
@@ -0,0 +1,548 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MappedSuperclass.java,v 1.1 2009/03/15 23:45:01 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Mapped Superclass</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * Defines the settings and mappings for a mapped superclass. Is
+ * allowed to be sparsely populated and used in conjunction with
+ * the annotations. Alternatively, the metadata-complete attribute
+ * can be used to indicate that no annotations are to be processed
+ * If this is the case then the defaulting rules will be recursively
+ * applied.
+ *
+ * @Target(TYPE) @Retention(RUNTIME)
+ * public @interface MappedSuperclass{}
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getIdClass <em>Id Class</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getExcludeDefaultListeners <em>Exclude Default Listeners</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getExcludeSuperclassListeners <em>Exclude Superclass Listeners</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getEntityListeners <em>Entity Listeners</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPrePersist <em>Pre Persist</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPostPersist <em>Post Persist</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPreRemove <em>Pre Remove</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPostRemove <em>Post Remove</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPreUpdate <em>Pre Update</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPostUpdate <em>Post Update</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPostLoad <em>Post Load</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getAttributes <em>Attributes</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getAccess <em>Access</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getClass_ <em>Class</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#isMetadataComplete <em>Metadata Complete</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass()
+ * @model extendedMetaData="name='mapped-superclass' kind='elementOnly'"
+ * @generated
+ */
+public interface MappedSuperclass extends EObject {
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_Description()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='element' name='description' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+ /**
+ * Returns the value of the '<em><b>Id Class</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id Class</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id Class</em>' containment reference.
+ * @see #setIdClass(IdClass)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_IdClass()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='id-class' namespace='##targetNamespace'"
+ * @generated
+ */
+ IdClass getIdClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getIdClass <em>Id Class</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id Class</em>' containment reference.
+ * @see #getIdClass()
+ * @generated
+ */
+ void setIdClass(IdClass value);
+
+ /**
+ * Returns the value of the '<em><b>Exclude Default Listeners</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exclude Default Listeners</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exclude Default Listeners</em>' containment reference.
+ * @see #setExcludeDefaultListeners(EmptyType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_ExcludeDefaultListeners()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='exclude-default-listeners' namespace='##targetNamespace'"
+ * @generated
+ */
+ EmptyType getExcludeDefaultListeners();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getExcludeDefaultListeners <em>Exclude Default Listeners</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exclude Default Listeners</em>' containment reference.
+ * @see #getExcludeDefaultListeners()
+ * @generated
+ */
+ void setExcludeDefaultListeners(EmptyType value);
+
+ /**
+ * Returns the value of the '<em><b>Exclude Superclass Listeners</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exclude Superclass Listeners</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exclude Superclass Listeners</em>' containment reference.
+ * @see #setExcludeSuperclassListeners(EmptyType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_ExcludeSuperclassListeners()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='exclude-superclass-listeners' namespace='##targetNamespace'"
+ * @generated
+ */
+ EmptyType getExcludeSuperclassListeners();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getExcludeSuperclassListeners <em>Exclude Superclass Listeners</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exclude Superclass Listeners</em>' containment reference.
+ * @see #getExcludeSuperclassListeners()
+ * @generated
+ */
+ void setExcludeSuperclassListeners(EmptyType value);
+
+ /**
+ * Returns the value of the '<em><b>Entity Listeners</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Entity Listeners</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Entity Listeners</em>' containment reference.
+ * @see #setEntityListeners(EntityListeners)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_EntityListeners()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='entity-listeners' namespace='##targetNamespace'"
+ * @generated
+ */
+ EntityListeners getEntityListeners();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getEntityListeners <em>Entity Listeners</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Entity Listeners</em>' containment reference.
+ * @see #getEntityListeners()
+ * @generated
+ */
+ void setEntityListeners(EntityListeners value);
+
+ /**
+ * Returns the value of the '<em><b>Pre Persist</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Persist</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pre Persist</em>' containment reference.
+ * @see #setPrePersist(PrePersist)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_PrePersist()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='pre-persist' namespace='##targetNamespace'"
+ * @generated
+ */
+ PrePersist getPrePersist();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPrePersist <em>Pre Persist</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Persist</em>' containment reference.
+ * @see #getPrePersist()
+ * @generated
+ */
+ void setPrePersist(PrePersist value);
+
+ /**
+ * Returns the value of the '<em><b>Post Persist</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Persist</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Persist</em>' containment reference.
+ * @see #setPostPersist(PostPersist)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_PostPersist()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-persist' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostPersist getPostPersist();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPostPersist <em>Post Persist</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Persist</em>' containment reference.
+ * @see #getPostPersist()
+ * @generated
+ */
+ void setPostPersist(PostPersist value);
+
+ /**
+ * Returns the value of the '<em><b>Pre Remove</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Remove</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pre Remove</em>' containment reference.
+ * @see #setPreRemove(PreRemove)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_PreRemove()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='pre-remove' namespace='##targetNamespace'"
+ * @generated
+ */
+ PreRemove getPreRemove();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPreRemove <em>Pre Remove</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Remove</em>' containment reference.
+ * @see #getPreRemove()
+ * @generated
+ */
+ void setPreRemove(PreRemove value);
+
+ /**
+ * Returns the value of the '<em><b>Post Remove</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Remove</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Remove</em>' containment reference.
+ * @see #setPostRemove(PostRemove)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_PostRemove()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-remove' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostRemove getPostRemove();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPostRemove <em>Post Remove</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Remove</em>' containment reference.
+ * @see #getPostRemove()
+ * @generated
+ */
+ void setPostRemove(PostRemove value);
+
+ /**
+ * Returns the value of the '<em><b>Pre Update</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Update</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pre Update</em>' containment reference.
+ * @see #setPreUpdate(PreUpdate)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_PreUpdate()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='pre-update' namespace='##targetNamespace'"
+ * @generated
+ */
+ PreUpdate getPreUpdate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPreUpdate <em>Pre Update</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Update</em>' containment reference.
+ * @see #getPreUpdate()
+ * @generated
+ */
+ void setPreUpdate(PreUpdate value);
+
+ /**
+ * Returns the value of the '<em><b>Post Update</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Update</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Update</em>' containment reference.
+ * @see #setPostUpdate(PostUpdate)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_PostUpdate()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-update' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostUpdate getPostUpdate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPostUpdate <em>Post Update</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Update</em>' containment reference.
+ * @see #getPostUpdate()
+ * @generated
+ */
+ void setPostUpdate(PostUpdate value);
+
+ /**
+ * Returns the value of the '<em><b>Post Load</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Load</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Post Load</em>' containment reference.
+ * @see #setPostLoad(PostLoad)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_PostLoad()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='post-load' namespace='##targetNamespace'"
+ * @generated
+ */
+ PostLoad getPostLoad();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getPostLoad <em>Post Load</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Post Load</em>' containment reference.
+ * @see #getPostLoad()
+ * @generated
+ */
+ void setPostLoad(PostLoad value);
+
+ /**
+ * Returns the value of the '<em><b>Attributes</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attributes</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attributes</em>' containment reference.
+ * @see #setAttributes(Attributes)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_Attributes()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='attributes' namespace='##targetNamespace'"
+ * @generated
+ */
+ Attributes getAttributes();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getAttributes <em>Attributes</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attributes</em>' containment reference.
+ * @see #getAttributes()
+ * @generated
+ */
+ void setAttributes(Attributes value);
+
+ /**
+ * Returns the value of the '<em><b>Access</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.jpa.orm.AccessType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Access</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Access</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.AccessType
+ * @see #isSetAccess()
+ * @see #unsetAccess()
+ * @see #setAccess(AccessType)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_Access()
+ * @model unsettable="true"
+ * extendedMetaData="kind='attribute' name='access'"
+ * @generated
+ */
+ AccessType getAccess();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getAccess <em>Access</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Access</em>' attribute.
+ * @see org.eclipse.emf.teneo.jpa.orm.AccessType
+ * @see #isSetAccess()
+ * @see #unsetAccess()
+ * @see #getAccess()
+ * @generated
+ */
+ void setAccess(AccessType value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getAccess <em>Access</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAccess()
+ * @see #getAccess()
+ * @see #setAccess(AccessType)
+ * @generated
+ */
+ void unsetAccess();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getAccess <em>Access</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Access</em>' attribute is set.
+ * @see #unsetAccess()
+ * @see #getAccess()
+ * @see #setAccess(AccessType)
+ * @generated
+ */
+ boolean isSetAccess();
+
+ /**
+ * Returns the value of the '<em><b>Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Class</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Class</em>' attribute.
+ * @see #setClass(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_Class()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='class'"
+ * @generated
+ */
+ String getClass_();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#getClass_ <em>Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Class</em>' attribute.
+ * @see #getClass_()
+ * @generated
+ */
+ void setClass(String value);
+
+ /**
+ * Returns the value of the '<em><b>Metadata Complete</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Metadata Complete</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Metadata Complete</em>' attribute.
+ * @see #isSetMetadataComplete()
+ * @see #unsetMetadataComplete()
+ * @see #setMetadataComplete(boolean)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getMappedSuperclass_MetadataComplete()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='metadata-complete'"
+ * @generated
+ */
+ boolean isMetadataComplete();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#isMetadataComplete <em>Metadata Complete</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Metadata Complete</em>' attribute.
+ * @see #isSetMetadataComplete()
+ * @see #unsetMetadataComplete()
+ * @see #isMetadataComplete()
+ * @generated
+ */
+ void setMetadataComplete(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#isMetadataComplete <em>Metadata Complete</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMetadataComplete()
+ * @see #isMetadataComplete()
+ * @see #setMetadataComplete(boolean)
+ * @generated
+ */
+ void unsetMetadataComplete();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.jpa.orm.MappedSuperclass#isMetadataComplete <em>Metadata Complete</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Metadata Complete</em>' attribute is set.
+ * @see #unsetMetadataComplete()
+ * @see #isMetadataComplete()
+ * @see #setMetadataComplete(boolean)
+ * @generated
+ */
+ boolean isSetMetadataComplete();
+
+} // MappedSuperclass
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/NamedNativeQuery.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/NamedNativeQuery.java
new file mode 100755
index 000000000..9dbd86c40
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/NamedNativeQuery.java
@@ -0,0 +1,174 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NamedNativeQuery.java,v 1.1 2009/03/15 23:44:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Named Native Query</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({TYPE}) @Retention(RUNTIME)
+ * public @interface NamedNativeQuery {
+ * String name();
+ * String query();
+ * QueryHint[] hints() default {};
+ * Class resultClass() default void.class;
+ * String resultSetMapping() default ""; //named SqlResultSetMapping
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.NamedNativeQuery#getQuery <em>Query</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.NamedNativeQuery#getHint <em>Hint</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.NamedNativeQuery#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.NamedNativeQuery#getResultClass <em>Result Class</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.NamedNativeQuery#getResultSetMapping <em>Result Set Mapping</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getNamedNativeQuery()
+ * @model extendedMetaData="name='named-native-query' kind='elementOnly'"
+ * @generated
+ */
+public interface NamedNativeQuery extends EObject {
+ /**
+ * Returns the value of the '<em><b>Query</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Query</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Query</em>' attribute.
+ * @see #setQuery(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getNamedNativeQuery_Query()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='element' name='query' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getQuery();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.NamedNativeQuery#getQuery <em>Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Query</em>' attribute.
+ * @see #getQuery()
+ * @generated
+ */
+ void setQuery(String value);
+
+ /**
+ * Returns the value of the '<em><b>Hint</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.QueryHint}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hint</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hint</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getNamedNativeQuery_Hint()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='hint' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<QueryHint> getHint();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getNamedNativeQuery_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.NamedNativeQuery#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Result Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Result Class</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Result Class</em>' attribute.
+ * @see #setResultClass(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getNamedNativeQuery_ResultClass()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='result-class'"
+ * @generated
+ */
+ String getResultClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.NamedNativeQuery#getResultClass <em>Result Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Result Class</em>' attribute.
+ * @see #getResultClass()
+ * @generated
+ */
+ void setResultClass(String value);
+
+ /**
+ * Returns the value of the '<em><b>Result Set Mapping</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Result Set Mapping</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Result Set Mapping</em>' attribute.
+ * @see #setResultSetMapping(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getNamedNativeQuery_ResultSetMapping()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='result-set-mapping'"
+ * @generated
+ */
+ String getResultSetMapping();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.NamedNativeQuery#getResultSetMapping <em>Result Set Mapping</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Result Set Mapping</em>' attribute.
+ * @see #getResultSetMapping()
+ * @generated
+ */
+ void setResultSetMapping(String value);
+
+} // NamedNativeQuery
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/NamedQuery.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/NamedQuery.java
new file mode 100755
index 000000000..760f35b20
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/NamedQuery.java
@@ -0,0 +1,116 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NamedQuery.java,v 1.1 2009/03/15 23:45:01 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Named Query</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({TYPE}) @Retention(RUNTIME)
+ * public @interface NamedQuery {
+ * String name();
+ * String query();
+ * QueryHint[] hints() default {};
+ * }
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.NamedQuery#getQuery <em>Query</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.NamedQuery#getHint <em>Hint</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.jpa.orm.NamedQuery#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getNamedQuery()
+ * @model extendedMetaData="name='named-query' kind='elementOnly'"
+ * @generated
+ */
+public interface NamedQuery extends EObject {
+ /**
+ * Returns the value of the '<em><b>Query</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Query</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Query</em>' attribute.
+ * @see #setQuery(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getNamedQuery_Query()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='element' name='query' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getQuery();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.NamedQuery#getQuery <em>Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Query</em>' attribute.
+ * @see #getQuery()
+ * @generated
+ */
+ void setQuery(String value);
+
+ /**
+ * Returns the value of the '<em><b>Hint</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.jpa.orm.QueryHint}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hint</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hint</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getNamedQuery_Hint()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='hint' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<QueryHint> getHint();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.jpa.orm.OrmPackage#getNamedQuery_Name()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.jpa.orm.NamedQuery#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // NamedQuery
diff --git a/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/OneToMany.java b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/OneToMany.java
new file mode 100755
index 000000000..ff9edaf29
--- /dev/null
+++ b/eclipselink/org.eclipse.emf.teneo.orm/src/org/eclipse/emf/teneo/jpa/orm/OneToMany.java
@@ -0,0 +1,315 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OneToMany.java,v 1.1 2009/03/15 23:45:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.jpa.orm;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>One To Many</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ * public @interface OneToMany {
+ * Class targetEnt