Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Taal2011-11-01 18:12:35 +0000
committerMartin Taal2011-11-01 18:12:35 +0000
commit97842a213a338601aa158b3d9f995f464bb25681 (patch)
tree5b9a657ccdce9960b252f3bc8dcc09a2626bd711 /hibernate/org.eclipse.emf.teneo.hibernate.mapper
parent709ec105b89258b5e6b27e57cb3deb177529c54c (diff)
downloadorg.eclipse.emf.teneo-97842a213a338601aa158b3d9f995f464bb25681.tar.gz
org.eclipse.emf.teneo-97842a213a338601aa158b3d9f995f464bb25681.tar.xz
org.eclipse.emf.teneo-97842a213a338601aa158b3d9f995f464bb25681.zip
New structure
Diffstat (limited to 'hibernate/org.eclipse.emf.teneo.hibernate.mapper')
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/.classpath7
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/.cvsignore2
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/.project40
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/.cvsignore2
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/.jsdtscope4
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jdt.core.prefs12
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jdt.ui.prefs3
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jst.common.project.facet.core.prefs3
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.common.project.facet.core.xml3
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.jsdt.ui.superType.container1
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.jsdt.ui.superType.name1
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/META-INF/MANIFEST.MF25
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/about.html24
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/about.ini17
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/about.properties46
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/build.properties28
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/copyright.txt9
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/epl-v10.html319
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/license.html319
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbannotation.ecore322
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbannotation.genmodel246
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbmodel.ecore113
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/modeling32.pngbin0 -> 2414 bytes
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/plugin.properties33
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/plugin.xml27
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationModelBuilder.java59
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationUtil.java61
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEAnnotationParserImporter.java77
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEClassAnnotator.java208
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEDataTypeAnnotator.java121
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEFeatureAnnotator.java35
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbManyToOneReferenceAnnotator.java72
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbMappingSchemaGenerator.java91
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToManyAttributeAnnotator.java99
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToManyReferenceAnnotator.java167
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToOneReferenceAnnotator.java72
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbSingleAttributeAnnotator.java40
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbUnidirectionalManyToManyAnnotator.java49
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbXmlPersistenceMapper.java29
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/persistence-mapping.xsd776
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOEntityMapper.java70
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOHelper.java73
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOMappingContext.java108
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Any.java141
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/AnyMetaDef.java127
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/BatchSize.java53
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Cache.java104
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/CacheConcurrencyStrategy.java274
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Cascade.java46
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/CollectionOfElements.java82
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Columns.java25
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/DiscriminatorFormula.java53
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Fetch.java56
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Filter.java80
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/FilterDef.java98
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/FilterDefs.java44
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Filters.java44
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/ForceDiscriminator.java21
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Formula.java53
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Generated.java56
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/GenerationTime.java239
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/GenericGenerator.java96
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbAnnotation.java23
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbCascadeType.java455
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbEntity.java224
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbFetchType.java229
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbMapKey.java45
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbannotationFactory.java312
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbannotationPackage.java3458
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/IdBag.java104
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Immutable.java21
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Index.java53
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MapKey.java43
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MapKeyManyToMany.java72
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MetaValue.java80
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NamedQuery.java80
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NaturalId.java53
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NotFound.java56
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NotFoundAction.java212
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OnDelete.java56
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OnDeleteAction.java211
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OptimisticLockType.java266
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/ParamDef.java80
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Parameter.java76
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/PolymorphismType.java212
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Proxy.java81
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Type.java68
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/TypeDef.java94
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Where.java49
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/AnyImpl.java353
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/AnyMetaDefImpl.java328
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/BatchSizeImpl.java163
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CacheImpl.java272
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CascadeImpl.java149
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CollectionOfElementsImpl.java218
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/DiscriminatorFormulaImpl.java163
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FetchImpl.java164
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FilterDefImpl.java257
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FilterImpl.java217
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ForceDiscriminatorImpl.java42
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FormulaImpl.java163
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/GeneratedImpl.java164
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/GenericGeneratorImpl.java257
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbAnnotationImpl.java73
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbEntityImpl.java489
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbMapKeyImpl.java150
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbannotationFactoryImpl.java657
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbannotationPackageImpl.java1955
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/IdBagImpl.java271
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ImmutableImpl.java42
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/IndexImpl.java163
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/MapKeyManyToManyImpl.java220
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/MetaValueImpl.java217
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NamedQueryImpl.java217
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NaturalIdImpl.java163
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NotFoundImpl.java164
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/OnDeleteImpl.java164
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ParamDefImpl.java217
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ParameterImpl.java217
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ProxyImpl.java217
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/TypeDefImpl.java257
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/TypeImpl.java203
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/WhereImpl.java163
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationAdapterFactory.java730
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationSwitch.java870
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationValidator.java920
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CacheValidator.java23
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CascadeValidator.java23
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CollectionOfElementsValidator.java22
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FetchValidator.java21
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterDefValidator.java25
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterDefsValidator.java23
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterValidator.java21
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FiltersValidator.java23
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/GeneratedValidator.java21
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/GenericGeneratorValidator.java25
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/HbAnnotationValidator.java19
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/IdBagValidator.java23
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/IndexValidator.java20
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/MapKeyValidator.java23
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/NamedQueryValidator.java21
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/OnDeleteValidator.java25
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ParamDefValidator.java21
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ParameterValidator.java21
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ProxyValidator.java26
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/TypeDefValidator.java25
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/TypeValidator.java24
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/WhereValidator.java20
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEAttribute.java165
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEClass.java332
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEDataType.java184
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEModelElement.java22
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEPackage.java118
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEReference.java305
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedETypeElement.java286
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbmodelFactory.java82
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbmodelPackage.java2748
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEAttributeImpl.java1070
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEClassImpl.java788
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEDataTypeImpl.java519
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEPackageImpl.java283
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEReferenceImpl.java1387
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbmodelFactoryImpl.java146
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbmodelPackageImpl.java884
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/util/HbmodelAdapterFactory.java385
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/util/HbmodelSwitch.java409
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEAttributeValidator.java24
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEClassValidator.java40
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEDataTypeValidator.java34
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEModelElementValidator.java19
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEPackageValidator.java31
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEReferenceValidator.java26
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedETypeElementValidator.java40
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/AbstractAssociationMapper.java962
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/AbstractMapper.java971
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/BasicMapper.java293
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/EmbeddedMapper.java140
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/EntityMapper.java871
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/FeatureMapMapping.java193
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/FeatureMapper.java279
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/GenerateHBM.java145
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/HbMapperConstants.java74
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/HibernateMappingGenerator.java378
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/IdMapper.java415
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyAttributeMapper.java114
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyExternalReferenceMapper.java79
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyToManyMapper.java166
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyToOneMapper.java180
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingContext.java916
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingException.java61
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingUtil.java139
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/OneToManyMapper.java430
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/OneToOneMapper.java198
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/classic/ClassicMappingContext.java131
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate.mapper/text/description.txt254
195 files changed, 42078 insertions, 0 deletions
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.classpath b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.classpath
new file mode 100755
index 000000000..64c5e31b7
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.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/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.cvsignore b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.cvsignore
new file mode 100755
index 000000000..7ce3b4d3f
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.cvsignore
@@ -0,0 +1,2 @@
+bin*
+*.jar
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.project b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.project
new file mode 100755
index 000000000..f89868e94
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.teneo.hibernate.mapper</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ </natures>
+</projectDescription>
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/.cvsignore b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/.cvsignore
new file mode 100755
index 000000000..2d013705a
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/.cvsignore
@@ -0,0 +1,2 @@
+org.eclipse.wst.common.component
+org.eclipse.wst.common.project.facet.core.xml
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/.jsdtscope b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/.jsdtscope
new file mode 100644
index 000000000..0e4b119ca
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/.jsdtscope
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="output" path=""/>
+</classpath>
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jdt.core.prefs b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 000000000..05d22a303
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Mon Feb 08 06:55:22 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/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jdt.ui.prefs b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jdt.ui.prefs
new file mode 100755
index 000000000..7e986800d
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,3 @@
+#Sat Nov 25 21:46:00 CET 2006
+eclipse.preferences.version=1
+internal.default.compliance=default
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jst.common.project.facet.core.prefs b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jst.common.project.facet.core.prefs
new file mode 100755
index 000000000..cbff5f2bd
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.jst.common.project.facet.core.prefs
@@ -0,0 +1,3 @@
+#Wed Feb 07 12:33:50 CET 2007
+classpath.helper/org.eclipse.jdt.launching.JRE_CONTAINER\:\:org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType\:\:jdk1.5.0_06/owners=jst.java\:5.0
+eclipse.preferences.version=1
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.common.project.facet.core.xml b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..88ceb05cc
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+</faceted-project>
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.jsdt.ui.superType.container b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.jsdt.ui.superType.container
new file mode 100644
index 000000000..3bd5d0a48
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.jsdt.ui.superType.container
@@ -0,0 +1 @@
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.jsdt.ui.superType.name b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.jsdt.ui.superType.name
new file mode 100644
index 000000000..05bd71b6e
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/.settings/org.eclipse.wst.jsdt.ui.superType.name
@@ -0,0 +1 @@
+Window \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/META-INF/MANIFEST.MF b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/META-INF/MANIFEST.MF
new file mode 100755
index 000000000..b5d6ac7a4
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Plugin.name
+Bundle-SymbolicName: org.eclipse.emf.teneo.hibernate.mapper;singleton:=true
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Eclipse-BuddyPolicy: dependent
+Bundle-Vendor: %Plugin.providerName
+Export-Package: org.eclipse.emf.teneo.hibernate.annotations;version="1.1.2",
+ org.eclipse.emf.teneo.hibernate.cdo;version="1.1.2",
+ org.eclipse.emf.teneo.hibernate.hbannotation;version="1.1.2",
+ org.eclipse.emf.teneo.hibernate.hbannotation.impl;version="1.1.2",
+ org.eclipse.emf.teneo.hibernate.hbannotation.util;version="1.1.2",
+ org.eclipse.emf.teneo.hibernate.hbannotation.validation;version="1.1.2",
+ org.eclipse.emf.teneo.hibernate.hbmodel;version="1.1.2",
+ org.eclipse.emf.teneo.hibernate.hbmodel.impl;version="1.1.2",
+ org.eclipse.emf.teneo.hibernate.hbmodel.util;version="1.1.2",
+ org.eclipse.emf.teneo.hibernate.hbmodel.validation;version="1.1.2",
+ org.eclipse.emf.teneo.hibernate.mapper;version="1.1.2",
+ org.eclipse.emf.teneo.hibernate.mapper.classic;version="1.1.2"
+Require-Bundle: org.eclipse.emf.teneo;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.teneo.annotations;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Import-Package: org.apache.commons.logging;version="[1.0.0,2.0.0)"
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/about.html b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/about.html
new file mode 100755
index 000000000..5a279453c
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/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/hibernate/org.eclipse.emf.teneo.hibernate.mapper/about.ini b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/about.ini
new file mode 100755
index 000000000..1d17e5539
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/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/hibernate/org.eclipse.emf.teneo.hibernate.mapper/about.properties b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/about.properties
new file mode 100755
index 000000000..71baa9f3c
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/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.4 2009/02/24 12:05:26 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/hibernate/org.eclipse.emf.teneo.hibernate.mapper/build.properties b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/build.properties
new file mode 100755
index 000000000..7c919daa7
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/build.properties
@@ -0,0 +1,28 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.11 2011/02/21 04:42:49 mtaal Exp $
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html,\
+ about.ini,\
+ about.properties,\
+ copyright.txt,\
+ epl-v10.html,\
+ license.html,\
+ modeling32.png
+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/hibernate/org.eclipse.emf.teneo.hibernate.mapper/copyright.txt b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/copyright.txt
new file mode 100755
index 000000000..537e4f8c1
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/copyright.txt
@@ -0,0 +1,9 @@
+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
+ Davide Marchignoli
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/epl-v10.html b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/epl-v10.html
new file mode 100755
index 000000000..d7b88e941
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/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/hibernate/org.eclipse.emf.teneo.hibernate.mapper/license.html b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/license.html
new file mode 100755
index 000000000..d7b88e941
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/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/hibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbannotation.ecore b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbannotation.ecore
new file mode 100755
index 000000000..f217eb931
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbannotation.ecore
@@ -0,0 +1,322 @@
+<?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="hbannotation"
+ nsURI="http://www.eclipse.org/emf/teneo/2006/HbAnnotation" nsPrefix="org.eclipse.emf.teneo.hibernate">
+ <eAnnotations source="teneo.mapping.source">
+ <details key="1" value="http://hibernate.elver.org/"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="HbAnnotation" abstract="true" eSuperTypes="../../org.eclipse.emf.teneo.annotations/model/pannotation.ecore#//PAnnotation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="CompatibleEModelElementType AnnotationIsSupported"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Cascade" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" upperBound="-1"
+ eType="#//HbCascadeType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CollectionOfElements" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fetch" eType="ecore:EEnum ../../org.eclipse.emf.teneo.annotations/model/pannotation.ecore#//FetchType"
+ defaultValueLiteral="LAZY"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HbMapKey" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="columns" ordered="false"
+ upperBound="-1" eType="ecore:EClass ../../org.eclipse.emf.teneo.annotations/model/pannotation.ecore#//Column"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Collection">
+ <details key="name" value="Parameters"/>
+ <details key="packageNS" value="http://www.eclipse.org/emf/teneo/2006/HbAnnotation"/>
+ </eAnnotations>
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ <details key="1" value="EClass"/>
+ <details key="2" value="EPackage"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Type" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
+ eType="#//Parameter"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Where" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="clause" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IdBag" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="generator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="increment"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="long"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="table" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenericGenerator" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ <details key="1" value="EClass"/>
+ <details key="2" value="EPackage"/>
+ </eAnnotations>
+ <eAnnotations source="http://annotation.elver.org/internal/Collection">
+ <details key="name" value="GenericGenerators"/>
+ <details key="packageNS" value="http://www.eclipse.org/emf/teneo/2006/HbAnnotation"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="strategy" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
+ eType="#//Parameter"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="CacheConcurrencyStrategy">
+ <eLiterals name="NONE" literal="NONE"/>
+ <eLiterals name="READ_ONLY" value="1" literal="READ_ONLY"/>
+ <eLiterals name="NONSTRICT_READ_WRITE" value="2" literal="NONSTRICT_READ_WRITE"/>
+ <eLiterals name="READ_WRITE" value="3" literal="READ_WRITE"/>
+ <eLiterals name="TRANSACTIONAL" value="4" literal="TRANSACTIONAL"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Cache" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EReference"/>
+ <details key="1" value="EClass"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="usage" eType="#//CacheConcurrencyStrategy"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="region" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="include" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeDef" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ <details key="1" value="EClass"/>
+ <details key="2" value="EPackage"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
+ eType="#//Parameter"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeClass" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="HbFetchType">
+ <eLiterals name="JOIN" literal="JOIN"/>
+ <eLiterals name="SELECT" value="1" literal="SELECT"/>
+ <eLiterals name="SUBSELECT" value="2" literal="SUBSELECT"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Fetch" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//HbFetchType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="OnDeleteAction">
+ <eLiterals name="NO_ACTION" literal="NO_ACTION"/>
+ <eLiterals name="CASCADE" value="1" literal="CASCADE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OnDelete" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="action" eType="#//OnDeleteAction"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Proxy" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EClass"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="proxyClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lazy" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Index" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenerationTime">
+ <eLiterals name="NEVER"/>
+ <eLiterals name="INSERT" value="1"/>
+ <eLiterals name="ALWAYS" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Generated" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EAttribute"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//GenerationTime"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NamedQuery" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EClass"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Filter" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EClass"/>
+ <details key="1" value="EReference"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="condition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParamDef" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EClass"/>
+ <details key="1" value="EReference"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FilterDef" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EClass"/>
+ <details key="1" value="EReference"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultCondition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
+ eType="#//ParamDef"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DiscriminatorFormula" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="teneo/internal/Target">
+ <details key="0" value="EClass"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NaturalId" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mutable" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MapKeyManyToMany" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EReference"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="joinColumns" ordered="false"
+ upperBound="-1" eType="ecore:EClass ../../org.eclipse.emf.teneo.annotations/model/pannotation.ecore#//JoinColumn"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetEntity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ForceDiscriminator" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="teneo/internal/Target">
+ <details key="0" value="EClass"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Immutable" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="teneo/internal/Target">
+ <details key="0" value="EClass"/>
+ <details key="1" value="EReference"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Formula" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="teneo/internal/Target">
+ <details key="0" value="EAttribute"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="NotFoundAction">
+ <eLiterals name="EXCEPTION" literal="EXCEPTION"/>
+ <eLiterals name="IGNORE" value="1" literal="IGNORE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotFound" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EReference"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="action" lowerBound="1"
+ eType="#//NotFoundAction"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HbEntity" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicInsert" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicUpdate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="selectBeforeUpdate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mutable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="persister" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="optimisticLock" eType="#//OptimisticLockType"
+ defaultValueLiteral="VERSION"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="polymorphism" eType="#//PolymorphismType"
+ defaultValueLiteral="IMPLICIT"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="OptimisticLockType">
+ <eLiterals name="ALL" literal="ALL"/>
+ <eLiterals name="DIRTY" value="1" literal="DIRTY"/>
+ <eLiterals name="NONE" value="2" literal="NONE"/>
+ <eLiterals name="VERSION" value="3" literal="VERSION"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="PolymorphismType">
+ <eLiterals name="IMPLICIT" literal="IMPLICIT"/>
+ <eLiterals name="EXPLICIT" value="1" literal="EXPLICIT"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="HbCascadeType">
+ <eLiterals name="ALL"/>
+ <eLiterals name="PERSIST" value="1"/>
+ <eLiterals name="MERGE" value="2"/>
+ <eLiterals name="REMOVE" value="3"/>
+ <eLiterals name="REFRESH" value="4"/>
+ <eLiterals name="DELETE" value="5" literal="DELETE"/>
+ <eLiterals name="SAVE_UPDATE" value="6" literal="SAVE_UPDATE"/>
+ <eLiterals name="REPLICATE" value="7" literal="REPLICATE"/>
+ <eLiterals name="DELETE_ORPHAN" value="8" literal="DELETE_ORPHAN"/>
+ <eLiterals name="LOCK" value="9"/>
+ <eLiterals name="EVICT" value="10"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchSize" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="teneo/internal/Target">
+ <details key="0" value="EClass"/>
+ <details key="1" value="EReference"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Any" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metaDef" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaColumn" eType="ecore:EClass ../../org.eclipse.emf.teneo.annotations/model/pannotation.ecore#//Column"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fetch" eType="ecore:EEnum ../../org.eclipse.emf.teneo.annotations/model/pannotation.ecore#//FetchType"
+ defaultValueLiteral="EAGER"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="optional" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetaValue" eSuperTypes="#//HbAnnotation">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetEntity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AnyMetaDef" eSuperTypes="#//HbAnnotation">
+ <eAnnotations source="http://annotation.elver.org/internal/Target">
+ <details key="0" value="EStructuralFeature"/>
+ <details key="1" value="EClass"/>
+ <details key="2" value="EPackage"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metaType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="string"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="idType" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral="string"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaValues" upperBound="-1"
+ eType="#//MetaValue" containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbannotation.genmodel b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbannotation.genmodel
new file mode 100755
index 000000000..e58b55197
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbannotation.genmodel
@@ -0,0 +1,246 @@
+<?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.hibernate.mapper/src"
+ modelPluginID="org.eclipse.emf.teneo.hibernate.mapper" modelName="Hbannotation"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+ usedGenPackages="../../org.eclipse.emf.teneo.annotations/model/pannotation.genmodel#//pamodel ../../org.eclipse.emf.teneo.annotations/model/pannotation.genmodel#//pannotation">
+ <foreignModel>hbannotation.ecore</foreignModel>
+ <foreignModel>hbmodel.ecore</foreignModel>
+ <genPackages prefix="Hbannotation" basePackage="org.eclipse.emf.teneo.hibernate"
+ disposableProviderFactory="true" ecorePackage="hbannotation.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="hbannotation.ecore#//CacheConcurrencyStrategy">
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//CacheConcurrencyStrategy/NONE"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//CacheConcurrencyStrategy/READ_ONLY"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//CacheConcurrencyStrategy/NONSTRICT_READ_WRITE"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//CacheConcurrencyStrategy/READ_WRITE"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//CacheConcurrencyStrategy/TRANSACTIONAL"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="hbannotation.ecore#//HbFetchType">
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbFetchType/JOIN"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbFetchType/SELECT"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbFetchType/SUBSELECT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="hbannotation.ecore#//OnDeleteAction">
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//OnDeleteAction/NO_ACTION"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//OnDeleteAction/CASCADE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="hbannotation.ecore#//GenerationTime">
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//GenerationTime/NEVER"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//GenerationTime/INSERT"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//GenerationTime/ALWAYS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="hbannotation.ecore#//NotFoundAction">
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//NotFoundAction/EXCEPTION"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//NotFoundAction/IGNORE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="hbannotation.ecore#//OptimisticLockType">
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//OptimisticLockType/ALL"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//OptimisticLockType/DIRTY"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//OptimisticLockType/NONE"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//OptimisticLockType/VERSION"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="hbannotation.ecore#//PolymorphismType">
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//PolymorphismType/IMPLICIT"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//PolymorphismType/EXPLICIT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="hbannotation.ecore#//HbCascadeType">
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbCascadeType/ALL"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbCascadeType/PERSIST"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbCascadeType/MERGE"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbCascadeType/REMOVE"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbCascadeType/REFRESH"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbCascadeType/DELETE"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbCascadeType/SAVE_UPDATE"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbCascadeType/REPLICATE"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbCascadeType/DELETE_ORPHAN"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbCascadeType/LOCK"/>
+ <genEnumLiterals ecoreEnumLiteral="hbannotation.ecore#//HbCascadeType/EVICT"/>
+ </genEnums>
+ <genClasses image="false" ecoreClass="hbannotation.ecore#//HbAnnotation"/>
+ <genClasses ecoreClass="hbannotation.ecore#//Cascade">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Cascade/value"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//CollectionOfElements">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//CollectionOfElements/targetElement"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//CollectionOfElements/fetch"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//HbMapKey">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbannotation.ecore#//HbMapKey/columns"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//Parameter">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Parameter/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Parameter/value"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//Type">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Type/type"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbannotation.ecore#//Type/parameters"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//Where">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Where/clause"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//IdBag">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//IdBag/generator"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//IdBag/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//IdBag/table"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//GenericGenerator">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//GenericGenerator/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//GenericGenerator/strategy"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbannotation.ecore#//GenericGenerator/parameters"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//Cache">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Cache/usage"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Cache/region"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Cache/include"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//TypeDef">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//TypeDef/name"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbannotation.ecore#//TypeDef/parameters"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//TypeDef/typeClass"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//Fetch">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Fetch/value"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//OnDelete">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//OnDelete/action"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//Proxy">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Proxy/proxyClass"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Proxy/lazy"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//Index">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Index/name"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//Generated">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Generated/value"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//NamedQuery">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//NamedQuery/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//NamedQuery/query"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//Filter">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Filter/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Filter/condition"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//ParamDef">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//ParamDef/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//ParamDef/type"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//FilterDef">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//FilterDef/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//FilterDef/defaultCondition"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbannotation.ecore#//FilterDef/parameters"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//DiscriminatorFormula">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//DiscriminatorFormula/value"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//NaturalId">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//NaturalId/mutable"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//MapKeyManyToMany">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbannotation.ecore#//MapKeyManyToMany/joinColumns"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//MapKeyManyToMany/targetEntity"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//ForceDiscriminator"/>
+ <genClasses ecoreClass="hbannotation.ecore#//Immutable"/>
+ <genClasses ecoreClass="hbannotation.ecore#//Formula">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Formula/value"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//NotFound">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//NotFound/action"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//HbEntity">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//HbEntity/dynamicInsert"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//HbEntity/dynamicUpdate"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//HbEntity/selectBeforeUpdate"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//HbEntity/mutable"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//HbEntity/persister"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//HbEntity/optimisticLock"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//HbEntity/polymorphism"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//BatchSize">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//BatchSize/size"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//Any">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Any/metaDef"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbannotation.ecore#//Any/metaColumn"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Any/fetch"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//Any/optional"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//MetaValue">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//MetaValue/targetEntity"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//MetaValue/value"/>
+ </genClasses>
+ <genClasses ecoreClass="hbannotation.ecore#//AnyMetaDef">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//AnyMetaDef/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//AnyMetaDef/metaType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hbannotation.ecore#//AnyMetaDef/idType"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbannotation.ecore#//AnyMetaDef/metaValues"/>
+ </genClasses>
+ </genPackages>
+ <genPackages prefix="Hbmodel" basePackage="org.eclipse.emf.teneo.hibernate" disposableProviderFactory="true"
+ ecorePackage="hbmodel.ecore#/">
+ <genClasses image="false" ecoreClass="hbmodel.ecore#//HbAnnotatedETypeElement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedETypeElement/hbWhere"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedETypeElement/hbCollectionOfElements"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedETypeElement/hbMapKey"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedETypeElement/hbColumns"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedETypeElement/hbCascade"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedETypeElement/hbIdBag"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedETypeElement/hbIndex"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedETypeElement/Filter"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedETypeElement/mapKeyManyToMany"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedETypeElement/formula"/>
+ </genClasses>
+ <genClasses ecoreClass="hbmodel.ecore#//HbAnnotatedEAttribute">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEAttribute/hbType"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEAttribute/generated"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEAttribute/naturalId"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEAttribute/any"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEAttribute/anyMetaDef"/>
+ </genClasses>
+ <genClasses ecoreClass="hbmodel.ecore#//HbAnnotatedEClass">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/hbCache"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/hbOnDelete"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/hbWhere"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/hbProxy"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/hbNamedQuery"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/FilterDef"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/Filter"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/discriminatorFormula"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/forceDiscriminator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/immutable"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/hbEntity"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEClass/batchSize"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="hbmodel.ecore#//HbAnnotatedEModelElement"/>
+ <genClasses ecoreClass="hbmodel.ecore#//HbAnnotatedEPackage">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEPackage/hbGenericGenerators"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEPackage/hbTypeDef"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEPackage/hbNamedQuery"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEPackage/FilterDef"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEPackage/anyMetaDef"/>
+ </genClasses>
+ <genClasses ecoreClass="hbmodel.ecore#//HbAnnotatedEReference">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEReference/hbCache"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEReference/hbFetch"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEReference/hbOnDelete"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEReference/naturalId"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEReference/immutable"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEReference/notFound"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEReference/hbType"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEReference/batchSize"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEReference/any"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEReference/anyMetaDef"/>
+ </genClasses>
+ <genClasses ecoreClass="hbmodel.ecore#//HbAnnotatedEDataType">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEDataType/hbTypeDef"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEDataType/hbWhere"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEDataType/hbColumns"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEDataType/hbIdBag"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEDataType/hbIndex"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hbmodel.ecore#//HbAnnotatedEDataType/hbType"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbmodel.ecore b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbmodel.ecore
new file mode 100755
index 000000000..eca189239
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/model/hbmodel.ecore
@@ -0,0 +1,113 @@
+<?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="hbmodel"
+ nsURI="http://www.eclipse.org/emf/teneo/2006/HbModel" nsPrefix="org.eclipse.emf.teneo.hibernate">
+ <eClassifiers xsi:type="ecore:EClass" name="HbAnnotatedETypeElement" abstract="true"
+ interface="true" eSuperTypes="../../org.eclipse.emf.teneo.annotations/model/pamodel.ecore#//PAnnotatedEStructuralFeature #//HbAnnotatedEModelElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbWhere" eType="ecore:EClass hbannotation.ecore#//Where"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbCollectionOfElements"
+ eType="ecore:EClass hbannotation.ecore#//CollectionOfElements" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbMapKey" eType="ecore:EClass hbannotation.ecore#//HbMapKey"
+ containment="true">
+ <eAnnotations source="teneo/internal/PersistenceMapping">
+ <details key="elementName" value="hb-map-key"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbColumns" upperBound="-1"
+ eType="ecore:EClass ../../org.eclipse.emf.teneo.annotations/model/pannotation.ecore#//Column"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbCascade" eType="ecore:EClass hbannotation.ecore#//Cascade"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbIdBag" eType="ecore:EClass hbannotation.ecore#//IdBag"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbIndex" eType="ecore:EClass hbannotation.ecore#//Index"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="Filter" upperBound="-1"
+ eType="ecore:EClass hbannotation.ecore#//Filter"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapKeyManyToMany" eType="ecore:EClass hbannotation.ecore#//MapKeyManyToMany"
+ containment="true">
+ <eAnnotations source="teneo/internal/PersistenceMapping">
+ <details key="elementName" value="hb-map-key"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="formula" eType="ecore:EClass hbannotation.ecore#//Formula"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HbAnnotatedEAttribute" eSuperTypes="../../org.eclipse.emf.teneo.annotations/model/pamodel.ecore#//PAnnotatedEAttribute #//HbAnnotatedETypeElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbType" eType="ecore:EClass hbannotation.ecore#//Type"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="generated" eType="ecore:EClass hbannotation.ecore#//Generated"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="naturalId" eType="ecore:EClass hbannotation.ecore#//NaturalId"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="any" eType="ecore:EClass hbannotation.ecore#//Any"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="anyMetaDef" eType="ecore:EClass hbannotation.ecore#//AnyMetaDef"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HbAnnotatedEClass" eSuperTypes="../../org.eclipse.emf.teneo.annotations/model/pamodel.ecore#//PAnnotatedEClass">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbCache" eType="ecore:EClass hbannotation.ecore#//Cache"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbOnDelete" eType="ecore:EClass hbannotation.ecore#//OnDelete"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbWhere" eType="ecore:EClass hbannotation.ecore#//Where"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbProxy" eType="ecore:EClass hbannotation.ecore#//Proxy"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbNamedQuery" upperBound="-1"
+ eType="ecore:EClass hbannotation.ecore#//NamedQuery"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="FilterDef" upperBound="-1"
+ eType="ecore:EClass hbannotation.ecore#//FilterDef"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="Filter" upperBound="-1"
+ eType="ecore:EClass hbannotation.ecore#//Filter"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="discriminatorFormula" eType="ecore:EClass hbannotation.ecore#//DiscriminatorFormula"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="forceDiscriminator" eType="ecore:EClass hbannotation.ecore#//ForceDiscriminator"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="immutable" eType="ecore:EClass hbannotation.ecore#//Immutable"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbEntity" eType="ecore:EClass hbannotation.ecore#//HbEntity"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="batchSize" eType="ecore:EClass hbannotation.ecore#//BatchSize"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HbAnnotatedEModelElement" abstract="true"
+ interface="true" eSuperTypes="../../org.eclipse.emf.teneo.annotations/model/pamodel.ecore#//PAnnotatedEModelElement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="HbAnnotatedEPackage" eSuperTypes="../../org.eclipse.emf.teneo.annotations/model/pamodel.ecore#//PAnnotatedEPackage">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbGenericGenerators" upperBound="-1"
+ eType="ecore:EClass hbannotation.ecore#//GenericGenerator" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbTypeDef" upperBound="-1"
+ eType="ecore:EClass hbannotation.ecore#//TypeDef" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbNamedQuery" upperBound="-1"
+ eType="ecore:EClass hbannotation.ecore#//NamedQuery"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="FilterDef" upperBound="-1"
+ eType="ecore:EClass hbannotation.ecore#//FilterDef"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="anyMetaDef" upperBound="-1"
+ eType="ecore:EClass hbannotation.ecore#//AnyMetaDef"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HbAnnotatedEReference" eSuperTypes="../../org.eclipse.emf.teneo.annotations/model/pamodel.ecore#//PAnnotatedEReference #//HbAnnotatedETypeElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbCache" eType="ecore:EClass hbannotation.ecore#//Cache"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbFetch" eType="ecore:EClass hbannotation.ecore#//Fetch"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbOnDelete" eType="ecore:EClass hbannotation.ecore#//OnDelete"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="naturalId" eType="ecore:EClass hbannotation.ecore#//NaturalId"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="immutable" eType="ecore:EClass hbannotation.ecore#//Immutable"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="notFound" eType="ecore:EClass hbannotation.ecore#//NotFound"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbType" eType="ecore:EClass hbannotation.ecore#//Type"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="batchSize" eType="ecore:EClass hbannotation.ecore#//BatchSize"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="any" eType="ecore:EClass hbannotation.ecore#//Any"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="anyMetaDef" eType="ecore:EClass hbannotation.ecore#//AnyMetaDef"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HbAnnotatedEDataType" eSuperTypes="../../org.eclipse.emf.teneo.annotations/model/pamodel.ecore#//PAnnotatedEDataType #//HbAnnotatedEModelElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbTypeDef" eType="ecore:EClass hbannotation.ecore#//TypeDef"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbWhere" eType="ecore:EClass hbannotation.ecore#//Where"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbColumns" upperBound="-1"
+ eType="ecore:EClass ../../org.eclipse.emf.teneo.annotations/model/pannotation.ecore#//Column"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbIdBag" eType="ecore:EClass hbannotation.ecore#//IdBag"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbIndex" eType="ecore:EClass hbannotation.ecore#//Index"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hbType" eType="ecore:EClass hbannotation.ecore#//Type"
+ containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/modeling32.png b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/modeling32.png
new file mode 100755
index 000000000..6b08de2ad
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/modeling32.png
Binary files differ
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/plugin.properties b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/plugin.properties
new file mode 100755
index 000000000..166bda0ca
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/plugin.properties
@@ -0,0 +1,33 @@
+#/**
+# * <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.12 2010/02/06 20:59:38 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 Hibernate Mapper
+Plugin.providerName = Eclipse Modeling Project
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/plugin.xml b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/plugin.xml
new file mode 100755
index 000000000..6d6e94479
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/plugin.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id: plugin.xml,v 1.3 2009/09/13 14:45:39 mtaal Exp $
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/emf/teneo/2006/HbAnnotation"
+ class="org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage"
+ genModel="model/hbannotation.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/emf/teneo/2006/HbModel"
+ class="org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage"
+ genModel="model/hbannotation.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationModelBuilder.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationModelBuilder.java
new file mode 100755
index 000000000..81ad1dbca
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationModelBuilder.java
@@ -0,0 +1,59 @@
+/**
+ * <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:
+ * Douglas Bitting
+ * </copyright>
+ *
+ * $Id: HbAnnotationModelBuilder.java,v 1.3 2008/02/28 07:07:43 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.teneo.annotations.mapper.BasicPamodelBuilder;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEModelElement;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelFactory;
+
+/**
+ * This class create the Hibernate-model versions of the various PaAnnotatedE* objects.
+ */
+public class HbAnnotationModelBuilder extends BasicPamodelBuilder {
+
+ /** Use hb annotation types */
+ @Override
+ protected PAnnotatedEModelElement doCreate(EModelElement eModelElement) throws AssertionError {
+ final EClass eModelElementEClass = eModelElement.eClass();
+ PAnnotatedEModelElement paElement;
+ switch (eModelElementEClass.getClassifierID()) {
+ case EcorePackage.EATTRIBUTE:
+ paElement = HbmodelFactory.eINSTANCE.createHbAnnotatedEAttribute();
+ break;
+ case EcorePackage.EREFERENCE:
+ paElement = HbmodelFactory.eINSTANCE.createHbAnnotatedEReference();
+ break;
+ case EcorePackage.ECLASS:
+ paElement = HbmodelFactory.eINSTANCE.createHbAnnotatedEClass();
+ break;
+ case EcorePackage.EPACKAGE:
+ paElement = HbmodelFactory.eINSTANCE.createHbAnnotatedEPackage();
+ break;
+ case EcorePackage.EENUM:
+ case EcorePackage.EDATA_TYPE:
+ paElement = HbmodelFactory.eINSTANCE.createHbAnnotatedEDataType();
+ break;
+ default:
+ throw new AssertionError("Trying to build HbAnnotatedEModelElement for a " + eModelElementEClass);
+ }
+ paElement.setModelElement((ENamedElement) eModelElement);
+ return paElement;
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationUtil.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationUtil.java
new file mode 100755
index 000000000..663483c4c
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationUtil.java
@@ -0,0 +1,61 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbAnnotationUtil.java,v 1.5 2010/11/24 07:11:48 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.teneo.annotations.mapper.AbstractAnnotator;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationFactory;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+
+/**
+ * Some utility methods.
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.5 $
+ */
+
+public class HbAnnotationUtil {
+
+ // The logger
+ protected static final Log log = LogFactory.getLog(HbAnnotationUtil.class);
+
+ /** Adds an index */
+ public static void setIndex(PAnnotatedEReference aReference,
+ AbstractAnnotator annotator) {
+ final String indexName = annotator.getPersistenceOptions()
+ .getSQLIndexNamePrefix()
+ + annotator.getEntityName(aReference.getModelEReference()
+ .getEContainingClass())
+ + "_"
+ + aReference.getModelEReference().getName();
+ final HbAnnotatedEReference haReference = (HbAnnotatedEReference) aReference;
+ if (haReference.getHbIndex() == null) {
+ final Index index = HbannotationFactory.eINSTANCE.createIndex();
+ index.setName(indexName);
+ haReference.setHbIndex(index);
+ } else {
+ final Index index = haReference.getHbIndex();
+ if (index.getName() != null && index.getName().length() > 0) {
+ index.setName(index.getName() + ",");
+ }
+ index.setName(index.getName() + indexName);
+ }
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEAnnotationParserImporter.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEAnnotationParserImporter.java
new file mode 100755
index 000000000..54516f7ae
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEAnnotationParserImporter.java
@@ -0,0 +1,77 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbEAnnotationParserImporter.java,v 1.3 2009/09/22 05:39:07 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.teneo.annotations.parser.EAnnotationParserImporter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * Overrides the default EAnnotationParserImporter to add a hibernate source
+ */
+public class HbEAnnotationParserImporter extends EAnnotationParserImporter {
+
+ /** The prefix for hibernate types */
+ private static final String HB_PREFIX = "hb:";
+
+ /** Returns true if the source is a hibernate source or a generic source */
+ @Override
+ protected boolean isValidSource(String source) {
+ if (source == null) {
+ return false;
+ }
+ return source.startsWith("teneo.hibernate") || super.isValidSource(source);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.teneo.annotations.parser.EClassResolver#getEClass(java.lang.String)
+ */
+ @Override
+ public EClass getEClass(String name) {
+ if (name.startsWith(HB_PREFIX)) {
+ return (EClass) HbannotationPackage.eINSTANCE.getEClassifier(name.substring(HB_PREFIX.length()));
+ } else {
+ final EClass eClass = super.getEClass(name);
+ if (eClass == null) {
+ return (EClass) HbannotationPackage.eINSTANCE.getEClassifier(name);
+ }
+ return eClass;
+ }
+ }
+
+ /** Find the efeature */
+ @Override
+ public EStructuralFeature getEStructuralFeature(EClass eClass, String name) {
+ for (Object name2 : eClass.getEAllStructuralFeatures()) {
+ final EStructuralFeature ef = (EStructuralFeature) name2;
+ if (ef.getName().compareToIgnoreCase(name) == 0) {
+ return ef;
+ }
+ }
+ // not found try with the hb prefix
+ final String hbName = "hb" + name;
+ for (Object name2 : eClass.getEAllStructuralFeatures()) {
+ final EStructuralFeature ef = (EStructuralFeature) name2;
+ if (ef.getName().compareToIgnoreCase(hbName) == 0) {
+ return ef;
+ }
+ }
+ throw new IllegalArgumentException("No efeature " + name + " for eclass " + eClass.getName());
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEClassAnnotator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEClassAnnotator.java
new file mode 100755
index 000000000..73d1b8c9c
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEClassAnnotator.java
@@ -0,0 +1,208 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbEClassAnnotator.java,v 1.10 2011/09/01 07:52:50 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
+import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.annotations.mapper.EClassAnnotator;
+import org.eclipse.emf.teneo.annotations.mapper.StoreMappingException;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedModel;
+import org.eclipse.emf.teneo.ecore.EModelResolver;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationFactory;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Proxy;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass;
+
+/**
+ * Sets the annotation on an eclass.
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.10 $
+ */
+
+public class HbEClassAnnotator extends EClassAnnotator {
+
+ // The logger
+ protected static final Log log = LogFactory.getLog(HbEClassAnnotator.class);
+
+ private String defaultCacheStrategy = CacheConcurrencyStrategy.NONE
+ .getName();
+ private boolean optionSetProxy = false;
+
+ /**
+ * Returns the annotated version of an EClass, Returns false if no efeatures
+ * of this eclass should be annotated, true if its features can be
+ * annotated.
+ */
+ @Override
+ protected boolean annotate(PAnnotatedEClass aClass) {
+ final boolean res = super.annotate(aClass);
+
+ final HbAnnotatedEClass hbClass = (HbAnnotatedEClass) aClass;
+ final EClass eclass = aClass.getModelEClass();
+ Class<?> concreteClass = EModelResolver.instance().getJavaClass(eclass);
+
+ // automatically add the proxy annotation
+ if ((optionSetProxy || getPersistenceOptions().isForceLazy())
+ && hbClass.getHbProxy() == null) {
+ // in this case use the DynamicEObjectImpl
+ if (concreteClass == null) {
+ concreteClass = DynamicEObjectImpl.class;
+ }
+ if (concreteClass != null || getPersistenceOptions().isForceLazy()) {
+ final Proxy proxy = HbannotationFactory.eINSTANCE.createProxy();
+ proxy.setLazy(true);
+ // interface class is set below.
+ ((HbAnnotatedEClass) aClass).setHbProxy(proxy);
+ log.debug("Set proxy to true (" + proxy.getProxyClass()
+ + ") for eclass " + aClass.getModelEClass().getName());
+ }
+ }
+
+ if (hbClass.getHbProxy() != null && concreteClass != null) {
+ // todo add check that there is an impl class
+ aClass.setOnlyMapAsEntity(false);
+
+ // set interfacename if not set
+ if (!getPersistenceOptions().isForceLazy()) {
+ final Proxy proxy = hbClass.getHbProxy();
+ final Class<?> interfaceClass = EModelResolver.instance()
+ .getJavaInterfaceClass(eclass);
+ if (interfaceClass != null) {
+ proxy.setProxyClass(interfaceClass.getName());
+ } else { // set the class itself
+ proxy.setProxyClass(concreteClass.getName());
+ }
+ }
+ }
+
+ // now handle the case of defaultCacheStrategy which is different than
+ // none
+ boolean hasCache = ((HbAnnotatedEClass) aClass).getHbCache() != null;
+
+ if (aClass.getPaSuperEntity() != null && hasCache) {
+ log.warn("EClass: "
+ + aClass.getModelEClass().getName()
+ + " has a cache strategy defined while it has a superclass, this strategy is ignored.");
+ return res;
+ }
+
+ if (!hasCache
+ && defaultCacheStrategy
+ .compareToIgnoreCase(CacheConcurrencyStrategy.NONE
+ .getName()) != 0) {
+ final CacheConcurrencyStrategy ccs = CacheConcurrencyStrategy
+ .getByName(defaultCacheStrategy);
+ if (ccs == null) {
+ throw new StoreMappingException(
+ "The default cache strategy: "
+ + defaultCacheStrategy
+ + " is not one of the allowed values (uppercase) "
+ + "as defined in the JPA Hibernate Annotation Extensions.");
+ }
+
+ log.debug("Setting cache strategy " + defaultCacheStrategy + " on "
+ + aClass.getModelEClass().getName());
+ final Cache cache = HbannotationFactory.eINSTANCE.createCache();
+ cache.setUsage(ccs);
+ ((HbAnnotatedEClass) aClass).setHbCache(cache);
+ }
+ return res;
+ }
+
+ @Override
+ protected boolean addDiscriminator(PAnnotatedEClass aClass) {
+ final HbAnnotatedEClass hbClass = (HbAnnotatedEClass) aClass;
+
+ return hbClass.getDiscriminatorFormula() == null
+ && (hbClass.getImmutable() == null || getPersistenceOptions()
+ .isDiscriminatorVersionOnImmutableEClass());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.eclipse.emf.teneo.annotations.mapper.AbstractAnnotator#
+ * setPersistenceOptions(org.eclipse.emf.teneo.PersistenceOptions)
+ */
+ @Override
+ public void setPersistenceOptions(PersistenceOptions persistenceOptions) {
+ super.setPersistenceOptions(persistenceOptions);
+ defaultCacheStrategy = persistenceOptions.getDefaultCacheStrategy();
+ optionSetProxy = persistenceOptions.isSetProxy();
+ }
+
+ /** Set the super entity */
+ @Override
+ protected void setSuperEntity(PAnnotatedEClass aClass) {
+ assert (aClass.getPaSuperEntity() == null);
+
+ // let the superclass do it
+ if (aClass.getEntity() != null
+ && aClass.getEntity().getExtends() != null) {
+ super.setSuperEntity(aClass);
+ return;
+ }
+
+ final EClass eclass = aClass.getModelEClass();
+ if (eclass.getESuperTypes().size() == 0) {
+ aClass.setPaSuperEntity(null);
+ return;
+ }
+
+ PAnnotatedEClass superAClass = getPaSuperEntity(aClass, false);
+ if (superAClass == null) {
+ superAClass = getPaSuperEntity(aClass, true);
+ }
+ aClass.setPaSuperEntity(superAClass);
+ }
+
+ /** Compute the annotated superclass, ignore interfaces if parameterized */
+ private PAnnotatedEClass getPaSuperEntity(PAnnotatedEClass aClass,
+ boolean allowInterfaces) {
+ final PAnnotatedModel model = aClass.getPaModel();
+ for (EClass superEClass : aClass.getModelEClass().getESuperTypes()) {
+ final PAnnotatedEClass x = model.getPAnnotated(superEClass);
+ if (x.getEntity() != null && x.getMappedSuperclass() == null
+ && (allowInterfaces || !x.getModelEClass().isInterface())) {
+ return x;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Map Interface EClasses, default false, overridden by hibernate to return
+ * true
+ */
+ @Override
+ protected boolean mapInterfaceEClass() {
+ return true;
+ }
+
+ /** Map a mapped superclass, this differs for jpox and hibernate */
+ @Override
+ protected boolean mapMappedSuperEClass() {
+ return true;
+ }
+
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEDataTypeAnnotator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEDataTypeAnnotator.java
new file mode 100755
index 000000000..aa73555ef
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEDataTypeAnnotator.java
@@ -0,0 +1,121 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbEDataTypeAnnotator.java,v 1.6 2008/05/27 07:42:29 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.teneo.annotations.mapper.EDataTypeAnnotator;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEDataType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationFactory;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType;
+import org.eclipse.emf.teneo.hibernate.mapper.HbMapperConstants;
+import org.eclipse.emf.teneo.util.EcoreDataTypes;
+
+/**
+ * Annotates an EDataType
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.6 $
+ */
+
+public class HbEDataTypeAnnotator extends EDataTypeAnnotator {
+
+ // The logger
+ protected static final Log log = LogFactory.getLog(HbEDataTypeAnnotator.class);
+
+ /** Annotate it */
+ @Override
+ public void annotate(PAnnotatedEDataType ped) {
+ final HbAnnotatedEDataType hed = (HbAnnotatedEDataType) ped;
+ if (hed.getHbTypeDef() != null) {
+ return; // already there do nothing
+ }
+ final String typeClass = getCustomDataType(ped.getModelEDataType());
+ if (typeClass == null) {
+ log.debug("Not creating typedef for edatatype: " + ped.getModelEDataType().getName() +
+ " because it is natively handled by hibernate");
+ return;
+ }
+
+ // create default typedef
+ log.debug("Creating default typedef for edatatype " + hed.getModelEDataType().getName());
+ final TypeDef typeDef = HbannotationFactory.eINSTANCE.createTypeDef();
+ typeDef.setName(hed.getModelEDataType().getEPackage().getName() + "." + ped.getModelEDataType().getName());
+ typeDef.setTypeClass(getDefaultUserType());
+ // add default parameters
+ final Parameter paramPackage = HbannotationFactory.eINSTANCE.createParameter();
+ paramPackage.setName(HbMapperConstants.EPACKAGE_PARAM);
+ paramPackage.setValue(hed.getModelEDataType().getEPackage().getNsURI());
+ typeDef.getParameters().add(paramPackage);
+ final Parameter edParam = HbannotationFactory.eINSTANCE.createParameter();
+ edParam.setName(HbMapperConstants.EDATATYPE_PARAM);
+ edParam.setValue(hed.getModelEDataType().getName());
+ typeDef.getParameters().add(edParam);
+ hed.setHbTypeDef(typeDef);
+ }
+
+ /**
+ * If the specified classifier represents a custom data type not handled natively by Hibernate,
+ * get the Java class name of the class used to represent the custom data type.
+ *
+ * @param classifier
+ * non-null classifier to inspect.
+ * @return Class name of the custom data type or null if the classifier does not represent a
+ * custom data type that is not already handled by Hibernate.
+ */
+ private String getCustomDataType(EDataType eDataType) {
+ final String typeClassName = eDataType.getInstanceClassName();
+ if (EcoreDataTypes.INSTANCE.isSimpleType(eDataType, getPersistenceOptions())) {
+ return null;
+ } else if (EcoreDataTypes.INSTANCE.isEnum(eDataType)) {
+ return null;
+ } else if (eDataType.getInstanceClass() == Object.class) {
+ return null;
+// } else if (typeClassName != null && TypeFactory.basic(typeClassName) != null) {
+// // If Hibernate natively handles the type then don't bother creating
+// // a typedef.
+// return null;
+ }
+ if (typeClassName != null) {
+ final Class<?> instanceClass = eDataType.getInstanceClass();
+ if (instanceClass != null && instanceClass.isArray()) {
+ final Class<?> compClass = instanceClass.getComponentType();
+ if (EcoreDataTypes.INSTANCE.isPrimitive(compClass)) {
+ return null;
+ }
+ // get rid of the [] at the end
+// final String primType = typeClassName.substring(0, typeClassName.length() - 2);
+ // check if hb supports it
+ // no dots is primitve
+// if (TypeFactory.basic(primType) != null) {
+// return null; // if so let hb do it
+// }
+ }
+ }
+
+ return typeClassName;
+ }
+
+ /** Return the default user type */
+ public String getDefaultUserType() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.DefaultToStringUserType";
+ }
+
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEFeatureAnnotator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEFeatureAnnotator.java
new file mode 100755
index 000000000..98fc47830
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbEFeatureAnnotator.java
@@ -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
+ * </copyright>
+ *
+ * $Id: HbEFeatureAnnotator.java,v 1.3 2008/05/27 07:42:29 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.eclipse.emf.teneo.annotations.mapper.EFeatureAnnotator;
+
+/**
+ * Overrides the mapVolitileFeature (is true for hibernate).
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.3 $
+ */
+
+public class HbEFeatureAnnotator extends EFeatureAnnotator {
+
+ /** Map the feature if it is volatile, default is false */
+ @Override
+ protected boolean mapVolitatileFeature() {
+ return true;
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbManyToOneReferenceAnnotator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbManyToOneReferenceAnnotator.java
new file mode 100755
index 000000000..0d42da910
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbManyToOneReferenceAnnotator.java
@@ -0,0 +1,72 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbManyToOneReferenceAnnotator.java,v 1.5 2008/09/21 19:26:04 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.annotations.mapper.ManyToOneReferenceAnnotator;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pannotation.FetchType;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass;
+
+/**
+ * Annotates an ereference.
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.5 $
+ */
+
+public class HbManyToOneReferenceAnnotator extends ManyToOneReferenceAnnotator {
+
+ // The logger
+ protected static final Log log = LogFactory.getLog(HbManyToOneReferenceAnnotator.class);
+
+ private boolean optionSetProxy = false;
+
+ /** Annotate it */
+ @Override
+ public void annotate(PAnnotatedEReference aReference) {
+ if (getPersistenceOptions().isAddIndexForForeignKey()) {
+ HbAnnotationUtil.setIndex(aReference, this);
+ }
+ super.annotate(aReference);
+ }
+
+ @Override
+ protected FetchType getFetch(PAnnotatedEClass aClass) {
+ if (aClass == null) {
+ // happens when any type
+ return FetchType.EAGER;
+ }
+ if (optionSetProxy) {
+ return FetchType.LAZY;
+ }
+ if (((HbAnnotatedEClass) aClass).getHbProxy() != null) {
+ return FetchType.LAZY;
+ }
+ return super.getFetch(aClass);
+ }
+
+ @Override
+ public void setPersistenceOptions(PersistenceOptions persistenceOptions) {
+ super.setPersistenceOptions(persistenceOptions);
+ optionSetProxy = persistenceOptions.isSetProxy();
+ }
+
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbMappingSchemaGenerator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbMappingSchemaGenerator.java
new file mode 100755
index 000000000..4a1b47404
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbMappingSchemaGenerator.java
@@ -0,0 +1,91 @@
+/**
+ * <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:
+ * Douglas Bitting
+ * </copyright>
+ *
+ * $Id: HbMappingSchemaGenerator.java,v 1.3 2008/03/30 10:01:15 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import java.io.FileWriter;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.teneo.annotations.StoreAnnotationsException;
+import org.eclipse.emf.teneo.annotations.pannotation.PannotationPackage;
+import org.eclipse.emf.teneo.annotations.xml.PersistenceMappingSchemaGenerator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage;
+
+/**
+ * Generates the xsd for the hibernate mapping.
+ */
+public class HbMappingSchemaGenerator extends PersistenceMappingSchemaGenerator {
+
+ /** The main method */
+ public static void main(String[] args) {
+ final HbMappingSchemaGenerator pmsg = new HbMappingSchemaGenerator();
+ pmsg.setAnnotationEPackages(new EPackage[] { HbannotationPackage.eINSTANCE, PannotationPackage.eINSTANCE });
+ pmsg.setModelEPackage(HbmodelPackage.eINSTANCE);
+ pmsg.setNameSpace("http://www.eclipse.org/emft/teneo");
+ try {
+ final FileWriter fw = new FileWriter("/home/mtaal/mytmp/persistence-mapping-hibernate.xsd");
+ fw.write(pmsg.generate());
+ fw.close();
+ } catch (Exception e) {
+ throw new StoreAnnotationsException("Exception while generating mapping.xsd", e);
+ }
+ }
+
+ /** Return the PAnnotatedEClass */
+ @Override
+ protected EClass getPAnnotatedEPackage() {
+ return (EClass) getModelEPackage().getEClassifier("HbAnnotatedEPackage");
+ }
+
+ /** Return the PAnnotatedEClass */
+ @Override
+ protected EClass getPAnnotatedEClass() {
+ return (EClass) getModelEPackage().getEClassifier("HbAnnotatedEClass");
+ }
+
+ /** Return the PAnnotatedEReference */
+ @Override
+ protected EClass getPAnnotatedEReference() {
+ return (EClass) getModelEPackage().getEClassifier("HbAnnotatedEReference");
+ }
+
+ /** Return the PAnnotatedEAttribute */
+ @Override
+ protected EClass getPAnnotatedEAttribute() {
+ return (EClass) getModelEPackage().getEClassifier("HbAnnotatedEAttribute");
+ }
+
+ /** Return the PAnnotatedEDataType */
+ @Override
+ protected EClass getPAnnotatedEDataType() {
+ return (EClass) getModelEPackage().getEClassifier("HbAnnotatedEDataType");
+ }
+
+ /** get rid of the hb- prefix */
+ @Override
+ protected String convertToXmlName(String name) {
+ String result = super.convertToXmlName(name);
+ if (result.compareTo("hb-column") == 0) {
+ return "columns"; // prevents a specific nameclash
+ }
+ if (result.startsWith("hb-") && result.compareTo("hb-map-key") != 0) {
+ return result.substring(3);
+ }
+ return result;
+ }
+} \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToManyAttributeAnnotator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToManyAttributeAnnotator.java
new file mode 100755
index 000000000..09a559a67
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToManyAttributeAnnotator.java
@@ -0,0 +1,99 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbOneToManyAttributeAnnotator.java,v 1.5 2008/05/27 07:42:29 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.teneo.annotations.mapper.OneToManyAttributeAnnotator;
+import org.eclipse.emf.teneo.annotations.mapper.SingleAttributeAnnotator;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType;
+
+/**
+ * Annotates a one-to-many attribute (an eattribute with ismany=true), an example is a list of
+ * primitives (list of ints).
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.5 $
+ */
+
+public class HbOneToManyAttributeAnnotator extends OneToManyAttributeAnnotator {
+
+ // The logger
+ protected static final Log log = LogFactory.getLog(HbOneToManyAttributeAnnotator.class);
+
+ protected SingleAttributeAnnotator singleAttributeAnnotator;
+
+ @Override
+ protected void initialize() {
+ super.initialize();
+ singleAttributeAnnotator = createAnnotator(SingleAttributeAnnotator.class);
+ }
+
+ /** Process the features of the eclass */
+ @Override
+ public void annotate(PAnnotatedEAttribute aAttribute) {
+ boolean isCollectionOfElements =
+ (aAttribute instanceof HbAnnotatedEAttribute && null != ((HbAnnotatedEAttribute) aAttribute)
+ .getHbCollectionOfElements());
+
+ final HbAnnotatedEAttribute hea = (HbAnnotatedEAttribute) aAttribute;
+ final HbAnnotatedEDataType hed =
+ (HbAnnotatedEDataType) aAttribute.getPaModel().getPAnnotated(
+ aAttribute.getModelEAttribute().getEAttributeType());
+ if (isCollectionOfElements) {
+ CollectionOfElements coe = ((HbAnnotatedEAttribute) aAttribute).getHbCollectionOfElements();
+ if (coe.getTargetElement() == null) {
+ coe.setTargetElement(getTargetTypeName(aAttribute));
+ }
+ } else if (hea.getHbType() != null && hea.getOneToMany() == null && !aAttribute.getModelEAttribute().isMany()) {
+ // assume this to be a single attribute, we can get here when
+ // the instance is an array or list in that case the user type is
+ // assumed
+ // to be able to handle the complete list/collection
+ singleAttributeAnnotator.annotate(aAttribute);
+ } else if (hed != null && hed.getHbTypeDef() != null && hea.getOneToMany() == null &&
+ !aAttribute.getModelEAttribute().isMany()) {
+ // assume this to be a single attribute, we can get here when
+ // the instance is an array or list in that case the user type is
+ // assumed
+ // to be able to handle the complete list/collection
+ singleAttributeAnnotator.annotate(aAttribute);
+ } else {
+ super.annotate(aAttribute);
+ }
+ }
+
+// MT: is now recomputed in the mapping step
+// /** Returns the type name of a many attribute */
+// @Override
+// protected String getTargetTypeName(PAnnotatedEAttribute aAttribute) {
+// final HbAnnotatedEDataType ped =
+// (HbAnnotatedEDataType) aAttribute.getPaModel().getPAnnotated(
+// aAttribute.getModelEAttribute().getEAttributeType());
+// if (ped != null && ped.getHbTypeDef() != null) {
+// return ped.getHbTypeDef().getName();
+// }
+// if (((HbAnnotatedEAttribute) aAttribute).getHbType() != null) {
+// return ((HbAnnotatedEAttribute) aAttribute).getHbType().getType();
+// }
+// return EcoreDataTypes.INSTANCE.getTargetTypeName(aAttribute);
+// }
+
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToManyReferenceAnnotator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToManyReferenceAnnotator.java
new file mode 100755
index 000000000..addd021e2
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToManyReferenceAnnotator.java
@@ -0,0 +1,167 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbOneToManyReferenceAnnotator.java,v 1.6 2011/02/21 04:45:23 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.annotations.mapper.OneToManyReferenceAnnotator;
+import org.eclipse.emf.teneo.annotations.mapper.StoreMappingException;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pannotation.CascadeType;
+import org.eclipse.emf.teneo.annotations.pannotation.OneToMany;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationFactory;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+
+/**
+ * Annotates an ereference.
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.6 $
+ */
+
+public class HbOneToManyReferenceAnnotator extends OneToManyReferenceAnnotator {
+
+ // The logger
+ protected static final Log log = LogFactory
+ .getLog(HbOneToManyReferenceAnnotator.class);
+ private String defaultCacheStrategy = CacheConcurrencyStrategy.NONE
+ .getName();
+
+ /** Annotate it */
+ @Override
+ public void annotate(PAnnotatedEReference aReference) {
+ boolean isCollectionOfElements = (aReference instanceof HbAnnotatedEReference && null != ((HbAnnotatedEReference) aReference)
+ .getHbCollectionOfElements());
+
+ HbAnnotatedEReference hbReference = (HbAnnotatedEReference) aReference;
+
+ final OneToMany otm = aReference.getOneToMany();
+ final boolean doHbCascade = otm == null || otm.getCascade().isEmpty();
+
+ // add an idbag annotation
+ if (getPersistenceOptions().alwaysMapListAsIdBag()
+ && aReference.getModelEReference().isMany()
+ && aReference.getOneToMany() == null
+ && !aReference.getModelEReference().isContainment()) {
+ hbReference.setHbIdBag(HbannotationFactory.eINSTANCE.createIdBag());
+ // add a join table
+ }
+
+ if (getPersistenceOptions().isAddIndexForForeignKey()) {
+ HbAnnotationUtil.setIndex(aReference, this);
+ }
+
+ if (!isCollectionOfElements) {
+ super.annotate(aReference);
+ }
+
+ // now handle the case of defaultCacheStrategy which is different than
+ // none
+ boolean hasCache = hbReference.getHbCache() != null;
+ if (!hasCache
+ && defaultCacheStrategy
+ .compareToIgnoreCase(CacheConcurrencyStrategy.NONE
+ .getName()) != 0) {
+ final CacheConcurrencyStrategy ccs = CacheConcurrencyStrategy
+ .getByName(defaultCacheStrategy);
+ if (ccs == null) {
+ throw new StoreMappingException(
+ "The default cache strategy: "
+ + defaultCacheStrategy
+ + " is not one of the allowed values (uppercase) "
+ + "as defined in the JPA Hibernate Annotation Extensions.");
+ }
+
+ log.debug("Setting cache strategy " + defaultCacheStrategy + " on "
+ + aReference.getModelEReference().getName());
+ final Cache cache = HbannotationFactory.eINSTANCE.createCache();
+ cache.setUsage(ccs);
+ hbReference.setHbCache(cache);
+ }
+
+ if (doHbCascade && hbReference.getHbCascade() == null) {
+ String option = "";
+ if (aReference.getModelEReference().isContainment()) {
+ if (getPersistenceOptions().isSetCascadeAllOnContainment()) {
+ option = HbCascadeType.ALL.getName();
+ } else {
+ option = getPersistenceOptions()
+ .getCascadePolicyForContainment();
+ }
+ // translate a previous default to LOCK, SAVE_UPDAT
+ if (getPersistenceOptions().isSetCascadePersistOnContainment()) {
+ option += HbCascadeType.LOCK.getName() + ", "
+ + HbCascadeType.SAVE_UPDATE.getName();
+ }
+ } else if (getPersistenceOptions()
+ .isSetCascadePolicyForNonContainment()) {
+ option = getPersistenceOptions()
+ .getCascadePolicyForNonContainment();
+ // translate a previous default to LOCK, SAVE_UPDAT
+ if (getPersistenceOptions()
+ .isSetCascadePersistOnNonContainment()) {
+ option += HbCascadeType.LOCK.getName() + ", "
+ + HbCascadeType.SAVE_UPDATE.getName();
+ }
+ } else {
+ option = HbCascadeType.PERSIST.getName() + ", "
+ + HbCascadeType.MERGE.getName() + ", "
+ + HbCascadeType.REFRESH.getName() + ", "
+ + HbCascadeType.LOCK.getName() + ", "
+ + HbCascadeType.SAVE_UPDATE.getName();
+ }
+
+ final Cascade hbCascade = HbannotationFactory.eINSTANCE
+ .createCascade();
+ for (HbCascadeType hbCascadeValue : HbCascadeType.values()) {
+ if (option.contains(hbCascadeValue.getName())) {
+ hbCascade.getValue().add(hbCascadeValue);
+ }
+ }
+ if (hbCascade.getValue().size() > 0) {
+ hbReference.setHbCascade(hbCascade);
+ }
+ }
+ }
+
+ protected void setCascade(List<CascadeType> cascadeList,
+ boolean isContainment) {
+ if (!cascadeList.isEmpty()) {
+ return;
+ }
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.teneo.annotations.mapper.AbstractAnnotator#
+ * setPersistenceOptions(org.eclipse.emf.teneo.PersistenceOptions)
+ */
+ @Override
+ public void setPersistenceOptions(PersistenceOptions persistenceOptions) {
+ super.setPersistenceOptions(persistenceOptions);
+ defaultCacheStrategy = persistenceOptions.getDefaultCacheStrategy();
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToOneReferenceAnnotator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToOneReferenceAnnotator.java
new file mode 100755
index 000000000..5a797ce06
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbOneToOneReferenceAnnotator.java
@@ -0,0 +1,72 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbOneToOneReferenceAnnotator.java,v 1.5 2008/09/21 19:26:04 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.annotations.mapper.OneToOneReferenceAnnotator;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pannotation.FetchType;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass;
+
+/**
+ * Annotates an ereference.
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.5 $
+ */
+
+public class HbOneToOneReferenceAnnotator extends OneToOneReferenceAnnotator {
+
+ // The logger
+ protected static final Log log = LogFactory.getLog(HbOneToOneReferenceAnnotator.class);
+
+ private boolean optionSetProxy = false;
+
+ /** Annotate it */
+ @Override
+ public void annotate(PAnnotatedEReference aReference) {
+ if (getPersistenceOptions().isAddIndexForForeignKey()) {
+ HbAnnotationUtil.setIndex(aReference, this);
+ }
+ super.annotate(aReference);
+ }
+
+ @Override
+ protected FetchType getFetch(PAnnotatedEClass aClass) {
+ if (aClass == null) {
+ // happens when any type
+ return FetchType.EAGER;
+ }
+ if (optionSetProxy) {
+ return FetchType.LAZY;
+ }
+ if (((HbAnnotatedEClass) aClass).getHbProxy() != null) {
+ return FetchType.LAZY;
+ }
+ return super.getFetch(aClass);
+ }
+
+ @Override
+ public void setPersistenceOptions(PersistenceOptions persistenceOptions) {
+ super.setPersistenceOptions(persistenceOptions);
+ optionSetProxy = persistenceOptions.isSetProxy();
+ }
+
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbSingleAttributeAnnotator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbSingleAttributeAnnotator.java
new file mode 100755
index 000000000..18086a4ff
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbSingleAttributeAnnotator.java
@@ -0,0 +1,40 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbSingleAttributeAnnotator.java,v 1.1 2008/07/12 13:10:34 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.eclipse.emf.teneo.annotations.mapper.SingleAttributeAnnotator;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute;
+
+/**
+ * Handles the hibernate formula (don't add columns if there is a formula annotation).
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.1 $
+ */
+
+public class HbSingleAttributeAnnotator extends SingleAttributeAnnotator {
+ @Override
+ protected void addColumnConstraints(PAnnotatedEAttribute aAttribute) {
+ final HbAnnotatedEAttribute hbAttr = (HbAnnotatedEAttribute) aAttribute;
+ if (hbAttr.getFormula() != null) {
+ return;
+ }
+ super.addColumnConstraints(aAttribute);
+ }
+
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbUnidirectionalManyToManyAnnotator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbUnidirectionalManyToManyAnnotator.java
new file mode 100755
index 000000000..07e5d853e
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbUnidirectionalManyToManyAnnotator.java
@@ -0,0 +1,49 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbUnidirectionalManyToManyAnnotator.java,v 1.3 2008/05/27 07:42:29 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.teneo.annotations.mapper.UnidirectionalManyToManyAnnotator;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+
+/**
+ * Annotates a one-to-many attribute (an eattribute with ismany=true), an example is a list of
+ * primitives (list of ints).
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.3 $
+ */
+
+public class HbUnidirectionalManyToManyAnnotator extends UnidirectionalManyToManyAnnotator {
+
+ // The logger
+ protected static final Log log = LogFactory.getLog(HbUnidirectionalManyToManyAnnotator.class);
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.teneo.annotations.mapper.UnidirectionalManyToManyAnnotator#annotate(org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference)
+ */
+ @Override
+ public void annotate(PAnnotatedEReference reference) {
+ if (getPersistenceOptions().isAddIndexForForeignKey()) {
+ HbAnnotationUtil.setIndex(reference, this);
+ }
+ annotate(reference);
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbXmlPersistenceMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbXmlPersistenceMapper.java
new file mode 100755
index 000000000..e711c056e
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbXmlPersistenceMapper.java
@@ -0,0 +1,29 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbXmlPersistenceMapper.java,v 1.2 2008/02/28 07:07:43 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.annotations;
+
+import org.eclipse.emf.teneo.annotations.xml.XmlPersistenceMapper;
+
+/**
+ * Overrides the xml persistence mapper for providing an additional prefix.
+ */
+public class HbXmlPersistenceMapper extends XmlPersistenceMapper {
+ /** Return the hb prefix */
+ @Override
+ protected String getPrefix() {
+ return "hb";
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/persistence-mapping.xsd b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/persistence-mapping.xsd
new file mode 100755
index 000000000..1695c2987
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/persistence-mapping.xsd
@@ -0,0 +1,776 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema targetNamespace="http://www.eclipse.org/emft/teneo" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.eclipse.org/emft/teneo">
+ <xsd:element name="persistence-mapping" type="PersistenceMapping"/>
+ <xsd:complexType name="PersistenceMapping">
+ <xsd:sequence minOccurs="1" maxOccurs="unbounded">
+ <xsd:element name="epackage" type="EPackage"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="EPackage">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="filter-def" type="FilterDef" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="any-meta-def" type="AnyMetaDef" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="generic-generator" type="GenericGenerator" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">hbGenericGenerators</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="named-query" type="NamedQuery" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="type-def" type="TypeDef" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="sequence-generator" type="SequenceGenerator" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">sequenceGenerators</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="sequence-style-generator" type="SequenceStyleGenerator" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">sequenceStyleGenerators</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="table-generator" type="TableGenerator" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">tableGenerators</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="transient" type="Transient" minOccurs="0"/>
+ <xsd:element name="eclass" type="EClass"/>
+ <xsd:element name="edatatype" type="EDataType"/>
+ </xsd:choice>
+ <xsd:attribute name="namespace-uri" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="EClass">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="filter" type="Filter" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="filter-def" type="FilterDef" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="association-override" type="AssociationOverride" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">associationOverrides</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="attribute-override" type="AttributeOverride" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">attributeOverrides</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="batch-size" type="xsd:int" minOccurs="0"/>
+ <xsd:element name="discriminator-column" type="DiscriminatorColumn" minOccurs="0"/>
+ <xsd:element name="discriminator-formula" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="discriminator-value" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="eav-mapping" type="EAVMapping" minOccurs="0"/>
+ <xsd:element name="embeddable" type="Embeddable" minOccurs="0"/>
+ <xsd:element name="entity" type="Entity" minOccurs="0"/>
+ <xsd:element name="force-discriminator" type="ForceDiscriminator" minOccurs="0"/>
+ <xsd:element name="cache" type="Cache" minOccurs="0"/>
+ <xsd:element name="named-query" type="NamedQuery" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="on-delete" type="OnDeleteAction" minOccurs="0"/>
+ <xsd:element name="proxy" type="Proxy" minOccurs="0"/>
+ <xsd:element name="where" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="id-class" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="immutable" type="Immutable" minOccurs="0"/>
+ <xsd:element name="inheritance" type="InheritanceType" minOccurs="0"/>
+ <xsd:element name="mapped-superclass" type="MappedSuperclass" minOccurs="0"/>
+ <xsd:element name="no-e-a-v-mapping" type="NoEAVMapping" minOccurs="0"/>
+ <xsd:element name="primary-key-join-column" type="PrimaryKeyJoinColumn" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">primaryKeyJoinColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="secondary-table" type="SecondaryTable" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">secondaryTables</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="sequence-generator" type="SequenceGenerator" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">sequenceGenerators</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="table" type="Table" minOccurs="0"/>
+ <xsd:element name="table-generator" type="TableGenerator" minOccurs="0"/>
+ <xsd:element name="transient" type="Transient" minOccurs="0"/>
+ <xsd:element name="eattribute" type="EAttribute"/>
+ <xsd:element name="ereference" type="EReference"/>
+ <xsd:element name="property" type="Property"/>
+ <xsd:element name="edatatype" type="EDataType"/>
+ </xsd:choice>
+ <xsd:attribute name="name" type="xsd:token" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="EAttribute">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="filter" type="Filter" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="any" type="Any" minOccurs="0"/>
+ <xsd:element name="any-meta-def" type="AnyMetaDef" minOccurs="0"/>
+ <xsd:element name="attribute-override" type="AttributeOverride" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">attributeOverrides</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="basic" type="Basic" minOccurs="0"/>
+ <xsd:element name="column" type="Column" minOccurs="0"/>
+ <xsd:element name="enumerated" type="EnumType" minOccurs="0"/>
+ <xsd:element name="foreign-key" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="formula" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="generated" type="GenerationTime" minOccurs="0"/>
+ <xsd:element name="generated-value" type="GeneratedValue" minOccurs="0"/>
+ <xsd:element name="cascade" type="HbCascadeType" minOccurs="0"/>
+ <xsd:element name="collection-of-elements" type="CollectionOfElements" minOccurs="0"/>
+ <xsd:element name="columns" type="Column" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">hbColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="id-bag" type="IdBag" minOccurs="0"/>
+ <xsd:element name="index" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="hb-map-key" type="Column" minOccurs="0">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">hbMapKey</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="type" type="Type" minOccurs="0"/>
+ <xsd:element name="where" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="id" type="Id" minOccurs="0"/>
+ <xsd:element name="join-column" type="JoinColumn" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">joinColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="join-table" type="JoinTable" minOccurs="0"/>
+ <xsd:element name="list-index-column" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="lob" type="Lob" minOccurs="0"/>
+ <xsd:element name="natural-id" type="xsd:boolean" minOccurs="0"/>
+ <xsd:element name="one-to-many" type="OneToMany" minOccurs="0"/>
+ <xsd:element name="sequence-generator" type="SequenceGenerator" minOccurs="0"/>
+ <xsd:element name="table-generator" type="TableGenerator" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">tableGenerators</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="temporal" type="TemporalType" minOccurs="0"/>
+ <xsd:element name="transient" type="Transient" minOccurs="0"/>
+ <xsd:element name="version" type="Version" minOccurs="0"/>
+ </xsd:choice>
+ <xsd:attribute name="name" type="xsd:token" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="EReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="filter" type="Filter" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="any" type="Any" minOccurs="0"/>
+ <xsd:element name="any-meta-def" type="AnyMetaDef" minOccurs="0"/>
+ <xsd:element name="association-override" type="AssociationOverride" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">associationOverrides</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="attribute-override" type="AttributeOverride" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">attributeOverrides</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="batch-size" type="xsd:int" minOccurs="0"/>
+ <xsd:element name="column" type="Column" minOccurs="0"/>
+ <xsd:element name="embedded" type="Embedded" minOccurs="0"/>
+ <xsd:element name="embedded-id" type="EmbeddedId" minOccurs="0"/>
+ <xsd:element name="external" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="foreign-key" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="formula" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="cache" type="Cache" minOccurs="0"/>
+ <xsd:element name="cascade" type="HbCascadeType" minOccurs="0"/>
+ <xsd:element name="collection-of-elements" type="CollectionOfElements" minOccurs="0"/>
+ <xsd:element name="columns" type="Column" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">hbColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="fetch" type="HbFetchType" minOccurs="0"/>
+ <xsd:element name="id-bag" type="IdBag" minOccurs="0"/>
+ <xsd:element name="index" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="hb-map-key" type="Column" minOccurs="0">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">hbMapKey</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="on-delete" type="OnDeleteAction" minOccurs="0"/>
+ <xsd:element name="type" type="Type" minOccurs="0"/>
+ <xsd:element name="where" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="immutable" type="Immutable" minOccurs="0"/>
+ <xsd:element name="join-column" type="JoinColumn" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">joinColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="join-table" type="JoinTable" minOccurs="0"/>
+ <xsd:element name="list-index-column" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="many-to-many" type="ManyToMany" minOccurs="0"/>
+ <xsd:element name="many-to-one" type="ManyToOne" minOccurs="0"/>
+ <xsd:element name="map-key" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="natural-id" type="xsd:boolean" minOccurs="0"/>
+ <xsd:element name="not-found" type="NotFoundAction" minOccurs="0"/>
+ <xsd:element name="one-to-many" type="OneToMany" minOccurs="0"/>
+ <xsd:element name="one-to-one" type="OneToOne" minOccurs="0"/>
+ <xsd:element name="order-by" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="primary-key-join-column" type="PrimaryKeyJoinColumn" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">primaryKeyJoinColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="sequence-generator" type="SequenceGenerator" minOccurs="0"/>
+ <xsd:element name="table-generator" type="TableGenerator" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">tableGenerators</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="transient" type="Transient" minOccurs="0"/>
+ </xsd:choice>
+ <xsd:attribute name="name" type="xsd:token" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="Property">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="filter" type="Filter" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="any" type="Any" minOccurs="0"/>
+ <xsd:element name="any-meta-def" type="AnyMetaDef" minOccurs="0"/>
+ <xsd:element name="association-override" type="AssociationOverride" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">associationOverrides</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="attribute-override" type="AttributeOverride" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">attributeOverrides</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="basic" type="Basic" minOccurs="0"/>
+ <xsd:element name="batch-size" type="xsd:int" minOccurs="0"/>
+ <xsd:element name="column" type="Column" minOccurs="0"/>
+ <xsd:element name="embedded" type="Embedded" minOccurs="0"/>
+ <xsd:element name="embedded-id" type="EmbeddedId" minOccurs="0"/>
+ <xsd:element name="enumerated" type="EnumType" minOccurs="0"/>
+ <xsd:element name="external" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="foreign-key" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="formula" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="generated" type="GenerationTime" minOccurs="0"/>
+ <xsd:element name="generated-value" type="GeneratedValue" minOccurs="0"/>
+ <xsd:element name="cache" type="Cache" minOccurs="0"/>
+ <xsd:element name="cascade" type="HbCascadeType" minOccurs="0"/>
+ <xsd:element name="collection-of-elements" type="CollectionOfElements" minOccurs="0"/>
+ <xsd:element name="columns" type="Column" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">hbColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="fetch" type="HbFetchType" minOccurs="0"/>
+ <xsd:element name="id-bag" type="IdBag" minOccurs="0"/>
+ <xsd:element name="index" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="hb-map-key" type="Column" minOccurs="0">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">hbMapKey</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="on-delete" type="OnDeleteAction" minOccurs="0"/>
+ <xsd:element name="type" type="Type" minOccurs="0"/>
+ <xsd:element name="where" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="id" type="Id" minOccurs="0"/>
+ <xsd:element name="immutable" type="Immutable" minOccurs="0"/>
+ <xsd:element name="join-column" type="JoinColumn" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">joinColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="join-table" type="JoinTable" minOccurs="0"/>
+ <xsd:element name="list-index-column" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="lob" type="Lob" minOccurs="0"/>
+ <xsd:element name="many-to-many" type="ManyToMany" minOccurs="0"/>
+ <xsd:element name="many-to-one" type="ManyToOne" minOccurs="0"/>
+ <xsd:element name="map-key" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="natural-id" type="xsd:boolean" minOccurs="0"/>
+ <xsd:element name="not-found" type="NotFoundAction" minOccurs="0"/>
+ <xsd:element name="one-to-many" type="OneToMany" minOccurs="0"/>
+ <xsd:element name="one-to-one" type="OneToOne" minOccurs="0"/>
+ <xsd:element name="order-by" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="primary-key-join-column" type="PrimaryKeyJoinColumn" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">primaryKeyJoinColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="sequence-generator" type="SequenceGenerator" minOccurs="0"/>
+ <xsd:element name="table-generator" type="TableGenerator" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">tableGenerators</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="temporal" type="TemporalType" minOccurs="0"/>
+ <xsd:element name="transient" type="Transient" minOccurs="0"/>
+ <xsd:element name="version" type="Version" minOccurs="0"/>
+ </xsd:choice>
+ <xsd:attribute name="name" type="xsd:token" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="EDataType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="basic" type="Basic" minOccurs="0"/>
+ <xsd:element name="column" type="Column" minOccurs="0"/>
+ <xsd:element name="enumerated" type="EnumType" minOccurs="0"/>
+ <xsd:element name="generated-value" type="GeneratedValue" minOccurs="0"/>
+ <xsd:element name="columns" type="Column" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">hbColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="id-bag" type="IdBag" minOccurs="0"/>
+ <xsd:element name="index" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="type" type="Type" minOccurs="0"/>
+ <xsd:element name="type-def" type="TypeDef" minOccurs="0"/>
+ <xsd:element name="where" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="id" type="Id" minOccurs="0"/>
+ <xsd:element name="lob" type="Lob" minOccurs="0"/>
+ <xsd:element name="temporal" type="TemporalType" minOccurs="0"/>
+ <xsd:element name="transient" type="Transient" minOccurs="0"/>
+ <xsd:element name="version" type="Version" minOccurs="0"/>
+ </xsd:choice>
+ <xsd:attribute name="name" type="xsd:token" use="required"/>
+ </xsd:complexType>
+<xsd:complexType name="Any">
+ <xsd:sequence>
+ <xsd:element name="meta-column" type="Column" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="fetch" type="FetchType" use="optional"/>
+ <xsd:attribute name="meta-def" type="xsd:string" use="optional"/>
+ <xsd:attribute name="optional" type="xsd:boolean" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="AnyMetaDef">
+ <xsd:sequence>
+ <xsd:element name="meta-value" type="MetaValue" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">metaValues</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id-type" type="xsd:string" use="required"/>
+ <xsd:attribute name="meta-type" type="xsd:string" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="Cache">
+ <xsd:attribute name="include" type="xsd:string" use="optional"/>
+ <xsd:attribute name="region" type="xsd:string" use="optional"/>
+ <xsd:attribute name="usage" type="CacheConcurrencyStrategy" use="optional"/>
+</xsd:complexType>
+<xsd:simpleType name="CacheConcurrencyStrategy">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="NONE"/>
+ <xsd:enumeration value="READ_ONLY"/>
+ <xsd:enumeration value="NONSTRICT_READ_WRITE"/>
+ <xsd:enumeration value="READ_WRITE"/>
+ <xsd:enumeration value="TRANSACTIONAL"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="CollectionOfElements">
+ <xsd:attribute name="fetch" type="FetchType" use="optional"/>
+ <xsd:attribute name="target-element" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="Filter">
+ <xsd:attribute name="condition" type="xsd:string" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+</xsd:complexType>
+<xsd:complexType name="FilterDef">
+ <xsd:sequence>
+ <xsd:element name="parameter" type="ParamDef" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">parameters</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="default-condition" type="xsd:string" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+</xsd:complexType>
+<xsd:complexType name="ForceDiscriminator"/>
+<xsd:simpleType name="GenerationTime">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="NEVER"/>
+ <xsd:enumeration value="INSERT"/>
+ <xsd:enumeration value="ALWAYS"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="GenericGenerator">
+ <xsd:sequence>
+ <xsd:element name="parameter" type="Parameter" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">parameters</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="strategy" type="xsd:string" use="required"/>
+</xsd:complexType>
+<xsd:simpleType name="HbCascadeType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="ALL"/>
+ <xsd:enumeration value="PERSIST"/>
+ <xsd:enumeration value="MERGE"/>
+ <xsd:enumeration value="REMOVE"/>
+ <xsd:enumeration value="REFRESH"/>
+ <xsd:enumeration value="DELETE"/>
+ <xsd:enumeration value="SAVE_UPDATE"/>
+ <xsd:enumeration value="REPLICATE"/>
+ <xsd:enumeration value="DELETE_ORPHAN"/>
+ <xsd:enumeration value="LOCK"/>
+ <xsd:enumeration value="EVICT"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="HbEntity">
+ <xsd:attribute name="dynamic-insert" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="dynamic-update" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="mutable" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="optimistic-lock" type="OptimisticLockType" use="optional"/>
+ <xsd:attribute name="persister" type="xsd:string" use="optional"/>
+ <xsd:attribute name="polymorphism" type="PolymorphismType" use="optional"/>
+ <xsd:attribute name="select-before-update" type="xsd:boolean" use="optional"/>
+</xsd:complexType>
+<xsd:simpleType name="HbFetchType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="JOIN"/>
+ <xsd:enumeration value="SELECT"/>
+ <xsd:enumeration value="SUBSELECT"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="IdBag">
+ <xsd:attribute name="generator" type="xsd:string" use="optional"/>
+ <xsd:attribute name="table" type="xsd:string" use="optional"/>
+ <xsd:attribute name="type" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="Immutable"/>
+<xsd:complexType name="MapKeyManyToMany">
+ <xsd:sequence>
+ <xsd:element name="join-column" type="JoinColumn" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">joinColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="target-entity" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="MetaValue">
+ <xsd:attribute name="target-entity" type="xsd:string" use="optional"/>
+ <xsd:attribute name="value" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="NamedQuery">
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="query" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:simpleType name="NotFoundAction">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="EXCEPTION"/>
+ <xsd:enumeration value="IGNORE"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:simpleType name="OnDeleteAction">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="NO_ACTION"/>
+ <xsd:enumeration value="CASCADE"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:simpleType name="OptimisticLockType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="ALL"/>
+ <xsd:enumeration value="DIRTY"/>
+ <xsd:enumeration value="NONE"/>
+ <xsd:enumeration value="VERSION"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="ParamDef">
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+</xsd:complexType>
+<xsd:complexType name="Parameter">
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="value" type="xsd:string" use="required"/>
+</xsd:complexType>
+<xsd:simpleType name="PolymorphismType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="IMPLICIT"/>
+ <xsd:enumeration value="EXPLICIT"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="Proxy">
+ <xsd:attribute name="lazy" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="proxy-class" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="Type">
+ <xsd:sequence>
+ <xsd:element name="parameter" type="Parameter" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">parameters</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+</xsd:complexType>
+<xsd:complexType name="TypeDef">
+ <xsd:sequence>
+ <xsd:element name="parameter" type="Parameter" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">parameters</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="type-class" type="xsd:string" use="required"/>
+</xsd:complexType>
+<xsd:complexType name="AssociationOverride">
+ <xsd:sequence>
+ <xsd:element name="join-column" type="JoinColumn" minOccurs="1" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">joinColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+</xsd:complexType>
+<xsd:complexType name="AttributeOverride">
+ <xsd:sequence>
+ <xsd:element name="column" type="Column" minOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+</xsd:complexType>
+<xsd:complexType name="Basic">
+ <xsd:attribute name="fetch" type="FetchType" use="optional"/>
+ <xsd:attribute name="optional" type="xsd:boolean" use="optional"/>
+</xsd:complexType>
+<xsd:simpleType name="CascadeType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="ALL"/>
+ <xsd:enumeration value="PERSIST"/>
+ <xsd:enumeration value="MERGE"/>
+ <xsd:enumeration value="REMOVE"/>
+ <xsd:enumeration value="REFRESH"/>
+ <xsd:enumeration value="NONE"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="Column">
+ <xsd:attribute name="column-definition" type="xsd:string" use="optional"/>
+ <xsd:attribute name="index" type="xsd:string" use="optional"/>
+ <xsd:attribute name="insertable" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="length" type="xsd:int" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="nullable" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="precision" type="xsd:int" use="optional"/>
+ <xsd:attribute name="scale" type="xsd:int" use="optional"/>
+ <xsd:attribute name="table" type="xsd:string" use="optional"/>
+ <xsd:attribute name="unique" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="unique-key" type="xsd:string" use="optional"/>
+ <xsd:attribute name="updatable" type="xsd:boolean" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="DiscriminatorColumn">
+ <xsd:sequence>
+ <xsd:element name="column" type="Column" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="column-definition" type="xsd:string" use="optional"/>
+ <xsd:attribute name="discriminator-type" type="DiscriminatorType" use="optional"/>
+ <xsd:attribute name="length" type="xsd:int" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:simpleType name="DiscriminatorType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="STRING"/>
+ <xsd:enumeration value="CHAR"/>
+ <xsd:enumeration value="INTEGER"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="EAVMapping"/>
+<xsd:complexType name="Embeddable"/>
+<xsd:complexType name="Embedded"/>
+<xsd:complexType name="EmbeddedId"/>
+<xsd:complexType name="Entity">
+ <xsd:attribute name="extends" type="xsd:string" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:simpleType name="EnumType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="ORDINAL"/>
+ <xsd:enumeration value="STRING"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:simpleType name="FetchType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="LAZY"/>
+ <xsd:enumeration value="EAGER"/>
+ <xsd:enumeration value="EXTRA"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="GeneratedValue">
+ <xsd:attribute name="generator" type="xsd:string" use="optional"/>
+ <xsd:attribute name="strategy" type="GenerationType" use="optional"/>
+</xsd:complexType>
+<xsd:simpleType name="GenerationType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="TABLE"/>
+ <xsd:enumeration value="SEQUENCE"/>
+ <xsd:enumeration value="IDENTITY"/>
+ <xsd:enumeration value="AUTO"/>
+ <xsd:enumeration value="SEQUENCESTYLE"/>
+ <xsd:enumeration value="ASSIGNED"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="Id"/>
+<xsd:simpleType name="InheritanceType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="SINGLE_TABLE"/>
+ <xsd:enumeration value="TABLE_PER_CLASS"/>
+ <xsd:enumeration value="JOINED"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="JoinColumn">
+ <xsd:attribute name="column-definition" type="xsd:string" use="optional"/>
+ <xsd:attribute name="insertable" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="nullable" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="referenced-column-name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="table" type="xsd:string" use="optional"/>
+ <xsd:attribute name="unique" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="updatable" type="xsd:boolean" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="JoinTable">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="inverse-join-column" type="JoinColumn" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">inverseJoinColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="join-column" type="JoinColumn" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">joinColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="unique-constraint" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">uniqueConstraints</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:choice>
+ <xsd:attribute name="catalog" type="xsd:string" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="schema" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="Lob"/>
+<xsd:complexType name="ManyToMany">
+ <xsd:sequence>
+ <xsd:element name="cascade" type="CascadeType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="cascade" type="CascadeType" use="optional"/>
+ <xsd:attribute name="fetch" type="FetchType" use="optional"/>
+ <xsd:attribute name="indexed" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="mapped-by" type="xsd:string" use="optional"/>
+ <xsd:attribute name="target-entity" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="ManyToOne">
+ <xsd:sequence>
+ <xsd:element name="cascade" type="CascadeType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="cascade" type="CascadeType" use="optional"/>
+ <xsd:attribute name="fetch" type="FetchType" use="optional"/>
+ <xsd:attribute name="optional" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="target-entity" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="MappedSuperclass"/>
+<xsd:complexType name="NoEAVMapping"/>
+<xsd:complexType name="OneToMany">
+ <xsd:sequence>
+ <xsd:element name="cascade" type="CascadeType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="cascade" type="CascadeType" use="optional"/>
+ <xsd:attribute name="fetch" type="FetchType" use="optional"/>
+ <xsd:attribute name="indexed" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="mapped-by" type="xsd:string" use="optional"/>
+ <xsd:attribute name="target-entity" type="xsd:string" use="optional"/>
+ <xsd:attribute name="unique" type="xsd:boolean" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="OneToOne">
+ <xsd:sequence>
+ <xsd:element name="cascade" type="CascadeType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="cascade" type="CascadeType" use="optional"/>
+ <xsd:attribute name="fetch" type="FetchType" use="optional"/>
+ <xsd:attribute name="mapped-by" type="xsd:string" use="optional"/>
+ <xsd:attribute name="optional" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="target-entity" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:simpleType name="OptimizerType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="NONE"/>
+ <xsd:enumeration value="HILO"/>
+ <xsd:enumeration value="POOLED"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="PrimaryKeyJoinColumn">
+ <xsd:attribute name="column-definition" type="xsd:string" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="referenced-column-name" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="SecondaryTable">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="pk-join-column" type="PrimaryKeyJoinColumn" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">pkJoinColumns</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="unique-constraint" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">uniqueConstraints</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:choice>
+ <xsd:attribute name="catalog" type="xsd:string" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="schema" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="SequenceGenerator">
+ <xsd:attribute name="allocation-size" type="xsd:int" use="optional"/>
+ <xsd:attribute name="initial-value" type="xsd:int" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="sequence-name" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="SequenceStyleGenerator">
+ <xsd:attribute name="increment-size" type="xsd:int" use="optional"/>
+ <xsd:attribute name="initial-value" type="xsd:int" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="optimizer" type="OptimizerType" use="optional"/>
+ <xsd:attribute name="sequence-name" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="Table">
+ <xsd:sequence>
+ <xsd:element name="unique-constraint" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">uniqueConstraints</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="catalog" type="xsd:string" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="schema" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:complexType name="TableGenerator">
+ <xsd:sequence>
+ <xsd:element name="unique-constraint" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:appinfo source="teneo/internal/EStructuralFeatureName">uniqueConstraints</xsd:appinfo>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="allocation-size" type="xsd:int" use="optional"/>
+ <xsd:attribute name="catalog" type="xsd:string" use="optional"/>
+ <xsd:attribute name="initial-value" type="xsd:int" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="pk-column-name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="pk-column-value" type="xsd:string" use="optional"/>
+ <xsd:attribute name="schema" type="xsd:string" use="optional"/>
+ <xsd:attribute name="table" type="xsd:string" use="optional"/>
+ <xsd:attribute name="value-column-name" type="xsd:string" use="optional"/>
+</xsd:complexType>
+<xsd:simpleType name="TemporalType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="DATE"/>
+ <xsd:enumeration value="TIME"/>
+ <xsd:enumeration value="TIMESTAMP"/>
+ </xsd:restriction>
+</xsd:simpleType>
+<xsd:complexType name="Transient"/>
+<xsd:complexType name="Version"/>
+</xsd:schema> \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOEntityMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOEntityMapper.java
new file mode 100755
index 000000000..c89473053
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOEntityMapper.java
@@ -0,0 +1,70 @@
+/***************************************************************************
+ * Copyright (c) 2004 - 2008 Springsite B.V. 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
+ **************************************************************************/
+package org.eclipse.emf.teneo.hibernate.cdo;
+
+import java.util.List;
+
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.hibernate.mapper.EntityMapper;
+import org.eclipse.emf.teneo.simpledom.Element;
+
+/**
+ * Adds mapping for econtainer and eresource.
+ *
+ * @author <a href="mtaal@elver.org">Martin Taal</a>
+ */
+public class CDOEntityMapper extends EntityMapper {
+
+ private PAnnotatedEClass currentEntity = null;
+ private boolean addedExtraMappings = false;
+
+ @Override
+ public void processEntity(PAnnotatedEClass entity) {
+ // not the nicest solution
+ currentEntity = entity;
+ try {
+ addedExtraMappings = false;
+ super.processEntity(entity);
+ } finally {
+ currentEntity = null;
+ }
+ }
+
+ // add container and resource mappings
+ @Override
+ protected void processFeatures(List<PAnnotatedEStructuralFeature> features) {
+ super.processFeatures(features);
+
+ if (!addedExtraMappings && currentEntity.getPaSuperEntity() == null) {
+ final Element entityElement = getHbmContext().getCurrent();
+ final Element resourceElement = entityElement.addElement("property");
+ resourceElement.addAttribute("name", "resourceID");
+ resourceElement.addElement("column").addAttribute("name", "resID_Entity");
+ resourceElement.addElement("column").addAttribute("name", "resID_ID");
+ resourceElement.addElement("column").addAttribute("name", "resID_class");
+ resourceElement
+ .addAttribute("type", "org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOIDUserType");
+ final Element containerElement = entityElement.addElement("property");
+ containerElement.addAttribute("name", "containerID");
+ containerElement.addElement("column").addAttribute("name", "contID_Entity");
+ containerElement.addElement("column").addAttribute("name", "contID_ID");
+ containerElement.addElement("column").addAttribute("name", "contID_class");
+ containerElement.addAttribute("type",
+ "org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOIDUserType");
+ final Element containingFeatureElement = entityElement.addElement("property");
+ containingFeatureElement.addAttribute("name", "containingFeatureID");
+ containingFeatureElement.addAttribute("column", "contFeatureID");
+ containingFeatureElement.addAttribute("type", "int");
+ addedExtraMappings = true;
+ }
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOHelper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOHelper.java
new file mode 100755
index 000000000..c295db16b
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOHelper.java
@@ -0,0 +1,73 @@
+/***************************************************************************
+ * Copyright (c) 2004 - 2008 Springsite B.V. 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
+ **************************************************************************/
+package org.eclipse.emf.teneo.hibernate.cdo;
+
+import java.util.Properties;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.extension.ExtensionManager;
+import org.eclipse.emf.teneo.extension.ExtensionManagerFactory;
+import org.eclipse.emf.teneo.extension.ExtensionUtil;
+import org.eclipse.emf.teneo.hibernate.mapper.MappingContext;
+import org.eclipse.emf.teneo.hibernate.mapper.MappingUtil;
+
+/**
+ * Offers convenience methods for generating a cdo enabled hibernate mapping.
+ *
+ * @author <a href="mtaal@elver.org">Martin Taal</a>
+ * @deprecated use org.eclipse.emf.cdo.server.hibernate.teneo.CDOHelper
+ */
+public class CDOHelper {
+
+ public static final String GENERATE_FOR_CDO = "generate_for_cdo";
+
+ private static CDOHelper instance = new CDOHelper();
+
+ /**
+ * @return the instance
+ */
+ public static CDOHelper getInstance() {
+ return instance;
+ }
+
+ /**
+ * @param instance
+ * the instance to set
+ */
+ public static void setInstance(CDOHelper instance) {
+ CDOHelper.instance = instance;
+ }
+
+ public void registerCDOExtensions(ExtensionManager extensionManager) {
+ MappingUtil.registerHbExtensions(extensionManager);
+ extensionManager.registerExtension(ExtensionUtil.createExtension(MappingContext.class, CDOMappingContext.class,
+ false));
+ }
+
+ /**
+ * Separate utility method, generates a hibernate mapping for a set of epackages and options. The hibernate.hbm.xml
+ * is returned as a string. The mapping is not registered or used in any other way by Elver.
+ */
+ public String generateMapping(EPackage[] epackages, Properties props) {
+ return generateMapping(epackages, props, ExtensionManagerFactory.getInstance().create());
+ }
+
+ /**
+ * Separate utility method, generates a hibernate mapping for a set of epackages and options. The hibernate.hbm.xml
+ * is returned as a string. The mapping is not registered or used in any other way by Elver.
+ */
+ public String generateMapping(EPackage[] epackages, Properties props, ExtensionManager extensionManager) {
+ props.put(PersistenceOptions.ALSO_MAP_AS_CLASS, "false");
+ CDOHelper.getInstance().registerCDOExtensions(extensionManager);
+ return MappingUtil.generateMapping(epackages, props, extensionManager);
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOMappingContext.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOMappingContext.java
new file mode 100755
index 000000000..15959d834
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/cdo/CDOMappingContext.java
@@ -0,0 +1,108 @@
+/***************************************************************************
+ * Copyright (c) 2004 - 2008 Springsite B.V. 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
+ **************************************************************************/
+package org.eclipse.emf.teneo.hibernate.cdo;
+
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.extension.ExtensionManager;
+import org.eclipse.emf.teneo.hibernate.mapper.EntityMapper;
+import org.eclipse.emf.teneo.hibernate.mapper.MappingContext;
+import org.eclipse.emf.teneo.simpledom.Element;
+
+/**
+ * Mapping context for CDO. It provides cdo classes as propertyhandler etc.
+ *
+ * @author <a href="mtaal@elver.org">Martin Taal</a>
+ */
+public class CDOMappingContext extends MappingContext {
+
+ /** Add a tuplizer element or not */
+ @Override
+ public void addTuplizerElement(Element entityElement, PAnnotatedEClass aclass) {
+ Element tuplizerElement =
+ new Element("tuplizer").addAttribute("entity-mode", "dynamic-map").addAttribute("class",
+ "org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDORevisionTuplizer");
+ entityElement.add(0, tuplizerElement);
+ tuplizerElement =
+ new Element("tuplizer").addAttribute("entity-mode", "pojo").addAttribute("class",
+ "org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDORevisionTuplizer");
+ entityElement.add(0, tuplizerElement);
+ }
+
+ public void setExtensionManager(ExtensionManager extensionManager) {
+ super.setExtensionManager(extensionManager);
+ extensionManager.registerExtension(EntityMapper.class.getName(), CDOEntityMapper.class.getName());
+ }
+
+ @Override
+ public String getComponentPropertyHandlerName() {
+ return super.getComponentPropertyHandlerName();
+ }
+
+ @Override
+ public String getIdPropertyHandlerName() {
+ return null;
+ }
+
+ @Override
+ public String getPropertyHandlerName() {
+ return super.getPropertyHandlerName();
+ }
+
+ @Override
+ public String getVersionPropertyHandlerName() {
+ return null;
+ }
+
+ @Override
+ public String getEnumUserType() {
+ return "org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOENumStringType";
+ }
+
+ @Override
+ public String getEnumIntegerUserType() {
+ return "org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOENumIntegerType";
+ }
+
+ @Override
+ public String getSyntheticIdPropertyHandlerName() {
+ return "org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOSyntheticIdPropertyHandler";
+ }
+
+ @Override
+ public String getSyntheticVersionPropertyHandlerName() {
+ return "org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOSyntheticVersionPropertyHandler";
+ }
+
+ @Override
+ public String getDynamicEnumUserType() {
+ return "org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOENumStringType";
+ }
+
+ @Override
+ public String getDynamicEnumIntegerUserType() {
+ return "org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOENumIntegerType";
+ }
+
+ @Override
+ public String getDefaultUserType() {
+ return super.getDefaultUserType();
+ }
+
+ @Override
+ public String getXSDDateUserType() {
+ return super.getXSDDateUserType();
+ }
+
+ @Override
+ public String getXSDDateTimeUserType() {
+ return super.getXSDDateTimeUserType();
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Any.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Any.java
new file mode 100644
index 000000000..dd603eb20
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Any.java
@@ -0,0 +1,141 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Any.java,v 1.1 2009/06/27 09:19:10 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.annotations.pannotation.FetchType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Any</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#getMetaDef <em>Meta Def</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#getMetaColumn <em>Meta Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#getFetch <em>Fetch</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#isOptional <em>Optional</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getAny()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface Any extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Meta Def</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Meta Def</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Meta Def</em>' attribute.
+ * @see #setMetaDef(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getAny_MetaDef()
+ * @model
+ * @generated
+ */
+ String getMetaDef();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#getMetaDef <em>Meta Def</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Meta Def</em>' attribute.
+ * @see #getMetaDef()
+ * @generated
+ */
+ void setMetaDef(String value);
+
+ /**
+ * Returns the value of the '<em><b>Meta Column</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Meta 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>Meta Column</em>' containment reference.
+ * @see #setMetaColumn(Column)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getAny_MetaColumn()
+ * @model containment="true"
+ * @generated
+ */
+ Column getMetaColumn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#getMetaColumn <em>Meta Column</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Meta Column</em>' containment reference.
+ * @see #getMetaColumn()
+ * @generated
+ */
+ void setMetaColumn(Column value);
+
+ /**
+ * Returns the value of the '<em><b>Fetch</b></em>' attribute.
+ * The default value is <code>"EAGER"</code>.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.annotations.pannotation.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.annotations.pannotation.FetchType
+ * @see #setFetch(FetchType)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getAny_Fetch()
+ * @model default="EAGER"
+ * @generated
+ */
+ FetchType getFetch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#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.annotations.pannotation.FetchType
+ * @see #getFetch()
+ * @generated
+ */
+ void setFetch(FetchType value);
+
+ /**
+ * Returns the value of the '<em><b>Optional</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- 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 #setOptional(boolean)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getAny_Optional()
+ * @model default="true"
+ * @generated
+ */
+ boolean isOptional();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#isOptional <em>Optional</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Optional</em>' attribute.
+ * @see #isOptional()
+ * @generated
+ */
+ void setOptional(boolean value);
+
+} // Any
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/AnyMetaDef.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/AnyMetaDef.java
new file mode 100644
index 000000000..2b5f25ee3
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/AnyMetaDef.java
@@ -0,0 +1,127 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AnyMetaDef.java,v 1.2 2009/06/28 02:05:07 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Any Meta Def</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getMetaType <em>Meta Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getIdType <em>Id Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getMetaValues <em>Meta Values</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getAnyMetaDef()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature' 1='EClass' 2='EPackage'"
+ * @generated
+ */
+public interface AnyMetaDef extends HbAnnotation {
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getAnyMetaDef_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#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>Meta Type</b></em>' attribute.
+ * The default value is <code>"string"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Meta 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>Meta Type</em>' attribute.
+ * @see #setMetaType(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getAnyMetaDef_MetaType()
+ * @model default="string"
+ * @generated
+ */
+ String getMetaType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getMetaType <em>Meta Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Meta Type</em>' attribute.
+ * @see #getMetaType()
+ * @generated
+ */
+ void setMetaType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Id Type</b></em>' attribute.
+ * The default value is <code>"string"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id 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>Id Type</em>' attribute.
+ * @see #setIdType(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getAnyMetaDef_IdType()
+ * @model default="string" required="true"
+ * @generated
+ */
+ String getIdType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getIdType <em>Id Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id Type</em>' attribute.
+ * @see #getIdType()
+ * @generated
+ */
+ void setIdType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Meta Values</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Meta Values</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>Meta Values</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getAnyMetaDef_MetaValues()
+ * @model containment="true"
+ * @generated
+ */
+ EList<MetaValue> getMetaValues();
+
+} // AnyMetaDef
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/BatchSize.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/BatchSize.java
new file mode 100644
index 000000000..e9446c4e5
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/BatchSize.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: BatchSize.java,v 1.1 2009/03/15 15:08:01 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Batch Size</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize#getSize <em>Size</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getBatchSize()
+ * @model annotation="teneo/internal/Target 0='EClass' 1='EReference'"
+ * @generated
+ */
+public interface BatchSize extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size</em>' attribute.
+ * @see #setSize(int)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getBatchSize_Size()
+ * @model required="true"
+ * @generated
+ */
+ int getSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize#getSize <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size</em>' attribute.
+ * @see #getSize()
+ * @generated
+ */
+ void setSize(int value);
+
+} // BatchSize
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Cache.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Cache.java
new file mode 100755
index 000000000..c8049bed7
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Cache.java
@@ -0,0 +1,104 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Cache.java,v 1.5 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Cache</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getUsage <em>Usage</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getRegion <em>Region</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getInclude <em>Include</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getCache()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EReference' 1='EClass'"
+ * @generated
+ */
+public interface Cache extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Usage</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Usage</em>' attribute isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Usage</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy
+ * @see #setUsage(CacheConcurrencyStrategy)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getCache_Usage()
+ * @model
+ * @generated
+ */
+ CacheConcurrencyStrategy getUsage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getUsage <em>Usage</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Usage</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy
+ * @see #getUsage()
+ * @generated
+ */
+ void setUsage(CacheConcurrencyStrategy value);
+
+ /**
+ * Returns the value of the '<em><b>Region</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Region</em>' attribute isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Region</em>' attribute.
+ * @see #setRegion(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getCache_Region()
+ * @model
+ * @generated
+ */
+ String getRegion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getRegion <em>Region</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Region</em>' attribute.
+ * @see #getRegion()
+ * @generated
+ */
+ void setRegion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Include</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Include</em>' attribute isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Include</em>' attribute.
+ * @see #setInclude(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getCache_Include()
+ * @model
+ * @generated
+ */
+ String getInclude();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getInclude <em>Include</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Include</em>' attribute.
+ * @see #getInclude()
+ * @generated
+ */
+ void setInclude(String value);
+
+} // Cache
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/CacheConcurrencyStrategy.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/CacheConcurrencyStrategy.java
new file mode 100755
index 000000000..17919b12f
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/CacheConcurrencyStrategy.java
@@ -0,0 +1,274 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CacheConcurrencyStrategy.java,v 1.7 2010/02/04 11:03:37 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+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>Cache Concurrency Strategy</b></em>',
+ * and utility methods for working with them. <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getCacheConcurrencyStrategy()
+ * @model
+ * @generated
+ */
+public enum CacheConcurrencyStrategy implements Enumerator {
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(0, "NONE", "NONE"), /**
+ * The '<em><b>READ ONLY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #READ_ONLY_VALUE
+ * @generated
+ * @ordered
+ */
+ READ_ONLY(1, "READ_ONLY", "READ_ONLY"), /**
+ * The '<em><b>NONSTRICT READ WRITE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONSTRICT_READ_WRITE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONSTRICT_READ_WRITE(2, "NONSTRICT_READ_WRITE", "NONSTRICT_READ_WRITE"), /**
+ * The '<em><b>READ WRITE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #READ_WRITE_VALUE
+ * @generated
+ * @ordered
+ */
+ READ_WRITE(3, "READ_WRITE", "READ_WRITE"), /**
+ * The '<em><b>TRANSACTIONAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRANSACTIONAL_VALUE
+ * @generated
+ * @ordered
+ */
+ TRANSACTIONAL(4, "TRANSACTIONAL", "TRANSACTIONAL");
+
+/**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 0;
+/**
+ * The '<em><b>READ ONLY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>READ ONLY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #READ_ONLY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int READ_ONLY_VALUE = 1;
+/**
+ * The '<em><b>NONSTRICT READ WRITE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONSTRICT READ WRITE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONSTRICT_READ_WRITE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NONSTRICT_READ_WRITE_VALUE = 2;
+/**
+ * The '<em><b>READ WRITE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>READ WRITE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #READ_WRITE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int READ_WRITE_VALUE = 3;
+/**
+ * The '<em><b>TRANSACTIONAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRANSACTIONAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRANSACTIONAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRANSACTIONAL_VALUE = 4;
+/**
+ * An array of all the '<em><b>Cache Concurrency Strategy</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final CacheConcurrencyStrategy[] VALUES_ARRAY =
+ new CacheConcurrencyStrategy[] {
+ NONE,
+ READ_ONLY,
+ NONSTRICT_READ_WRITE,
+ READ_WRITE,
+ TRANSACTIONAL,
+ };
+/**
+ * A public read-only list of all the '<em><b>Cache Concurrency Strategy</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<CacheConcurrencyStrategy> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+/**
+ * Returns the '<em><b>Cache Concurrency Strategy</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CacheConcurrencyStrategy get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CacheConcurrencyStrategy result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+/**
+ * Returns the '<em><b>Cache Concurrency Strategy</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CacheConcurrencyStrategy getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CacheConcurrencyStrategy result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+/**
+ * Returns the '<em><b>Cache Concurrency Strategy</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CacheConcurrencyStrategy get(int value) {
+ switch (value) {
+ case NONE_VALUE: return NONE;
+ case READ_ONLY_VALUE: return READ_ONLY;
+ case NONSTRICT_READ_WRITE_VALUE: return NONSTRICT_READ_WRITE;
+ case READ_WRITE_VALUE: return READ_WRITE;
+ case TRANSACTIONAL_VALUE: return TRANSACTIONAL;
+ }
+ 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 CacheConcurrencyStrategy(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;
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Cascade.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Cascade.java
new file mode 100755
index 000000000..bc76acc02
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Cascade.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Cascade.java,v 1.8 2009/03/07 21:15:20 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Cascade</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cascade#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getCascade()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface Cascade extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute list. The list contents are of
+ * type {@link org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType}. The literals are
+ * from the enumeration {@link org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType}. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</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>Value</em>' attribute list.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getCascade_Value()
+ * @model
+ * @generated
+ */
+ EList<HbCascadeType> getValue();
+
+} // Cascade
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/CollectionOfElements.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/CollectionOfElements.java
new file mode 100755
index 000000000..a1cfb0676
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/CollectionOfElements.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CollectionOfElements.java,v 1.5 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.teneo.annotations.pannotation.FetchType;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Collection Of Elements</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements#getTargetElement <em>Target Element</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements#getFetch <em>Fetch</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getCollectionOfElements()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface CollectionOfElements extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Target Element</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target Element</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 Element</em>' attribute.
+ * @see #setTargetElement(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getCollectionOfElements_TargetElement()
+ * @model
+ * @generated
+ */
+ String getTargetElement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements#getTargetElement <em>Target Element</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target Element</em>' attribute.
+ * @see #getTargetElement()
+ * @generated
+ */
+ void setTargetElement(String value);
+
+ /**
+ * Returns the value of the '<em><b>Fetch</b></em>' attribute. The default value is <code>"LAZY"</code>. The
+ * literals are from the enumeration {@link org.eclipse.emf.teneo.annotations.pannotation.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.annotations.pannotation.FetchType
+ * @see #setFetch(FetchType)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotationPackage#getCollectionOfElements_Fetch()
+ * @model default="LAZY"
+ * @generated
+ */
+ FetchType getFetch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements#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.annotations.pannotation.FetchType
+ * @see #getFetch()
+ * @generated
+ */
+ void setFetch(FetchType value);
+
+} // CollectionOfElements
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Columns.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Columns.java
new file mode 100755
index 000000000..851bf611b
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Columns.java
@@ -0,0 +1,25 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Columns.java,v 1.4 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Columns</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Columns#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotationPackage#getColumns()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface Columns extends HbAnnotation {
+} // Columns
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/DiscriminatorFormula.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/DiscriminatorFormula.java
new file mode 100755
index 000000000..a92910688
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/DiscriminatorFormula.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DiscriminatorFormula.java,v 1.1 2008/06/10 08:24:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Discriminator Formula</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getDiscriminatorFormula()
+ * @model annotation="teneo/internal/Target 0='EClass'"
+ * @generated
+ */
+public interface DiscriminatorFormula extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getDiscriminatorFormula_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+} // DiscriminatorFormula
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Fetch.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Fetch.java
new file mode 100755
index 000000000..7cd02aba7
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Fetch.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Fetch.java,v 1.4 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Fetch</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Fetch#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFetch()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface Fetch extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</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>Value</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType
+ * @see #setValue(HbFetchType)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFetch_Value()
+ * @model
+ * @generated
+ */
+ HbFetchType getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Fetch#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(HbFetchType value);
+
+} // Fetch \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Filter.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Filter.java
new file mode 100755
index 000000000..2dcb141e7
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Filter.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Filter.java,v 1.1 2008/04/23 15:44:26 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Filter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter#getCondition <em>Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFilter()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EClass' 1='EReference'"
+ * @generated
+ */
+public interface Filter extends HbAnnotation {
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getFilter_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter#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>Condition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Condition</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Condition</em>' attribute.
+ * @see #setCondition(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFilter_Condition()
+ * @model
+ * @generated
+ */
+ String getCondition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter#getCondition <em>Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Condition</em>' attribute.
+ * @see #getCondition()
+ * @generated
+ */
+ void setCondition(String value);
+
+} // Filter
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/FilterDef.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/FilterDef.java
new file mode 100755
index 000000000..4b290ae1f
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/FilterDef.java
@@ -0,0 +1,98 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FilterDef.java,v 1.1 2008/04/23 15:44:26 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Filter Def</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef#getDefaultCondition <em>Default Condition</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef#getParameters <em>Parameters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFilterDef()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EClass' 1='EReference'"
+ * @generated
+ */
+public interface FilterDef extends HbAnnotation {
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getFilterDef_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef#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>Default Condition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default Condition</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default Condition</em>' attribute.
+ * @see #setDefaultCondition(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFilterDef_DefaultCondition()
+ * @model
+ * @generated
+ */
+ String getDefaultCondition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef#getDefaultCondition <em>Default Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default Condition</em>' attribute.
+ * @see #getDefaultCondition()
+ * @generated
+ */
+ void setDefaultCondition(String value);
+
+ /**
+ * Returns the value of the '<em><b>Parameters</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parameters</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parameters</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFilterDef_Parameters()
+ * @model
+ * @generated
+ */
+ EList<ParamDef> getParameters();
+
+} // FilterDef
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/FilterDefs.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/FilterDefs.java
new file mode 100755
index 000000000..bcce44229
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/FilterDefs.java
@@ -0,0 +1,44 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FilterDefs.java,v 1.1 2008/04/23 15:44:26 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Filter Defs</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDefs#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFilterDefs()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EClass' 1='EReference'"
+ * @generated
+ */
+public interface FilterDefs extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFilterDefs_Value()
+ * @model required="true"
+ * @generated
+ */
+ EList<ParamDef> getValue();
+
+} // FilterDefs
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Filters.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Filters.java
new file mode 100755
index 000000000..7d430b158
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Filters.java
@@ -0,0 +1,44 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Filters.java,v 1.1 2008/04/23 15:44:26 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Filters</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Filters#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFilters()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EClass' 1='EReference'"
+ * @generated
+ */
+public interface Filters extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFilters_Value()
+ * @model required="true"
+ * @generated
+ */
+ EList<Filter> getValue();
+
+} // Filters
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/ForceDiscriminator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/ForceDiscriminator.java
new file mode 100755
index 000000000..0bc75bce6
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/ForceDiscriminator.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ForceDiscriminator.java,v 1.1 2008/07/12 13:10:34 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Force Discriminator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getForceDiscriminator()
+ * @model annotation="teneo/internal/Target 0='EClass'"
+ * @generated
+ */
+public interface ForceDiscriminator extends HbAnnotation {
+} // ForceDiscriminator
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Formula.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Formula.java
new file mode 100755
index 000000000..d05761a91
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Formula.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Formula.java,v 1.1 2008/07/12 13:10:33 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Formula</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Formula#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFormula()
+ * @model annotation="teneo/internal/Target 0='EAttribute'"
+ * @generated
+ */
+public interface Formula extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getFormula_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Formula#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+} // Formula
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Generated.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Generated.java
new file mode 100755
index 000000000..1d6da8175
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Generated.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Generated.java,v 1.1 2007/07/11 17:35:11 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Generated</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Generated#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getGenerated()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EAttribute'"
+ * @generated
+ */
+public interface Generated extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Value</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime
+ * @see #setValue(GenerationTime)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getGenerated_Value()
+ * @model
+ * @generated
+ */
+ GenerationTime getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Generated#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(GenerationTime value);
+
+} // Generated
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/GenerationTime.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/GenerationTime.java
new file mode 100755
index 000000000..570e45fc3
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/GenerationTime.java
@@ -0,0 +1,239 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GenerationTime.java,v 1.1 2007/07/11 17:35:11 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+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 Time</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getGenerationTime()
+ * @model
+ * @generated
+ */
+public enum GenerationTime implements Enumerator {
+ /**
+ * The '<em><b>NEVER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NEVER_VALUE
+ * @generated
+ * @ordered
+ */
+ NEVER(0, "NEVER", "NEVER"),
+
+ /**
+ * The '<em><b>INSERT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INSERT_VALUE
+ * @generated
+ * @ordered
+ */
+ INSERT(1, "INSERT", "INSERT"),
+
+ /**
+ * The '<em><b>ALWAYS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ALWAYS_VALUE
+ * @generated
+ * @ordered
+ */
+ ALWAYS(2, "ALWAYS", "ALWAYS");
+
+ /**
+ * The '<em><b>NEVER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NEVER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NEVER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NEVER_VALUE = 0;
+
+ /**
+ * The '<em><b>INSERT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INSERT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INSERT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INSERT_VALUE = 1;
+
+ /**
+ * The '<em><b>ALWAYS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ALWAYS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ALWAYS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ALWAYS_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Generation Time</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final GenerationTime[] VALUES_ARRAY =
+ new GenerationTime[] {
+ NEVER,
+ INSERT,
+ ALWAYS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Generation Time</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<GenerationTime> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Generation Time</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GenerationTime get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ GenerationTime result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Generation Time</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GenerationTime getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ GenerationTime result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Generation Time</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GenerationTime get(int value) {
+ switch (value) {
+ case NEVER_VALUE: return NEVER;
+ case INSERT_VALUE: return INSERT;
+ case ALWAYS_VALUE: return ALWAYS;
+ }
+ 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 GenerationTime(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;
+ }
+
+} //GenerationTime
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/GenericGenerator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/GenericGenerator.java
new file mode 100755
index 000000000..be013faf0
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/GenericGenerator.java
@@ -0,0 +1,96 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GenericGenerator.java,v 1.6 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Generic Generator</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator#getStrategy <em>Strategy</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator#getParameters <em>Parameters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getGenericGenerator()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature' 1='EClass' 2='EPackage'"
+ * annotation="http://annotation.elver.org/internal/Collection name='GenericGenerators' packageNS='http://www.eclipse.org/emf/teneo/2006/HbAnnotation'"
+ * @generated
+ */
+public interface GenericGenerator extends HbAnnotation {
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getGenericGenerator_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator#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>Strategy</b></em>' attribute.
+ * <!-- 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 #setStrategy(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getGenericGenerator_Strategy()
+ * @model required="true"
+ * @generated
+ */
+ String getStrategy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator#getStrategy <em>Strategy</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Strategy</em>' attribute.
+ * @see #getStrategy()
+ * @generated
+ */
+ void setStrategy(String value);
+
+ /**
+ * Returns the value of the '<em><b>Parameters</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parameters</em>' reference list isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parameters</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getGenericGenerator_Parameters()
+ * @model
+ * @generated
+ */
+ EList<Parameter> getParameters();
+
+} // GenericGenerator
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbAnnotation.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbAnnotation.java
new file mode 100755
index 000000000..99ded43c4
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbAnnotation.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotation.java,v 1.5 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.teneo.annotations.pannotation.PAnnotation;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Hb Annotation</b></em>'. <!-- end-user-doc
+ * -->
+ *
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotationPackage#getHbAnnotation()
+ * @model interface="true" abstract="true" annotation="http://www.eclipse.org/emf/2002/Ecore
+ * constraints='CompatibleEModelElementType AnnotationIsSupported'"
+ * @generated
+ */
+public interface HbAnnotation extends PAnnotation {
+
+} // HbAnnotation
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbCascadeType.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbCascadeType.java
new file mode 100755
index 000000000..526b10ee9
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbCascadeType.java
@@ -0,0 +1,455 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbCascadeType.java,v 1.1 2008/09/01 12:45:17 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+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>Hb Cascade Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbCascadeType()
+ * @model
+ * @generated
+ */
+public enum HbCascadeType implements Enumerator {
+ /**
+ * The '<em><b>ALL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ALL_VALUE
+ * @generated
+ * @ordered
+ */
+ ALL(0, "ALL", "ALL"),
+
+ /**
+ * The '<em><b>PERSIST</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PERSIST_VALUE
+ * @generated
+ * @ordered
+ */
+ PERSIST(1, "PERSIST", "PERSIST"),
+
+ /**
+ * The '<em><b>MERGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MERGE_VALUE
+ * @generated
+ * @ordered
+ */
+ MERGE(2, "MERGE", "MERGE"),
+
+ /**
+ * The '<em><b>REMOVE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REMOVE_VALUE
+ * @generated
+ * @ordered
+ */
+ REMOVE(3, "REMOVE", "REMOVE"),
+
+ /**
+ * The '<em><b>REFRESH</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REFRESH_VALUE
+ * @generated
+ * @ordered
+ */
+ REFRESH(4, "REFRESH", "REFRESH"),
+
+ /**
+ * The '<em><b>DELETE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DELETE_VALUE
+ * @generated
+ * @ordered
+ */
+ DELETE(5, "DELETE", "DELETE"),
+
+ /**
+ * The '<em><b>SAVE UPDATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SAVE_UPDATE_VALUE
+ * @generated
+ * @ordered
+ */
+ SAVE_UPDATE(6, "SAVE_UPDATE", "SAVE_UPDATE"),
+
+ /**
+ * The '<em><b>REPLICATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REPLICATE_VALUE
+ * @generated
+ * @ordered
+ */
+ REPLICATE(7, "REPLICATE", "REPLICATE"),
+
+ /**
+ * The '<em><b>DELETE ORPHAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DELETE_ORPHAN_VALUE
+ * @generated
+ * @ordered
+ */
+ DELETE_ORPHAN(8, "DELETE_ORPHAN", "DELETE_ORPHAN"),
+
+ /**
+ * The '<em><b>LOCK</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LOCK_VALUE
+ * @generated
+ * @ordered
+ */
+ LOCK(9, "LOCK", "LOCK"),
+
+ /**
+ * The '<em><b>EVICT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EVICT_VALUE
+ * @generated
+ * @ordered
+ */
+ EVICT(10, "EVICT", "EVICT");
+
+ /**
+ * The '<em><b>ALL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ALL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ALL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ALL_VALUE = 0;
+
+ /**
+ * The '<em><b>PERSIST</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PERSIST</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PERSIST
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PERSIST_VALUE = 1;
+
+ /**
+ * The '<em><b>MERGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MERGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MERGE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MERGE_VALUE = 2;
+
+ /**
+ * The '<em><b>REMOVE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>REMOVE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REMOVE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int REMOVE_VALUE = 3;
+
+ /**
+ * The '<em><b>REFRESH</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>REFRESH</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REFRESH
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int REFRESH_VALUE = 4;
+
+ /**
+ * The '<em><b>DELETE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DELETE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DELETE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DELETE_VALUE = 5;
+
+ /**
+ * The '<em><b>SAVE UPDATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SAVE UPDATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SAVE_UPDATE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SAVE_UPDATE_VALUE = 6;
+
+ /**
+ * The '<em><b>REPLICATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>REPLICATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REPLICATE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int REPLICATE_VALUE = 7;
+
+ /**
+ * The '<em><b>DELETE ORPHAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DELETE ORPHAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DELETE_ORPHAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DELETE_ORPHAN_VALUE = 8;
+
+ /**
+ * The '<em><b>LOCK</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LOCK</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LOCK
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LOCK_VALUE = 9;
+
+ /**
+ * The '<em><b>EVICT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EVICT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EVICT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EVICT_VALUE = 10;
+
+ /**
+ * An array of all the '<em><b>Hb Cascade Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final HbCascadeType[] VALUES_ARRAY =
+ new HbCascadeType[] {
+ ALL,
+ PERSIST,
+ MERGE,
+ REMOVE,
+ REFRESH,
+ DELETE,
+ SAVE_UPDATE,
+ REPLICATE,
+ DELETE_ORPHAN,
+ LOCK,
+ EVICT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Hb Cascade Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<HbCascadeType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Hb Cascade Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HbCascadeType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ HbCascadeType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Hb Cascade Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HbCascadeType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ HbCascadeType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Hb Cascade Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HbCascadeType get(int value) {
+ switch (value) {
+ case ALL_VALUE: return ALL;
+ case PERSIST_VALUE: return PERSIST;
+ case MERGE_VALUE: return MERGE;
+ case REMOVE_VALUE: return REMOVE;
+ case REFRESH_VALUE: return REFRESH;
+ case DELETE_VALUE: return DELETE;
+ case SAVE_UPDATE_VALUE: return SAVE_UPDATE;
+ case REPLICATE_VALUE: return REPLICATE;
+ case DELETE_ORPHAN_VALUE: return DELETE_ORPHAN;
+ case LOCK_VALUE: return LOCK;
+ case EVICT_VALUE: return EVICT;
+ }
+ 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 HbCascadeType(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;
+ }
+
+} //HbCascadeType
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbEntity.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbEntity.java
new file mode 100755
index 000000000..37425a438
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbEntity.java
@@ -0,0 +1,224 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbEntity.java,v 1.1 2008/08/26 21:19:08 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Hb Entity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isDynamicInsert <em>Dynamic Insert</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isDynamicUpdate <em>Dynamic Update</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isSelectBeforeUpdate <em>Select Before Update</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isMutable <em>Mutable</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getPersister <em>Persister</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getOptimisticLock <em>Optimistic Lock</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getPolymorphism <em>Polymorphism</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbEntity()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface HbEntity extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Dynamic Insert</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dynamic Insert</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dynamic Insert</em>' attribute.
+ * @see #setDynamicInsert(boolean)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbEntity_DynamicInsert()
+ * @model
+ * @generated
+ */
+ boolean isDynamicInsert();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isDynamicInsert <em>Dynamic Insert</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dynamic Insert</em>' attribute.
+ * @see #isDynamicInsert()
+ * @generated
+ */
+ void setDynamicInsert(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Dynamic Update</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dynamic Update</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dynamic Update</em>' attribute.
+ * @see #setDynamicUpdate(boolean)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbEntity_DynamicUpdate()
+ * @model
+ * @generated
+ */
+ boolean isDynamicUpdate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isDynamicUpdate <em>Dynamic Update</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dynamic Update</em>' attribute.
+ * @see #isDynamicUpdate()
+ * @generated
+ */
+ void setDynamicUpdate(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Select Before Update</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Select Before Update</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Select Before Update</em>' attribute.
+ * @see #setSelectBeforeUpdate(boolean)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbEntity_SelectBeforeUpdate()
+ * @model
+ * @generated
+ */
+ boolean isSelectBeforeUpdate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isSelectBeforeUpdate <em>Select Before Update</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Select Before Update</em>' attribute.
+ * @see #isSelectBeforeUpdate()
+ * @generated
+ */
+ void setSelectBeforeUpdate(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Mutable</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mutable</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mutable</em>' attribute.
+ * @see #setMutable(boolean)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbEntity_Mutable()
+ * @model default="true"
+ * @generated
+ */
+ boolean isMutable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isMutable <em>Mutable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mutable</em>' attribute.
+ * @see #isMutable()
+ * @generated
+ */
+ void setMutable(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Persister</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Persister</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Persister</em>' attribute.
+ * @see #setPersister(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbEntity_Persister()
+ * @model
+ * @generated
+ */
+ String getPersister();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getPersister <em>Persister</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Persister</em>' attribute.
+ * @see #getPersister()
+ * @generated
+ */
+ void setPersister(String value);
+
+ /**
+ * Returns the value of the '<em><b>Optimistic Lock</b></em>' attribute.
+ * The default value is <code>"VERSION"</code>.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Optimistic Lock</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Optimistic Lock</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType
+ * @see #setOptimisticLock(OptimisticLockType)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbEntity_OptimisticLock()
+ * @model default="VERSION"
+ * @generated
+ */
+ OptimisticLockType getOptimisticLock();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getOptimisticLock <em>Optimistic Lock</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Optimistic Lock</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType
+ * @see #getOptimisticLock()
+ * @generated
+ */
+ void setOptimisticLock(OptimisticLockType value);
+
+ /**
+ * Returns the value of the '<em><b>Polymorphism</b></em>' attribute.
+ * The default value is <code>"IMPLICIT"</code>.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Polymorphism</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Polymorphism</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType
+ * @see #setPolymorphism(PolymorphismType)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbEntity_Polymorphism()
+ * @model default="IMPLICIT"
+ * @generated
+ */
+ PolymorphismType getPolymorphism();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getPolymorphism <em>Polymorphism</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Polymorphism</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType
+ * @see #getPolymorphism()
+ * @generated
+ */
+ void setPolymorphism(PolymorphismType value);
+
+} // HbEntity
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbFetchType.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbFetchType.java
new file mode 100755
index 000000000..391511523
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbFetchType.java
@@ -0,0 +1,229 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbFetchType.java,v 1.5 2010/02/04 11:03:36 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+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>Hb Fetch Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbFetchType()
+ * @model
+ * @generated
+ */
+public enum HbFetchType implements Enumerator {
+ /**
+ * The '<em><b>JOIN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #JOIN_VALUE
+ * @generated
+ * @ordered
+ */
+ JOIN(0, "JOIN", "JOIN"), /**
+ * The '<em><b>SELECT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SELECT_VALUE
+ * @generated
+ * @ordered
+ */
+ SELECT(1, "SELECT", "SELECT"), /**
+ * The '<em><b>SUBSELECT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SUBSELECT_VALUE
+ * @generated
+ * @ordered
+ */
+ SUBSELECT(2, "SUBSELECT", "SUBSELECT")
+ ;
+
+/**
+ * The '<em><b>JOIN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>JOIN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #JOIN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int JOIN_VALUE = 0;
+/**
+ * The '<em><b>SELECT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SELECT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SELECT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SELECT_VALUE = 1;
+/**
+ * The '<em><b>SUBSELECT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SUBSELECT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SUBSELECT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SUBSELECT_VALUE = 2;
+/**
+ * An array of all the '<em><b>Hb Fetch Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final HbFetchType[] VALUES_ARRAY =
+ new HbFetchType[] {
+ JOIN,
+ SELECT,
+ SUBSELECT,
+ };
+/**
+ * A public read-only list of all the '<em><b>Hb Fetch Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<HbFetchType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+/**
+ * Returns the '<em><b>Hb Fetch Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HbFetchType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ HbFetchType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+/**
+ * Returns the '<em><b>Hb Fetch Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HbFetchType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ HbFetchType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+/**
+ * Returns the '<em><b>Hb Fetch Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HbFetchType get(int value) {
+ switch (value) {
+ case JOIN_VALUE: return JOIN;
+ case SELECT_VALUE: return SELECT;
+ case SUBSELECT_VALUE: return SUBSELECT;
+ }
+ 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 HbFetchType(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;
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbMapKey.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbMapKey.java
new file mode 100755
index 000000000..a7a278b0c
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbMapKey.java
@@ -0,0 +1,45 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbMapKey.java,v 1.2 2010/02/04 11:03:38 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Hb Map Key</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey#getColumns <em>Columns</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbMapKey()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface HbMapKey extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Columns</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.annotations.pannotation.Column}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Columns</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>Columns</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getHbMapKey_Columns()
+ * @model containment="true" ordered="false"
+ * @generated
+ */
+ EList<Column> getColumns();
+
+} // HbMapKey
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbannotationFactory.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbannotationFactory.java
new file mode 100755
index 000000000..0b852db48
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbannotationFactory.java
@@ -0,0 +1,312 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbannotationFactory.java,v 1.13 2009/06/27 09:19:10 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc --> The <b>Factory</b> for the model. It provides a create method for each
+ * non-abstract class of the model. <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage
+ * @generated
+ */
+public interface HbannotationFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ HbannotationFactory eINSTANCE = org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Cascade</em>'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @return a new object of class '<em>Cascade</em>'.
+ * @generated
+ */
+ Cascade createCascade();
+
+ /**
+ * Returns a new object of class '<em>Collection Of Elements</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Collection Of Elements</em>'.
+ * @generated
+ */
+ CollectionOfElements createCollectionOfElements();
+
+ /**
+ * Returns a new object of class '<em>Hb Map Key</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hb Map Key</em>'.
+ * @generated
+ */
+ HbMapKey createHbMapKey();
+
+ /**
+ * Returns a new object of class '<em>Parameter</em>'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @return a new object of class '<em>Parameter</em>'.
+ * @generated
+ */
+ Parameter createParameter();
+
+ /**
+ * Returns a new object of class '<em>Type</em>'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return a new object of class '<em>Type</em>'.
+ * @generated
+ */
+ Type createType();
+
+ /**
+ * Returns a new object of class '<em>Where</em>'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return a new object of class '<em>Where</em>'.
+ * @generated
+ */
+ Where createWhere();
+
+ /**
+ * Returns a new object of class '<em>Id Bag</em>'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @return a new object of class '<em>Id Bag</em>'.
+ * @generated
+ */
+ IdBag createIdBag();
+
+ /**
+ * Returns a new object of class '<em>Generic Generator</em>'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @return a new object of class '<em>Generic Generator</em>'.
+ * @generated
+ */
+ GenericGenerator createGenericGenerator();
+
+ /**
+ * Returns a new object of class '<em>Cache</em>'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return a new object of class '<em>Cache</em>'.
+ * @generated
+ */
+ Cache createCache();
+
+ /**
+ * Returns a new object of class '<em>Type Def</em>'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @return a new object of class '<em>Type Def</em>'.
+ * @generated
+ */
+ TypeDef createTypeDef();
+
+ /**
+ * Returns a new object of class '<em>Fetch</em>'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return a new object of class '<em>Fetch</em>'.
+ * @generated
+ */
+ Fetch createFetch();
+
+ /**
+ * Returns a new object of class '<em>On Delete</em>'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @return a new object of class '<em>On Delete</em>'.
+ * @generated
+ */
+ OnDelete createOnDelete();
+
+ /**
+ * Returns a new object of class '<em>Proxy</em>'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return a new object of class '<em>Proxy</em>'.
+ * @generated
+ */
+ Proxy createProxy();
+
+ /**
+ * Returns a new object of class '<em>Index</em>'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return a new object of class '<em>Index</em>'.
+ * @generated
+ */
+ Index createIndex();
+
+ /**
+ * Returns a new object of class '<em>Generated</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Generated</em>'.
+ * @generated
+ */
+ Generated createGenerated();
+
+ /**
+ * Returns a new object of class '<em>Named Query</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Named Query</em>'.
+ * @generated
+ */
+ NamedQuery createNamedQuery();
+
+ /**
+ * Returns a new object of class '<em>Filter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Filter</em>'.
+ * @generated
+ */
+ Filter createFilter();
+
+ /**
+ * Returns a new object of class '<em>Param Def</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Param Def</em>'.
+ * @generated
+ */
+ ParamDef createParamDef();
+
+ /**
+ * Returns a new object of class '<em>Filter Def</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Filter Def</em>'.
+ * @generated
+ */
+ FilterDef createFilterDef();
+
+ /**
+ * Returns a new object of class '<em>Discriminator Formula</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Discriminator Formula</em>'.
+ * @generated
+ */
+ DiscriminatorFormula createDiscriminatorFormula();
+
+ /**
+ * Returns a new object of class '<em>Natural Id</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Natural Id</em>'.
+ * @generated
+ */
+ NaturalId createNaturalId();
+
+ /**
+ * Returns a new object of class '<em>Map Key Many To Many</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Map Key Many To Many</em>'.
+ * @generated
+ */
+ MapKeyManyToMany createMapKeyManyToMany();
+
+ /**
+ * Returns a new object of class '<em>Force Discriminator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Force Discriminator</em>'.
+ * @generated
+ */
+ ForceDiscriminator createForceDiscriminator();
+
+ /**
+ * Returns a new object of class '<em>Immutable</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Immutable</em>'.
+ * @generated
+ */
+ Immutable createImmutable();
+
+ /**
+ * Returns a new object of class '<em>Formula</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Formula</em>'.
+ * @generated
+ */
+ Formula createFormula();
+
+ /**
+ * Returns a new object of class '<em>Not Found</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Not Found</em>'.
+ * @generated
+ */
+ NotFound createNotFound();
+
+ /**
+ * Returns a new object of class '<em>Hb Entity</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hb Entity</em>'.
+ * @generated
+ */
+ HbEntity createHbEntity();
+
+ /**
+ * Returns a new object of class '<em>Batch Size</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Batch Size</em>'.
+ * @generated
+ */
+ BatchSize createBatchSize();
+
+ /**
+ * Returns a new object of class '<em>Any</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Any</em>'.
+ * @generated
+ */
+ Any createAny();
+
+ /**
+ * Returns a new object of class '<em>Meta Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Meta Value</em>'.
+ * @generated
+ */
+ MetaValue createMetaValue();
+
+ /**
+ * Returns a new object of class '<em>Any Meta Def</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Any Meta Def</em>'.
+ * @generated
+ */
+ AnyMetaDef createAnyMetaDef();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ HbannotationPackage getHbannotationPackage();
+
+} // HbannotationFactory
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbannotationPackage.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbannotationPackage.java
new file mode 100755
index 000000000..55263399b
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/HbannotationPackage.java
@@ -0,0 +1,3458 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbannotationPackage.java,v 1.16 2010/02/04 11:03:37 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.teneo.annotations.pannotation.PannotationPackage;
+
+/**
+ * <!-- begin-user-doc --> The <b>Package</b> for the model. It contains accessors for the meta
+ * objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationFactory
+ * @model kind="package"
+ * annotation="teneo.mapping.source 1='http://hibernate.elver.org/'"
+ * @generated
+ */
+public interface HbannotationPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "hbannotation";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/teneo/2006/HbAnnotation";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "org.eclipse.emf.teneo.hibernate";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ HbannotationPackage eINSTANCE = org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbAnnotationImpl <em>Hb Annotation</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbAnnotationImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getHbAnnotation()
+ * @generated
+ */
+ int HB_ANNOTATION = 0;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATION__EMODEL_ELEMENT = PannotationPackage.PANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The number of structural features of the '<em>Hb Annotation</em>' class. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATION_FEATURE_COUNT = PannotationPackage.PANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CascadeImpl <em>Cascade</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.CascadeImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getCascade()
+ * @generated
+ */
+ int CASCADE = 1;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CASCADE__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CASCADE__VALUE = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Cascade</em>' class.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CASCADE_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CollectionOfElementsImpl <em>Collection Of Elements</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.CollectionOfElementsImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getCollectionOfElements()
+ * @generated
+ */
+ int COLLECTION_OF_ELEMENTS = 2;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COLLECTION_OF_ELEMENTS__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Target Element</b></em>' attribute.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COLLECTION_OF_ELEMENTS__TARGET_ELEMENT = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Fetch</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COLLECTION_OF_ELEMENTS__FETCH = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Collection Of Elements</em>' class. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int COLLECTION_OF_ELEMENTS_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbMapKeyImpl <em>Hb Map Key</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbMapKeyImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getHbMapKey()
+ * @generated
+ */
+ int HB_MAP_KEY = 3;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_MAP_KEY__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_MAP_KEY__COLUMNS = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Hb Map Key</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_MAP_KEY_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParameterImpl <em>Parameter</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParameterImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getParameter()
+ * @generated
+ */
+ int PARAMETER = 4;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARAMETER__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARAMETER__NAME = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARAMETER__VALUE = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Parameter</em>' class.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARAMETER_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeImpl <em>Type</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getType()
+ * @generated
+ */
+ int TYPE = 5;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE__TYPE = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' reference list.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE__PARAMETERS = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.WhereImpl <em>Where</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.WhereImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getWhere()
+ * @generated
+ */
+ int WHERE = 6;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WHERE__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Clause</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WHERE__CLAUSE = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Where</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WHERE_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.IdBagImpl <em>Id Bag</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.IdBagImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getIdBag()
+ * @generated
+ */
+ int ID_BAG = 7;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ID_BAG__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Generator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ID_BAG__GENERATOR = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ID_BAG__TYPE = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ID_BAG__TABLE = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Id Bag</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ID_BAG_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.GenericGeneratorImpl <em>Generic Generator</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.GenericGeneratorImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getGenericGenerator()
+ * @generated
+ */
+ int GENERIC_GENERATOR = 8;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_GENERATOR__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_GENERATOR__NAME = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Strategy</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_GENERATOR__STRATEGY = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' reference list.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_GENERATOR__PARAMETERS = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Generic Generator</em>' class. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int GENERIC_GENERATOR_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CacheImpl <em>Cache</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.CacheImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getCache()
+ * @generated
+ */
+ int CACHE = 9;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CACHE__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Usage</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CACHE__USAGE = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Region</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CACHE__REGION = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Include</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CACHE__INCLUDE = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Cache</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CACHE_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeDefImpl <em>Type Def</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeDefImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getTypeDef()
+ * @generated
+ */
+ int TYPE_DEF = 10;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_DEF__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_DEF__NAME = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' reference list.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_DEF__PARAMETERS = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Type Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_DEF__TYPE_CLASS = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Type Def</em>' class.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_DEF_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FetchImpl <em>Fetch</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.FetchImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getFetch()
+ * @generated
+ */
+ int FETCH = 11;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FETCH__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FETCH__VALUE = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Fetch</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FETCH_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.OnDeleteImpl <em>On Delete</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.OnDeleteImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getOnDelete()
+ * @generated
+ */
+ int ON_DELETE = 12;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ON_DELETE__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Action</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ON_DELETE__ACTION = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>On Delete</em>' class.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ON_DELETE_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ProxyImpl <em>Proxy</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.ProxyImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getProxy()
+ * @generated
+ */
+ int PROXY = 13;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROXY__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Proxy Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROXY__PROXY_CLASS = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Lazy</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROXY__LAZY = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Proxy</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROXY_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.IndexImpl <em>Index</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.IndexImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getIndex()
+ * @generated
+ */
+ int INDEX = 14;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INDEX__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INDEX__NAME = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Index</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INDEX_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.GeneratedImpl <em>Generated</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.GeneratedImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getGenerated()
+ * @generated
+ */
+ int GENERATED = 15;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERATED__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERATED__VALUE = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Generated</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERATED_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.NamedQueryImpl <em>Named Query</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.NamedQueryImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getNamedQuery()
+ * @generated
+ */
+ int NAMED_QUERY = 16;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_QUERY__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_QUERY__NAME = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Query</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_QUERY__QUERY = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Named Query</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_QUERY_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterImpl <em>Filter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getFilter()
+ * @generated
+ */
+ int FILTER = 17;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER__NAME = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Condition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER__CONDITION = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Filter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParamDefImpl <em>Param Def</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParamDefImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getParamDef()
+ * @generated
+ */
+ int PARAM_DEF = 18;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARAM_DEF__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARAM_DEF__NAME = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARAM_DEF__TYPE = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Param Def</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARAM_DEF_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterDefImpl <em>Filter Def</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterDefImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getFilterDef()
+ * @generated
+ */
+ int FILTER_DEF = 19;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_DEF__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_DEF__NAME = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Default Condition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_DEF__DEFAULT_CONDITION = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_DEF__PARAMETERS = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Filter Def</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_DEF_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.DiscriminatorFormulaImpl <em>Discriminator Formula</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.DiscriminatorFormulaImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getDiscriminatorFormula()
+ * @generated
+ */
+ int DISCRIMINATOR_FORMULA = 20;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISCRIMINATOR_FORMULA__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISCRIMINATOR_FORMULA__VALUE = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Discriminator Formula</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISCRIMINATOR_FORMULA_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.NaturalIdImpl <em>Natural Id</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.NaturalIdImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getNaturalId()
+ * @generated
+ */
+ int NATURAL_ID = 21;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NATURAL_ID__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Mutable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NATURAL_ID__MUTABLE = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Natural Id</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NATURAL_ID_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.MapKeyManyToManyImpl <em>Map Key Many To Many</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.MapKeyManyToManyImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getMapKeyManyToMany()
+ * @generated
+ */
+ int MAP_KEY_MANY_TO_MANY = 22;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAP_KEY_MANY_TO_MANY__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAP_KEY_MANY_TO_MANY__JOIN_COLUMNS = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Target Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAP_KEY_MANY_TO_MANY__TARGET_ENTITY = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Map Key Many To Many</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAP_KEY_MANY_TO_MANY_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ForceDiscriminatorImpl <em>Force Discriminator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.ForceDiscriminatorImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getForceDiscriminator()
+ * @generated
+ */
+ int FORCE_DISCRIMINATOR = 23;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORCE_DISCRIMINATOR__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The number of structural features of the '<em>Force Discriminator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORCE_DISCRIMINATOR_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ImmutableImpl <em>Immutable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.ImmutableImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getImmutable()
+ * @generated
+ */
+ int IMMUTABLE = 24;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMMUTABLE__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The number of structural features of the '<em>Immutable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMMUTABLE_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FormulaImpl <em>Formula</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.FormulaImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getFormula()
+ * @generated
+ */
+ int FORMULA = 25;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORMULA__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORMULA__VALUE = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Formula</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORMULA_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.NotFoundImpl <em>Not Found</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.NotFoundImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getNotFound()
+ * @generated
+ */
+ int NOT_FOUND = 26;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_FOUND__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_FOUND__ACTION = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Not Found</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_FOUND_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbEntityImpl <em>Hb Entity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbEntityImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getHbEntity()
+ * @generated
+ */
+ int HB_ENTITY = 27;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ENTITY__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Dynamic Insert</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ENTITY__DYNAMIC_INSERT = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Dynamic Update</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ENTITY__DYNAMIC_UPDATE = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Select Before Update</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ENTITY__SELECT_BEFORE_UPDATE = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Mutable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ENTITY__MUTABLE = HB_ANNOTATION_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Persister</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ENTITY__PERSISTER = HB_ANNOTATION_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Optimistic Lock</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ENTITY__OPTIMISTIC_LOCK = HB_ANNOTATION_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Polymorphism</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ENTITY__POLYMORPHISM = HB_ANNOTATION_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>Hb Entity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ENTITY_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.BatchSizeImpl <em>Batch Size</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.BatchSizeImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getBatchSize()
+ * @generated
+ */
+ int BATCH_SIZE = 28;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_SIZE__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_SIZE__SIZE = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Batch Size</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_SIZE_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyImpl <em>Any</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getAny()
+ * @generated
+ */
+ int ANY = 29;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Meta Def</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY__META_DEF = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Meta Column</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY__META_COLUMN = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Fetch</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY__FETCH = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Optional</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY__OPTIONAL = HB_ANNOTATION_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Any</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.MetaValueImpl <em>Meta Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.MetaValueImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getMetaValue()
+ * @generated
+ */
+ int META_VALUE = 30;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int META_VALUE__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Target Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int META_VALUE__TARGET_ENTITY = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int META_VALUE__VALUE = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Meta Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int META_VALUE_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyMetaDefImpl <em>Any Meta Def</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyMetaDefImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getAnyMetaDef()
+ * @generated
+ */
+ int ANY_META_DEF = 31;
+
+ /**
+ * The feature id for the '<em><b>EModel Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY_META_DEF__EMODEL_ELEMENT = HB_ANNOTATION__EMODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY_META_DEF__NAME = HB_ANNOTATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Meta Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY_META_DEF__META_TYPE = HB_ANNOTATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Id Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY_META_DEF__ID_TYPE = HB_ANNOTATION_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Meta Values</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY_META_DEF__META_VALUES = HB_ANNOTATION_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Any Meta Def</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY_META_DEF_FEATURE_COUNT = HB_ANNOTATION_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy <em>Cache Concurrency Strategy</em>}' enum.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getCacheConcurrencyStrategy()
+ * @generated
+ */
+ int CACHE_CONCURRENCY_STRATEGY = 32;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType <em>Hb Fetch Type</em>}' enum.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getHbFetchType()
+ * @generated
+ */
+ int HB_FETCH_TYPE = 33;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction <em>On Delete Action</em>}' enum.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getOnDeleteAction()
+ * @generated
+ */
+ int ON_DELETE_ACTION = 34;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime <em>Generation Time</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getGenerationTime()
+ * @generated
+ */
+ int GENERATION_TIME = 35;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction <em>Not Found Action</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getNotFoundAction()
+ * @generated
+ */
+ int NOT_FOUND_ACTION = 36;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType <em>Optimistic Lock Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getOptimisticLockType()
+ * @generated
+ */
+ int OPTIMISTIC_LOCK_TYPE = 37;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType <em>Polymorphism Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getPolymorphismType()
+ * @generated
+ */
+ int POLYMORPHISM_TYPE = 38;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType <em>Hb Cascade Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getHbCascadeType()
+ * @generated
+ */
+ int HB_CASCADE_TYPE = 39;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotation <em>Hb Annotation</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hb Annotation</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotation
+ * @generated
+ */
+ EClass getHbAnnotation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cascade <em>Cascade</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cascade</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Cascade
+ * @generated
+ */
+ EClass getCascade();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cascade#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Value</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Cascade#getValue()
+ * @see #getCascade()
+ * @generated
+ */
+ EAttribute getCascade_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements <em>Collection Of Elements</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Collection Of Elements</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements
+ * @generated
+ */
+ EClass getCollectionOfElements();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements#getTargetElement <em>Target Element</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Target Element</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements#getTargetElement()
+ * @see #getCollectionOfElements()
+ * @generated
+ */
+ EAttribute getCollectionOfElements_TargetElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements#getFetch <em>Fetch</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Fetch</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements#getFetch()
+ * @see #getCollectionOfElements()
+ * @generated
+ */
+ EAttribute getCollectionOfElements_Fetch();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey <em>Hb Map Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hb Map Key</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey
+ * @generated
+ */
+ EClass getHbMapKey();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey#getColumns <em>Columns</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Columns</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey#getColumns()
+ * @see #getHbMapKey()
+ * @generated
+ */
+ EReference getHbMapKey_Columns();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter <em>Parameter</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Parameter</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Parameter
+ * @generated
+ */
+ EClass getParameter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter#getName <em>Name</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Parameter#getName()
+ * @see #getParameter()
+ * @generated
+ */
+ EAttribute getParameter_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Parameter#getValue()
+ * @see #getParameter()
+ * @generated
+ */
+ EAttribute getParameter_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Type <em>Type</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Type
+ * @generated
+ */
+ EClass getType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Type#getType <em>Type</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Type#getType()
+ * @see #getType()
+ * @generated
+ */
+ EAttribute getType_Type();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Type#getParameters <em>Parameters</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Parameters</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Type#getParameters()
+ * @see #getType()
+ * @generated
+ */
+ EReference getType_Parameters();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Where <em>Where</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Where</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Where
+ * @generated
+ */
+ EClass getWhere();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Where#getClause <em>Clause</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Clause</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Where#getClause()
+ * @see #getWhere()
+ * @generated
+ */
+ EAttribute getWhere_Clause();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag <em>Id Bag</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Id Bag</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.IdBag
+ * @generated
+ */
+ EClass getIdBag();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#getGenerator <em>Generator</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Generator</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#getGenerator()
+ * @see #getIdBag()
+ * @generated
+ */
+ EAttribute getIdBag_Generator();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#getType <em>Type</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#getType()
+ * @see #getIdBag()
+ * @generated
+ */
+ EAttribute getIdBag_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Table</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#getTable()
+ * @see #getIdBag()
+ * @generated
+ */
+ EAttribute getIdBag_Table();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator <em>Generic Generator</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Generic Generator</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator
+ * @generated
+ */
+ EClass getGenericGenerator();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator#getName <em>Name</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator#getName()
+ * @see #getGenericGenerator()
+ * @generated
+ */
+ EAttribute getGenericGenerator_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator#getStrategy <em>Strategy</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Strategy</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator#getStrategy()
+ * @see #getGenericGenerator()
+ * @generated
+ */
+ EAttribute getGenericGenerator_Strategy();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator#getParameters <em>Parameters</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Parameters</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator#getParameters()
+ * @see #getGenericGenerator()
+ * @generated
+ */
+ EReference getGenericGenerator_Parameters();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache <em>Cache</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cache</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Cache
+ * @generated
+ */
+ EClass getCache();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getUsage <em>Usage</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Usage</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getUsage()
+ * @see #getCache()
+ * @generated
+ */
+ EAttribute getCache_Usage();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getRegion <em>Region</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Region</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getRegion()
+ * @see #getCache()
+ * @generated
+ */
+ EAttribute getCache_Region();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getInclude <em>Include</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Include</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Cache#getInclude()
+ * @see #getCache()
+ * @generated
+ */
+ EAttribute getCache_Include();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef <em>Type Def</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Type Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef
+ * @generated
+ */
+ EClass getTypeDef();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef#getName <em>Name</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef#getName()
+ * @see #getTypeDef()
+ * @generated
+ */
+ EAttribute getTypeDef_Name();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef#getParameters <em>Parameters</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Parameters</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef#getParameters()
+ * @see #getTypeDef()
+ * @generated
+ */
+ EReference getTypeDef_Parameters();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef#getTypeClass <em>Type Class</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type Class</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef#getTypeClass()
+ * @see #getTypeDef()
+ * @generated
+ */
+ EAttribute getTypeDef_TypeClass();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Fetch <em>Fetch</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Fetch</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Fetch
+ * @generated
+ */
+ EClass getFetch();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Fetch#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Fetch#getValue()
+ * @see #getFetch()
+ * @generated
+ */
+ EAttribute getFetch_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete <em>On Delete</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>On Delete</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete
+ * @generated
+ */
+ EClass getOnDelete();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete#getAction <em>Action</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Action</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete#getAction()
+ * @see #getOnDelete()
+ * @generated
+ */
+ EAttribute getOnDelete_Action();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Proxy <em>Proxy</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Proxy</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Proxy
+ * @generated
+ */
+ EClass getProxy();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Proxy#getProxyClass <em>Proxy Class</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Proxy Class</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Proxy#getProxyClass()
+ * @see #getProxy()
+ * @generated
+ */
+ EAttribute getProxy_ProxyClass();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Proxy#isLazy <em>Lazy</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lazy</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Proxy#isLazy()
+ * @see #getProxy()
+ * @generated
+ */
+ EAttribute getProxy_Lazy();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Index <em>Index</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for class '<em>Index</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Index
+ * @generated
+ */
+ EClass getIndex();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Index#getName <em>Name</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Index#getName()
+ * @see #getIndex()
+ * @generated
+ */
+ EAttribute getIndex_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Generated <em>Generated</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Generated</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Generated
+ * @generated
+ */
+ EClass getGenerated();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Generated#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Generated#getValue()
+ * @see #getGenerated()
+ * @generated
+ */
+ EAttribute getGenerated_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery <em>Named Query</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Named Query</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery
+ * @generated
+ */
+ EClass getNamedQuery();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery#getName()
+ * @see #getNamedQuery()
+ * @generated
+ */
+ EAttribute getNamedQuery_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery#getQuery <em>Query</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Query</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery#getQuery()
+ * @see #getNamedQuery()
+ * @generated
+ */
+ EAttribute getNamedQuery_Query();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter <em>Filter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Filter</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Filter
+ * @generated
+ */
+ EClass getFilter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Filter#getName()
+ * @see #getFilter()
+ * @generated
+ */
+ EAttribute getFilter_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter#getCondition <em>Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Condition</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Filter#getCondition()
+ * @see #getFilter()
+ * @generated
+ */
+ EAttribute getFilter_Condition();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef <em>Param Def</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Param Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef
+ * @generated
+ */
+ EClass getParamDef();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef#getName()
+ * @see #getParamDef()
+ * @generated
+ */
+ EAttribute getParamDef_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef#getType()
+ * @see #getParamDef()
+ * @generated
+ */
+ EAttribute getParamDef_Type();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef <em>Filter Def</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Filter Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef
+ * @generated
+ */
+ EClass getFilterDef();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef#getName()
+ * @see #getFilterDef()
+ * @generated
+ */
+ EAttribute getFilterDef_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef#getDefaultCondition <em>Default Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Default Condition</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef#getDefaultCondition()
+ * @see #getFilterDef()
+ * @generated
+ */
+ EAttribute getFilterDef_DefaultCondition();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef#getParameters <em>Parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Parameters</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef#getParameters()
+ * @see #getFilterDef()
+ * @generated
+ */
+ EReference getFilterDef_Parameters();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula <em>Discriminator Formula</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Discriminator Formula</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula
+ * @generated
+ */
+ EClass getDiscriminatorFormula();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula#getValue()
+ * @see #getDiscriminatorFormula()
+ * @generated
+ */
+ EAttribute getDiscriminatorFormula_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId <em>Natural Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Natural Id</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId
+ * @generated
+ */
+ EClass getNaturalId();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId#isMutable <em>Mutable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Mutable</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId#isMutable()
+ * @see #getNaturalId()
+ * @generated
+ */
+ EAttribute getNaturalId_Mutable();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany <em>Map Key Many To Many</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Map Key Many To Many</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany
+ * @generated
+ */
+ EClass getMapKeyManyToMany();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany#getJoinColumns <em>Join Columns</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Join Columns</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany#getJoinColumns()
+ * @see #getMapKeyManyToMany()
+ * @generated
+ */
+ EReference getMapKeyManyToMany_JoinColumns();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany#getTargetEntity <em>Target Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Target Entity</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany#getTargetEntity()
+ * @see #getMapKeyManyToMany()
+ * @generated
+ */
+ EAttribute getMapKeyManyToMany_TargetEntity();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator <em>Force Discriminator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Force Discriminator</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator
+ * @generated
+ */
+ EClass getForceDiscriminator();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Immutable <em>Immutable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Immutable</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Immutable
+ * @generated
+ */
+ EClass getImmutable();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Formula <em>Formula</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Formula</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Formula
+ * @generated
+ */
+ EClass getFormula();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Formula#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Formula#getValue()
+ * @see #getFormula()
+ * @generated
+ */
+ EAttribute getFormula_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NotFound <em>Not Found</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Not Found</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NotFound
+ * @generated
+ */
+ EClass getNotFound();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NotFound#getAction <em>Action</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Action</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NotFound#getAction()
+ * @see #getNotFound()
+ * @generated
+ */
+ EAttribute getNotFound_Action();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity <em>Hb Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hb Entity</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity
+ * @generated
+ */
+ EClass getHbEntity();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isDynamicInsert <em>Dynamic Insert</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dynamic Insert</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isDynamicInsert()
+ * @see #getHbEntity()
+ * @generated
+ */
+ EAttribute getHbEntity_DynamicInsert();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isDynamicUpdate <em>Dynamic Update</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dynamic Update</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isDynamicUpdate()
+ * @see #getHbEntity()
+ * @generated
+ */
+ EAttribute getHbEntity_DynamicUpdate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isSelectBeforeUpdate <em>Select Before Update</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Select Before Update</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isSelectBeforeUpdate()
+ * @see #getHbEntity()
+ * @generated
+ */
+ EAttribute getHbEntity_SelectBeforeUpdate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isMutable <em>Mutable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Mutable</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#isMutable()
+ * @see #getHbEntity()
+ * @generated
+ */
+ EAttribute getHbEntity_Mutable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getPersister <em>Persister</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Persister</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getPersister()
+ * @see #getHbEntity()
+ * @generated
+ */
+ EAttribute getHbEntity_Persister();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getOptimisticLock <em>Optimistic Lock</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Optimistic Lock</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getOptimisticLock()
+ * @see #getHbEntity()
+ * @generated
+ */
+ EAttribute getHbEntity_OptimisticLock();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getPolymorphism <em>Polymorphism</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Polymorphism</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity#getPolymorphism()
+ * @see #getHbEntity()
+ * @generated
+ */
+ EAttribute getHbEntity_Polymorphism();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize <em>Batch Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Batch Size</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize
+ * @generated
+ */
+ EClass getBatchSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize#getSize()
+ * @see #getBatchSize()
+ * @generated
+ */
+ EAttribute getBatchSize_Size();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Any</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Any
+ * @generated
+ */
+ EClass getAny();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#getMetaDef <em>Meta Def</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Meta Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Any#getMetaDef()
+ * @see #getAny()
+ * @generated
+ */
+ EAttribute getAny_MetaDef();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#getMetaColumn <em>Meta Column</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Meta Column</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Any#getMetaColumn()
+ * @see #getAny()
+ * @generated
+ */
+ EReference getAny_MetaColumn();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#getFetch <em>Fetch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Fetch</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Any#getFetch()
+ * @see #getAny()
+ * @generated
+ */
+ EAttribute getAny_Fetch();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any#isOptional <em>Optional</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Optional</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Any#isOptional()
+ * @see #getAny()
+ * @generated
+ */
+ EAttribute getAny_Optional();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue <em>Meta Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Meta Value</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue
+ * @generated
+ */
+ EClass getMetaValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue#getTargetEntity <em>Target Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Target Entity</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue#getTargetEntity()
+ * @see #getMetaValue()
+ * @generated
+ */
+ EAttribute getMetaValue_TargetEntity();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue#getValue()
+ * @see #getMetaValue()
+ * @generated
+ */
+ EAttribute getMetaValue_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef <em>Any Meta Def</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Any Meta Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef
+ * @generated
+ */
+ EClass getAnyMetaDef();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getName()
+ * @see #getAnyMetaDef()
+ * @generated
+ */
+ EAttribute getAnyMetaDef_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getMetaType <em>Meta Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Meta Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getMetaType()
+ * @see #getAnyMetaDef()
+ * @generated
+ */
+ EAttribute getAnyMetaDef_MetaType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getIdType <em>Id Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getIdType()
+ * @see #getAnyMetaDef()
+ * @generated
+ */
+ EAttribute getAnyMetaDef_IdType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getMetaValues <em>Meta Values</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Meta Values</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef#getMetaValues()
+ * @see #getAnyMetaDef()
+ * @generated
+ */
+ EReference getAnyMetaDef_MetaValues();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy <em>Cache Concurrency Strategy</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Cache Concurrency Strategy</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy
+ * @generated
+ */
+ EEnum getCacheConcurrencyStrategy();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType <em>Hb Fetch Type</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Hb Fetch Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType
+ * @generated
+ */
+ EEnum getHbFetchType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction <em>On Delete Action</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the meta object for enum '<em>On Delete Action</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction
+ * @generated
+ */
+ EEnum getOnDeleteAction();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime <em>Generation Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Generation Time</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime
+ * @generated
+ */
+ EEnum getGenerationTime();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction <em>Not Found Action</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Not Found Action</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction
+ * @generated
+ */
+ EEnum getNotFoundAction();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType <em>Optimistic Lock Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Optimistic Lock Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType
+ * @generated
+ */
+ EEnum getOptimisticLockType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType <em>Polymorphism Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Polymorphism Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType
+ * @generated
+ */
+ EEnum getPolymorphismType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType <em>Hb Cascade Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Hb Cascade Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType
+ * @generated
+ */
+ EEnum getHbCascadeType();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ HbannotationFactory getHbannotationFactory();
+
+ /**
+ * <!-- begin-user-doc --> Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbAnnotationImpl <em>Hb Annotation</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbAnnotationImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getHbAnnotation()
+ * @generated
+ */
+ EClass HB_ANNOTATION = eINSTANCE.getHbAnnotation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CascadeImpl <em>Cascade</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.CascadeImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getCascade()
+ * @generated
+ */
+ EClass CASCADE = eINSTANCE.getCascade();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute list feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute CASCADE__VALUE = eINSTANCE.getCascade_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CollectionOfElementsImpl <em>Collection Of Elements</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.CollectionOfElementsImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getCollectionOfElements()
+ * @generated
+ */
+ EClass COLLECTION_OF_ELEMENTS = eINSTANCE.getCollectionOfElements();
+
+ /**
+ * The meta object literal for the '<em><b>Target Element</b></em>' attribute feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COLLECTION_OF_ELEMENTS__TARGET_ELEMENT = eINSTANCE.getCollectionOfElements_TargetElement();
+
+ /**
+ * The meta object literal for the '<em><b>Fetch</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute COLLECTION_OF_ELEMENTS__FETCH = eINSTANCE.getCollectionOfElements_Fetch();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbMapKeyImpl <em>Hb Map Key</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbMapKeyImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getHbMapKey()
+ * @generated
+ */
+ EClass HB_MAP_KEY = eINSTANCE.getHbMapKey();
+
+ /**
+ * The meta object literal for the '<em><b>Columns</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_MAP_KEY__COLUMNS = eINSTANCE.getHbMapKey_Columns();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParameterImpl <em>Parameter</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParameterImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getParameter()
+ * @generated
+ */
+ EClass PARAMETER = eINSTANCE.getParameter();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute PARAMETER__NAME = eINSTANCE.getParameter_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute PARAMETER__VALUE = eINSTANCE.getParameter_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeImpl <em>Type</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getType()
+ * @generated
+ */
+ EClass TYPE = eINSTANCE.getType();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute TYPE__TYPE = eINSTANCE.getType_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Parameters</b></em>' reference list feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TYPE__PARAMETERS = eINSTANCE.getType_Parameters();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.WhereImpl <em>Where</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.WhereImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getWhere()
+ * @generated
+ */
+ EClass WHERE = eINSTANCE.getWhere();
+
+ /**
+ * The meta object literal for the '<em><b>Clause</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute WHERE__CLAUSE = eINSTANCE.getWhere_Clause();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.IdBagImpl <em>Id Bag</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.IdBagImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getIdBag()
+ * @generated
+ */
+ EClass ID_BAG = eINSTANCE.getIdBag();
+
+ /**
+ * The meta object literal for the '<em><b>Generator</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ID_BAG__GENERATOR = eINSTANCE.getIdBag_Generator();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ID_BAG__TYPE = eINSTANCE.getIdBag_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Table</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ID_BAG__TABLE = eINSTANCE.getIdBag_Table();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.GenericGeneratorImpl <em>Generic Generator</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.GenericGeneratorImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getGenericGenerator()
+ * @generated
+ */
+ EClass GENERIC_GENERATOR = eINSTANCE.getGenericGenerator();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute GENERIC_GENERATOR__NAME = eINSTANCE.getGenericGenerator_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Strategy</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute GENERIC_GENERATOR__STRATEGY = eINSTANCE.getGenericGenerator_Strategy();
+
+ /**
+ * The meta object literal for the '<em><b>Parameters</b></em>' reference list feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GENERIC_GENERATOR__PARAMETERS = eINSTANCE.getGenericGenerator_Parameters();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CacheImpl <em>Cache</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.CacheImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getCache()
+ * @generated
+ */
+ EClass CACHE = eINSTANCE.getCache();
+
+ /**
+ * The meta object literal for the '<em><b>Usage</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute CACHE__USAGE = eINSTANCE.getCache_Usage();
+
+ /**
+ * The meta object literal for the '<em><b>Region</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute CACHE__REGION = eINSTANCE.getCache_Region();
+
+ /**
+ * The meta object literal for the '<em><b>Include</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute CACHE__INCLUDE = eINSTANCE.getCache_Include();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeDefImpl <em>Type Def</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeDefImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getTypeDef()
+ * @generated
+ */
+ EClass TYPE_DEF = eINSTANCE.getTypeDef();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute TYPE_DEF__NAME = eINSTANCE.getTypeDef_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Parameters</b></em>' reference list feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TYPE_DEF__PARAMETERS = eINSTANCE.getTypeDef_Parameters();
+
+ /**
+ * The meta object literal for the '<em><b>Type Class</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute TYPE_DEF__TYPE_CLASS = eINSTANCE.getTypeDef_TypeClass();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FetchImpl <em>Fetch</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.FetchImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getFetch()
+ * @generated
+ */
+ EClass FETCH = eINSTANCE.getFetch();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute FETCH__VALUE = eINSTANCE.getFetch_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.OnDeleteImpl <em>On Delete</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.OnDeleteImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getOnDelete()
+ * @generated
+ */
+ EClass ON_DELETE = eINSTANCE.getOnDelete();
+
+ /**
+ * The meta object literal for the '<em><b>Action</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ON_DELETE__ACTION = eINSTANCE.getOnDelete_Action();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ProxyImpl <em>Proxy</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.ProxyImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getProxy()
+ * @generated
+ */
+ EClass PROXY = eINSTANCE.getProxy();
+
+ /**
+ * The meta object literal for the '<em><b>Proxy Class</b></em>' attribute feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROXY__PROXY_CLASS = eINSTANCE.getProxy_ProxyClass();
+
+ /**
+ * The meta object literal for the '<em><b>Lazy</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute PROXY__LAZY = eINSTANCE.getProxy_Lazy();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.IndexImpl <em>Index</em>}' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.IndexImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getIndex()
+ * @generated
+ */
+ EClass INDEX = eINSTANCE.getIndex();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute INDEX__NAME = eINSTANCE.getIndex_Name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.GeneratedImpl <em>Generated</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.GeneratedImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getGenerated()
+ * @generated
+ */
+ EClass GENERATED = eINSTANCE.getGenerated();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute GENERATED__VALUE = eINSTANCE.getGenerated_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.NamedQueryImpl <em>Named Query</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.NamedQueryImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getNamedQuery()
+ * @generated
+ */
+ EClass NAMED_QUERY = eINSTANCE.getNamedQuery();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NAMED_QUERY__NAME = eINSTANCE.getNamedQuery_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Query</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NAMED_QUERY__QUERY = eINSTANCE.getNamedQuery_Query();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterImpl <em>Filter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getFilter()
+ * @generated
+ */
+ EClass FILTER = eINSTANCE.getFilter();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FILTER__NAME = eINSTANCE.getFilter_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Condition</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FILTER__CONDITION = eINSTANCE.getFilter_Condition();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParamDefImpl <em>Param Def</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParamDefImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getParamDef()
+ * @generated
+ */
+ EClass PARAM_DEF = eINSTANCE.getParamDef();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PARAM_DEF__NAME = eINSTANCE.getParamDef_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PARAM_DEF__TYPE = eINSTANCE.getParamDef_Type();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterDefImpl <em>Filter Def</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterDefImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getFilterDef()
+ * @generated
+ */
+ EClass FILTER_DEF = eINSTANCE.getFilterDef();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FILTER_DEF__NAME = eINSTANCE.getFilterDef_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Default Condition</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FILTER_DEF__DEFAULT_CONDITION = eINSTANCE.getFilterDef_DefaultCondition();
+
+ /**
+ * The meta object literal for the '<em><b>Parameters</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FILTER_DEF__PARAMETERS = eINSTANCE.getFilterDef_Parameters();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.DiscriminatorFormulaImpl <em>Discriminator Formula</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.DiscriminatorFormulaImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getDiscriminatorFormula()
+ * @generated
+ */
+ EClass DISCRIMINATOR_FORMULA = eINSTANCE.getDiscriminatorFormula();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DISCRIMINATOR_FORMULA__VALUE = eINSTANCE.getDiscriminatorFormula_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.NaturalIdImpl <em>Natural Id</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.NaturalIdImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getNaturalId()
+ * @generated
+ */
+ EClass NATURAL_ID = eINSTANCE.getNaturalId();
+
+ /**
+ * The meta object literal for the '<em><b>Mutable</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NATURAL_ID__MUTABLE = eINSTANCE.getNaturalId_Mutable();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.MapKeyManyToManyImpl <em>Map Key Many To Many</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.MapKeyManyToManyImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getMapKeyManyToMany()
+ * @generated
+ */
+ EClass MAP_KEY_MANY_TO_MANY = eINSTANCE.getMapKeyManyToMany();
+
+ /**
+ * The meta object literal for the '<em><b>Join Columns</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MAP_KEY_MANY_TO_MANY__JOIN_COLUMNS = eINSTANCE.getMapKeyManyToMany_JoinColumns();
+
+ /**
+ * The meta object literal for the '<em><b>Target Entity</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MAP_KEY_MANY_TO_MANY__TARGET_ENTITY = eINSTANCE.getMapKeyManyToMany_TargetEntity();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ForceDiscriminatorImpl <em>Force Discriminator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.ForceDiscriminatorImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getForceDiscriminator()
+ * @generated
+ */
+ EClass FORCE_DISCRIMINATOR = eINSTANCE.getForceDiscriminator();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ImmutableImpl <em>Immutable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.ImmutableImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getImmutable()
+ * @generated
+ */
+ EClass IMMUTABLE = eINSTANCE.getImmutable();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FormulaImpl <em>Formula</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.FormulaImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getFormula()
+ * @generated
+ */
+ EClass FORMULA = eINSTANCE.getFormula();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FORMULA__VALUE = eINSTANCE.getFormula_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.NotFoundImpl <em>Not Found</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.NotFoundImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getNotFound()
+ * @generated
+ */
+ EClass NOT_FOUND = eINSTANCE.getNotFound();
+
+ /**
+ * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NOT_FOUND__ACTION = eINSTANCE.getNotFound_Action();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbEntityImpl <em>Hb Entity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbEntityImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getHbEntity()
+ * @generated
+ */
+ EClass HB_ENTITY = eINSTANCE.getHbEntity();
+
+ /**
+ * The meta object literal for the '<em><b>Dynamic Insert</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HB_ENTITY__DYNAMIC_INSERT = eINSTANCE.getHbEntity_DynamicInsert();
+
+ /**
+ * The meta object literal for the '<em><b>Dynamic Update</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HB_ENTITY__DYNAMIC_UPDATE = eINSTANCE.getHbEntity_DynamicUpdate();
+
+ /**
+ * The meta object literal for the '<em><b>Select Before Update</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HB_ENTITY__SELECT_BEFORE_UPDATE = eINSTANCE.getHbEntity_SelectBeforeUpdate();
+
+ /**
+ * The meta object literal for the '<em><b>Mutable</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HB_ENTITY__MUTABLE = eINSTANCE.getHbEntity_Mutable();
+
+ /**
+ * The meta object literal for the '<em><b>Persister</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HB_ENTITY__PERSISTER = eINSTANCE.getHbEntity_Persister();
+
+ /**
+ * The meta object literal for the '<em><b>Optimistic Lock</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HB_ENTITY__OPTIMISTIC_LOCK = eINSTANCE.getHbEntity_OptimisticLock();
+
+ /**
+ * The meta object literal for the '<em><b>Polymorphism</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HB_ENTITY__POLYMORPHISM = eINSTANCE.getHbEntity_Polymorphism();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.BatchSizeImpl <em>Batch Size</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.BatchSizeImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getBatchSize()
+ * @generated
+ */
+ EClass BATCH_SIZE = eINSTANCE.getBatchSize();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BATCH_SIZE__SIZE = eINSTANCE.getBatchSize_Size();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyImpl <em>Any</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getAny()
+ * @generated
+ */
+ EClass ANY = eINSTANCE.getAny();
+
+ /**
+ * The meta object literal for the '<em><b>Meta Def</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ANY__META_DEF = eINSTANCE.getAny_MetaDef();
+
+ /**
+ * The meta object literal for the '<em><b>Meta Column</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ANY__META_COLUMN = eINSTANCE.getAny_MetaColumn();
+
+ /**
+ * The meta object literal for the '<em><b>Fetch</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ANY__FETCH = eINSTANCE.getAny_Fetch();
+
+ /**
+ * The meta object literal for the '<em><b>Optional</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ANY__OPTIONAL = eINSTANCE.getAny_Optional();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.MetaValueImpl <em>Meta Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.MetaValueImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getMetaValue()
+ * @generated
+ */
+ EClass META_VALUE = eINSTANCE.getMetaValue();
+
+ /**
+ * The meta object literal for the '<em><b>Target Entity</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute META_VALUE__TARGET_ENTITY = eINSTANCE.getMetaValue_TargetEntity();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute META_VALUE__VALUE = eINSTANCE.getMetaValue_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyMetaDefImpl <em>Any Meta Def</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyMetaDefImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getAnyMetaDef()
+ * @generated
+ */
+ EClass ANY_META_DEF = eINSTANCE.getAnyMetaDef();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ANY_META_DEF__NAME = eINSTANCE.getAnyMetaDef_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Meta Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ANY_META_DEF__META_TYPE = eINSTANCE.getAnyMetaDef_MetaType();
+
+ /**
+ * The meta object literal for the '<em><b>Id Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ANY_META_DEF__ID_TYPE = eINSTANCE.getAnyMetaDef_IdType();
+
+ /**
+ * The meta object literal for the '<em><b>Meta Values</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ANY_META_DEF__META_VALUES = eINSTANCE.getAnyMetaDef_MetaValues();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy <em>Cache Concurrency Strategy</em>}' enum.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getCacheConcurrencyStrategy()
+ * @generated
+ */
+ EEnum CACHE_CONCURRENCY_STRATEGY = eINSTANCE.getCacheConcurrencyStrategy();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType <em>Hb Fetch Type</em>}' enum.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getHbFetchType()
+ * @generated
+ */
+ EEnum HB_FETCH_TYPE = eINSTANCE.getHbFetchType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction <em>On Delete Action</em>}' enum.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getOnDeleteAction()
+ * @generated
+ */
+ EEnum ON_DELETE_ACTION = eINSTANCE.getOnDeleteAction();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime <em>Generation Time</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getGenerationTime()
+ * @generated
+ */
+ EEnum GENERATION_TIME = eINSTANCE.getGenerationTime();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction <em>Not Found Action</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getNotFoundAction()
+ * @generated
+ */
+ EEnum NOT_FOUND_ACTION = eINSTANCE.getNotFoundAction();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType <em>Optimistic Lock Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getOptimisticLockType()
+ * @generated
+ */
+ EEnum OPTIMISTIC_LOCK_TYPE = eINSTANCE.getOptimisticLockType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType <em>Polymorphism Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getPolymorphismType()
+ * @generated
+ */
+ EEnum POLYMORPHISM_TYPE = eINSTANCE.getPolymorphismType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType <em>Hb Cascade Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl#getHbCascadeType()
+ * @generated
+ */
+ EEnum HB_CASCADE_TYPE = eINSTANCE.getHbCascadeType();
+
+ }
+
+} // HbannotationPackage
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/IdBag.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/IdBag.java
new file mode 100755
index 000000000..96d6e94f7
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/IdBag.java
@@ -0,0 +1,104 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IdBag.java,v 1.6 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Id Bag</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#getGenerator <em>Generator</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getIdBag()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface IdBag extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Generator</b></em>' attribute.
+ * The default value is <code>"increment"</code>.
+ * <!-- 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.hibernate.hbannotation.HbannotationPackage#getIdBag_Generator()
+ * @model default="increment"
+ * @generated
+ */
+ String getGenerator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#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>Type</b></em>' attribute. The default value is <code>"long"</code>. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Type</em>' attribute.
+ * @see #setType(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotationPackage#getIdBag_Type()
+ * @model default="long"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see #getType()
+ * @generated
+ */
+ void setType(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.hibernate.hbannotation.HbannotationPackage#getIdBag_Table()
+ * @model
+ * @generated
+ */
+ String getTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag#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);
+
+} // IdBag
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Immutable.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Immutable.java
new file mode 100755
index 000000000..9dd0befd2
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Immutable.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Immutable.java,v 1.1 2008/07/12 13:10:33 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Immutable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getImmutable()
+ * @model annotation="teneo/internal/Target 0='EClass' 1='EReference'"
+ * @generated
+ */
+public interface Immutable extends HbAnnotation {
+} // Immutable
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Index.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Index.java
new file mode 100755
index 000000000..de5ce7f7e
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Index.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Index.java,v 1.2 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Index</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Index#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getIndex()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface Index extends HbAnnotation {
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getIndex_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Index#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);
+
+} // Index
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MapKey.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MapKey.java
new file mode 100755
index 000000000..5c11eea92
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MapKey.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MapKey.java,v 1.6 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Map Key</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.MapKey#getColumns <em>Columns</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getMapKey()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface MapKey extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Columns</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.annotations.pannotation.Column}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Columns</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>Columns</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getMapKey_Columns()
+ * @model containment="true" ordered="false"
+ * @generated
+ */
+ EList<Column> getColumns();
+
+} // MapKey
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MapKeyManyToMany.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MapKeyManyToMany.java
new file mode 100755
index 000000000..91bd31698
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MapKeyManyToMany.java
@@ -0,0 +1,72 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MapKeyManyToMany.java,v 1.2 2010/02/04 11:03:37 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Map Key Many To Many</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany#getJoinColumns <em>Join Columns</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany#getTargetEntity <em>Target Entity</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getMapKeyManyToMany()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EReference'"
+ * @generated
+ */
+public interface MapKeyManyToMany extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Join Columns</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.annotations.pannotation.JoinColumn}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Join Columns</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 Columns</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getMapKeyManyToMany_JoinColumns()
+ * @model containment="true" ordered="false"
+ * @generated
+ */
+ EList<JoinColumn> getJoinColumns();
+
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getMapKeyManyToMany_TargetEntity()
+ * @model
+ * @generated
+ */
+ String getTargetEntity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany#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);
+
+} // MapKeyManyToMany
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MetaValue.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MetaValue.java
new file mode 100644
index 000000000..34f831604
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/MetaValue.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MetaValue.java,v 1.1 2009/06/27 09:19:10 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Meta Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue#getTargetEntity <em>Target Entity</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getMetaValue()
+ * @model
+ * @generated
+ */
+public interface MetaValue extends HbAnnotation {
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getMetaValue_TargetEntity()
+ * @model
+ * @generated
+ */
+ String getTargetEntity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue#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);
+
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getMetaValue_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+} // MetaValue
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NamedQuery.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NamedQuery.java
new file mode 100755
index 000000000..6819a58f0
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NamedQuery.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NamedQuery.java,v 1.1 2008/03/30 20:55:12 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Named Query</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery#getQuery <em>Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getNamedQuery()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EClass'"
+ * @generated
+ */
+public interface NamedQuery extends HbAnnotation {
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getNamedQuery_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.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);
+
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getNamedQuery_Query()
+ * @model
+ * @generated
+ */
+ String getQuery();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.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);
+
+} // NamedQuery
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NaturalId.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NaturalId.java
new file mode 100755
index 000000000..d4b41ea95
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NaturalId.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NaturalId.java,v 1.2 2010/02/04 11:03:37 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Natural Id</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId#isMutable <em>Mutable</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getNaturalId()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface NaturalId extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Mutable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mutable</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mutable</em>' attribute.
+ * @see #setMutable(boolean)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getNaturalId_Mutable()
+ * @model required="true"
+ * @generated
+ */
+ boolean isMutable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId#isMutable <em>Mutable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mutable</em>' attribute.
+ * @see #isMutable()
+ * @generated
+ */
+ void setMutable(boolean value);
+
+} // NaturalId
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NotFound.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NotFound.java
new file mode 100755
index 000000000..8612d0eec
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NotFound.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NotFound.java,v 1.1 2008/08/04 05:15:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Not Found</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.NotFound#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getNotFound()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EReference'"
+ * @generated
+ */
+public interface NotFound extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Action</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Action</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Action</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction
+ * @see #setAction(NotFoundAction)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getNotFound_Action()
+ * @model required="true"
+ * @generated
+ */
+ NotFoundAction getAction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NotFound#getAction <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Action</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction
+ * @see #getAction()
+ * @generated
+ */
+ void setAction(NotFoundAction value);
+
+} // NotFound
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NotFoundAction.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NotFoundAction.java
new file mode 100755
index 000000000..852a50e69
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/NotFoundAction.java
@@ -0,0 +1,212 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NotFoundAction.java,v 1.1 2008/08/04 05:15:00 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+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>Not Found Action</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getNotFoundAction()
+ * @model
+ * @generated
+ */
+public enum NotFoundAction implements Enumerator {
+ /**
+ * The '<em><b>EXCEPTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EXCEPTION_VALUE
+ * @generated
+ * @ordered
+ */
+ EXCEPTION(0, "EXCEPTION", "EXCEPTION"),
+
+ /**
+ * The '<em><b>IGNORE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IGNORE_VALUE
+ * @generated
+ * @ordered
+ */
+ IGNORE(1, "IGNORE", "IGNORE");
+
+ /**
+ * The '<em><b>EXCEPTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EXCEPTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EXCEPTION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EXCEPTION_VALUE = 0;
+
+ /**
+ * The '<em><b>IGNORE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>IGNORE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #IGNORE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int IGNORE_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Not Found Action</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final NotFoundAction[] VALUES_ARRAY =
+ new NotFoundAction[] {
+ EXCEPTION,
+ IGNORE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Not Found Action</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<NotFoundAction> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Not Found Action</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NotFoundAction get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ NotFoundAction result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Not Found Action</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NotFoundAction getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ NotFoundAction result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Not Found Action</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NotFoundAction get(int value) {
+ switch (value) {
+ case EXCEPTION_VALUE: return EXCEPTION;
+ case IGNORE_VALUE: return IGNORE;
+ }
+ 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 NotFoundAction(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;
+ }
+
+} //NotFoundAction
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OnDelete.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OnDelete.java
new file mode 100755
index 000000000..1b97611a3
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OnDelete.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OnDelete.java,v 1.3 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>On Delete</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getOnDelete()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface OnDelete extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Action</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Action</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>Action</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction
+ * @see #setAction(OnDeleteAction)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getOnDelete_Action()
+ * @model
+ * @generated
+ */
+ OnDeleteAction getAction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete#getAction <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Action</em>' attribute.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction
+ * @see #getAction()
+ * @generated
+ */
+ void setAction(OnDeleteAction value);
+
+} // OnDelete
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OnDeleteAction.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OnDeleteAction.java
new file mode 100755
index 000000000..0d012f671
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OnDeleteAction.java
@@ -0,0 +1,211 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OnDeleteAction.java,v 1.3 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+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>On Delete Action</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getOnDeleteAction()
+ * @model
+ * @generated
+ */
+public enum OnDeleteAction implements Enumerator {
+ /**
+ * The '<em><b>NO ACTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_ACTION_VALUE
+ * @generated
+ * @ordered
+ */
+ NO_ACTION(0, "NO_ACTION", "NO_ACTION"),
+
+ /**
+ * The '<em><b>CASCADE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CASCADE_VALUE
+ * @generated
+ * @ordered
+ */
+ CASCADE(1, "CASCADE", "CASCADE");
+
+ /**
+ * The '<em><b>NO ACTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO ACTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_ACTION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO_ACTION_VALUE = 0;
+
+ /**
+ * The '<em><b>CASCADE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CASCADE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CASCADE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CASCADE_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>On Delete Action</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final OnDeleteAction[] VALUES_ARRAY = new OnDeleteAction[] {
+ NO_ACTION,
+ CASCADE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>On Delete Action</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<OnDeleteAction> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>On Delete Action</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OnDeleteAction get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ OnDeleteAction result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>On Delete Action</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OnDeleteAction getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ OnDeleteAction result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>On Delete Action</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OnDeleteAction get(int value) {
+ switch (value) {
+ case NO_ACTION_VALUE: return NO_ACTION;
+ case CASCADE_VALUE: return CASCADE;
+ }
+ 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 OnDeleteAction(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;
+ }
+
+} // OnDeleteAction
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OptimisticLockType.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OptimisticLockType.java
new file mode 100755
index 000000000..ac4286704
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/OptimisticLockType.java
@@ -0,0 +1,266 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OptimisticLockType.java,v 1.1 2008/08/26 21:19:08 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+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>Optimistic Lock Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getOptimisticLockType()
+ * @model
+ * @generated
+ */
+public enum OptimisticLockType implements Enumerator {
+ /**
+ * The '<em><b>ALL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ALL_VALUE
+ * @generated
+ * @ordered
+ */
+ ALL(0, "ALL", "ALL"),
+
+ /**
+ * The '<em><b>DIRTY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DIRTY_VALUE
+ * @generated
+ * @ordered
+ */
+ DIRTY(1, "DIRTY", "DIRTY"),
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(2, "NONE", "NONE"),
+
+ /**
+ * The '<em><b>VERSION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VERSION_VALUE
+ * @generated
+ * @ordered
+ */
+ VERSION(3, "VERSION", "VERSION");
+
+ /**
+ * The '<em><b>ALL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ALL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ALL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ALL_VALUE = 0;
+
+ /**
+ * The '<em><b>DIRTY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DIRTY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DIRTY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DIRTY_VALUE = 1;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 2;
+
+ /**
+ * The '<em><b>VERSION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VERSION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VERSION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VERSION_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Optimistic Lock Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final OptimisticLockType[] VALUES_ARRAY =
+ new OptimisticLockType[] {
+ ALL,
+ DIRTY,
+ NONE,
+ VERSION,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Optimistic Lock Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<OptimisticLockType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Optimistic Lock Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OptimisticLockType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ OptimisticLockType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Optimistic Lock Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OptimisticLockType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ OptimisticLockType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Optimistic Lock Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OptimisticLockType get(int value) {
+ switch (value) {
+ case ALL_VALUE: return ALL;
+ case DIRTY_VALUE: return DIRTY;
+ case NONE_VALUE: return NONE;
+ case VERSION_VALUE: return VERSION;
+ }
+ 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 OptimisticLockType(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;
+ }
+
+} //OptimisticLockType
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/ParamDef.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/ParamDef.java
new file mode 100755
index 000000000..ff1530e92
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/ParamDef.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ParamDef.java,v 1.1 2008/04/23 15:44:26 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Param Def</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getParamDef()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EClass' 1='EReference'"
+ * @generated
+ */
+public interface ParamDef extends HbAnnotation {
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getParamDef_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef#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>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Type</em>' attribute.
+ * @see #setType(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getParamDef_Type()
+ * @model required="true"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see #getType()
+ * @generated
+ */
+ void setType(String value);
+
+} // ParamDef
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Parameter.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Parameter.java
new file mode 100755
index 000000000..7ec6d67da
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Parameter.java
@@ -0,0 +1,76 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Parameter.java,v 1.5 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Parameter</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getParameter()
+ * @model annotation="http://annotation.elver.org/internal/Collection name='Parameters' packageNS='http://www.eclipse.org/emf/teneo/2006/HbAnnotation'"
+ * annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature' 1='EClass' 2='EPackage'"
+ * @generated
+ */
+public interface Parameter extends HbAnnotation {
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getParameter_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter#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>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getParameter_Value()
+ * @model required="true"
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+} // Parameter
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/PolymorphismType.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/PolymorphismType.java
new file mode 100755
index 000000000..172c39839
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/PolymorphismType.java
@@ -0,0 +1,212 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PolymorphismType.java,v 1.1 2008/08/26 21:19:08 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+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>Polymorphism Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getPolymorphismType()
+ * @model
+ * @generated
+ */
+public enum PolymorphismType implements Enumerator {
+ /**
+ * The '<em><b>IMPLICIT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IMPLICIT_VALUE
+ * @generated
+ * @ordered
+ */
+ IMPLICIT(0, "IMPLICIT", "IMPLICIT"),
+
+ /**
+ * The '<em><b>EXPLICIT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EXPLICIT_VALUE
+ * @generated
+ * @ordered
+ */
+ EXPLICIT(1, "EXPLICIT", "EXPLICIT");
+
+ /**
+ * The '<em><b>IMPLICIT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>IMPLICIT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #IMPLICIT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int IMPLICIT_VALUE = 0;
+
+ /**
+ * The '<em><b>EXPLICIT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EXPLICIT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EXPLICIT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EXPLICIT_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Polymorphism Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final PolymorphismType[] VALUES_ARRAY =
+ new PolymorphismType[] {
+ IMPLICIT,
+ EXPLICIT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Polymorphism Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<PolymorphismType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Polymorphism Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PolymorphismType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PolymorphismType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Polymorphism Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PolymorphismType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PolymorphismType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Polymorphism Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PolymorphismType get(int value) {
+ switch (value) {
+ case IMPLICIT_VALUE: return IMPLICIT;
+ case EXPLICIT_VALUE: return EXPLICIT;
+ }
+ 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 PolymorphismType(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;
+ }
+
+} //PolymorphismType
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Proxy.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Proxy.java
new file mode 100755
index 000000000..1be40cf5f
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Proxy.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Proxy.java,v 1.3 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Proxy</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Proxy#getProxyClass <em>Proxy Class</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Proxy#isLazy <em>Lazy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getProxy()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EClass'"
+ * @generated
+ */
+public interface Proxy extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Proxy Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Proxy 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>Proxy Class</em>' attribute.
+ * @see #setProxyClass(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getProxy_ProxyClass()
+ * @model
+ * @generated
+ */
+ String getProxyClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Proxy#getProxyClass <em>Proxy Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Proxy Class</em>' attribute.
+ * @see #getProxyClass()
+ * @generated
+ */
+ void setProxyClass(String value);
+
+ /**
+ * Returns the value of the '<em><b>Lazy</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lazy</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lazy</em>' attribute.
+ * @see #setLazy(boolean)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getProxy_Lazy()
+ * @model default="true"
+ * @generated
+ */
+ boolean isLazy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Proxy#isLazy <em>Lazy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lazy</em>' attribute.
+ * @see #isLazy()
+ * @generated
+ */
+ void setLazy(boolean value);
+
+} // Proxy
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Type.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Type.java
new file mode 100755
index 000000000..fbcfcee1e
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Type.java
@@ -0,0 +1,68 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Type.java,v 1.6 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Type</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Type#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Type#getParameters <em>Parameters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getType()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface Type extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Type</em>' attribute.
+ * @see #setType(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getType_Type()
+ * @model required="true"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Type#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see #getType()
+ * @generated
+ */
+ void setType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Parameters</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parameters</em>' reference list isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parameters</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getType_Parameters()
+ * @model
+ * @generated
+ */
+ EList<Parameter> getParameters();
+
+} // Type
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/TypeDef.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/TypeDef.java
new file mode 100755
index 000000000..b7adbee55
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/TypeDef.java
@@ -0,0 +1,94 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TypeDef.java,v 1.5 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Type Def</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef#getParameters <em>Parameters</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef#getTypeClass <em>Type Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getTypeDef()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature' 1='EClass' 2='EPackage'"
+ * @generated
+ */
+public interface TypeDef extends HbAnnotation {
+ /**
+ * 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.hibernate.hbannotation.HbannotationPackage#getTypeDef_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef#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>Parameters</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parameters</em>' reference list isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parameters</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getTypeDef_Parameters()
+ * @model
+ * @generated
+ */
+ EList<Parameter> getParameters();
+
+ /**
+ * Returns the value of the '<em><b>Type Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type 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>Type Class</em>' attribute.
+ * @see #setTypeClass(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getTypeDef_TypeClass()
+ * @model required="true"
+ * @generated
+ */
+ String getTypeClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef#getTypeClass <em>Type Class</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type Class</em>' attribute.
+ * @see #getTypeClass()
+ * @generated
+ */
+ void setTypeClass(String value);
+
+} // TypeDef
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Where.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Where.java
new file mode 100755
index 000000000..e2706bc00
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/Where.java
@@ -0,0 +1,49 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Where.java,v 1.5 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Where</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.Where#getClause <em>Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getWhere()
+ * @model annotation="http://annotation.elver.org/internal/Target 0='EStructuralFeature'"
+ * @generated
+ */
+public interface Where extends HbAnnotation {
+ /**
+ * Returns the value of the '<em><b>Clause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Clause</em>' attribute isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Clause</em>' attribute.
+ * @see #setClause(String)
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#getWhere_Clause()
+ * @model
+ * @generated
+ */
+ String getClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Where#getClause <em>Clause</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Clause</em>' attribute.
+ * @see #getClause()
+ * @generated
+ */
+ void setClause(String value);
+
+} // Where
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/AnyImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/AnyImpl.java
new file mode 100644
index 000000000..060e76a80
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/AnyImpl.java
@@ -0,0 +1,353 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AnyImpl.java,v 1.2 2010/02/04 11:03:39 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.annotations.pannotation.FetchType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Any;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Any</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyImpl#getMetaDef <em>Meta Def</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyImpl#getMetaColumn <em>Meta Column</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyImpl#getFetch <em>Fetch</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyImpl#isOptional <em>Optional</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AnyImpl extends HbAnnotationImpl implements Any {
+ /**
+ * The default value of the '{@link #getMetaDef() <em>Meta Def</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetaDef()
+ * @generated
+ * @ordered
+ */
+ protected static final String META_DEF_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMetaDef() <em>Meta Def</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetaDef()
+ * @generated
+ * @ordered
+ */
+ protected String metaDef = META_DEF_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getMetaColumn() <em>Meta Column</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetaColumn()
+ * @generated
+ * @ordered
+ */
+ protected Column metaColumn;
+
+ /**
+ * The default value of the '{@link #getFetch() <em>Fetch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFetch()
+ * @generated
+ * @ordered
+ */
+ protected static final FetchType FETCH_EDEFAULT = FetchType.EAGER;
+
+ /**
+ * The cached value of the '{@link #getFetch() <em>Fetch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFetch()
+ * @generated
+ * @ordered
+ */
+ protected FetchType fetch = FETCH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isOptional() <em>Optional</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOptional()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean OPTIONAL_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isOptional() <em>Optional</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOptional()
+ * @generated
+ * @ordered
+ */
+ protected boolean optional = OPTIONAL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AnyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.ANY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getMetaDef() {
+ return metaDef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMetaDef(String newMetaDef) {
+ String oldMetaDef = metaDef;
+ metaDef = newMetaDef;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.ANY__META_DEF, oldMetaDef, metaDef));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Column getMetaColumn() {
+ return metaColumn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMetaColumn(Column newMetaColumn, NotificationChain msgs) {
+ Column oldMetaColumn = metaColumn;
+ metaColumn = newMetaColumn;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbannotationPackage.ANY__META_COLUMN, oldMetaColumn, newMetaColumn);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMetaColumn(Column newMetaColumn) {
+ if (newMetaColumn != metaColumn) {
+ NotificationChain msgs = null;
+ if (metaColumn != null)
+ msgs = ((InternalEObject)metaColumn).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbannotationPackage.ANY__META_COLUMN, null, msgs);
+ if (newMetaColumn != null)
+ msgs = ((InternalEObject)newMetaColumn).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbannotationPackage.ANY__META_COLUMN, null, msgs);
+ msgs = basicSetMetaColumn(newMetaColumn, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.ANY__META_COLUMN, newMetaColumn, newMetaColumn));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FetchType getFetch() {
+ return fetch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFetch(FetchType newFetch) {
+ FetchType oldFetch = fetch;
+ fetch = newFetch == null ? FETCH_EDEFAULT : newFetch;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.ANY__FETCH, oldFetch, fetch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOptional() {
+ return optional;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOptional(boolean newOptional) {
+ boolean oldOptional = optional;
+ optional = newOptional;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.ANY__OPTIONAL, oldOptional, optional));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case HbannotationPackage.ANY__META_COLUMN:
+ return basicSetMetaColumn(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.ANY__META_DEF:
+ return getMetaDef();
+ case HbannotationPackage.ANY__META_COLUMN:
+ return getMetaColumn();
+ case HbannotationPackage.ANY__FETCH:
+ return getFetch();
+ case HbannotationPackage.ANY__OPTIONAL:
+ return isOptional();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.ANY__META_DEF:
+ setMetaDef((String)newValue);
+ return;
+ case HbannotationPackage.ANY__META_COLUMN:
+ setMetaColumn((Column)newValue);
+ return;
+ case HbannotationPackage.ANY__FETCH:
+ setFetch((FetchType)newValue);
+ return;
+ case HbannotationPackage.ANY__OPTIONAL:
+ setOptional((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.ANY__META_DEF:
+ setMetaDef(META_DEF_EDEFAULT);
+ return;
+ case HbannotationPackage.ANY__META_COLUMN:
+ setMetaColumn((Column)null);
+ return;
+ case HbannotationPackage.ANY__FETCH:
+ setFetch(FETCH_EDEFAULT);
+ return;
+ case HbannotationPackage.ANY__OPTIONAL:
+ setOptional(OPTIONAL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.ANY__META_DEF:
+ return META_DEF_EDEFAULT == null ? metaDef != null : !META_DEF_EDEFAULT.equals(metaDef);
+ case HbannotationPackage.ANY__META_COLUMN:
+ return metaColumn != null;
+ case HbannotationPackage.ANY__FETCH:
+ return fetch != FETCH_EDEFAULT;
+ case HbannotationPackage.ANY__OPTIONAL:
+ return optional != OPTIONAL_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (metaDef: ");
+ result.append(metaDef);
+ result.append(", fetch: ");
+ result.append(fetch);
+ result.append(", optional: ");
+ result.append(optional);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AnyImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/AnyMetaDefImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/AnyMetaDefImpl.java
new file mode 100644
index 000000000..fd168ef8e
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/AnyMetaDefImpl.java
@@ -0,0 +1,328 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AnyMetaDefImpl.java,v 1.3 2010/02/04 11:03:40 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Any Meta Def</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyMetaDefImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyMetaDefImpl#getMetaType <em>Meta Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyMetaDefImpl#getIdType <em>Id Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.AnyMetaDefImpl#getMetaValues <em>Meta Values</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AnyMetaDefImpl extends HbAnnotationImpl implements AnyMetaDef {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMetaType() <em>Meta Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetaType()
+ * @generated
+ * @ordered
+ */
+ protected static final String META_TYPE_EDEFAULT = "string";
+
+ /**
+ * The cached value of the '{@link #getMetaType() <em>Meta Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetaType()
+ * @generated
+ * @ordered
+ */
+ protected String metaType = META_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIdType() <em>Id Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIdType()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_TYPE_EDEFAULT = "string";
+
+ /**
+ * The cached value of the '{@link #getIdType() <em>Id Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIdType()
+ * @generated
+ * @ordered
+ */
+ protected String idType = ID_TYPE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getMetaValues() <em>Meta Values</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetaValues()
+ * @generated
+ * @ordered
+ */
+ protected EList<MetaValue> metaValues;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AnyMetaDefImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.ANY_META_DEF;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.ANY_META_DEF__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getMetaType() {
+ return metaType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMetaType(String newMetaType) {
+ String oldMetaType = metaType;
+ metaType = newMetaType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.ANY_META_DEF__META_TYPE, oldMetaType, metaType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getIdType() {
+ return idType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIdType(String newIdType) {
+ String oldIdType = idType;
+ idType = newIdType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.ANY_META_DEF__ID_TYPE, oldIdType, idType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<MetaValue> getMetaValues() {
+ if (metaValues == null) {
+ metaValues = new EObjectContainmentEList<MetaValue>(MetaValue.class, this, HbannotationPackage.ANY_META_DEF__META_VALUES);
+ }
+ return metaValues;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case HbannotationPackage.ANY_META_DEF__META_VALUES:
+ return ((InternalEList<?>)getMetaValues()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.ANY_META_DEF__NAME:
+ return getName();
+ case HbannotationPackage.ANY_META_DEF__META_TYPE:
+ return getMetaType();
+ case HbannotationPackage.ANY_META_DEF__ID_TYPE:
+ return getIdType();
+ case HbannotationPackage.ANY_META_DEF__META_VALUES:
+ return getMetaValues();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.ANY_META_DEF__NAME:
+ setName((String)newValue);
+ return;
+ case HbannotationPackage.ANY_META_DEF__META_TYPE:
+ setMetaType((String)newValue);
+ return;
+ case HbannotationPackage.ANY_META_DEF__ID_TYPE:
+ setIdType((String)newValue);
+ return;
+ case HbannotationPackage.ANY_META_DEF__META_VALUES:
+ getMetaValues().clear();
+ getMetaValues().addAll((Collection<? extends MetaValue>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.ANY_META_DEF__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case HbannotationPackage.ANY_META_DEF__META_TYPE:
+ setMetaType(META_TYPE_EDEFAULT);
+ return;
+ case HbannotationPackage.ANY_META_DEF__ID_TYPE:
+ setIdType(ID_TYPE_EDEFAULT);
+ return;
+ case HbannotationPackage.ANY_META_DEF__META_VALUES:
+ getMetaValues().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.ANY_META_DEF__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case HbannotationPackage.ANY_META_DEF__META_TYPE:
+ return META_TYPE_EDEFAULT == null ? metaType != null : !META_TYPE_EDEFAULT.equals(metaType);
+ case HbannotationPackage.ANY_META_DEF__ID_TYPE:
+ return ID_TYPE_EDEFAULT == null ? idType != null : !ID_TYPE_EDEFAULT.equals(idType);
+ case HbannotationPackage.ANY_META_DEF__META_VALUES:
+ return metaValues != null && !metaValues.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", metaType: ");
+ result.append(metaType);
+ result.append(", idType: ");
+ result.append(idType);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AnyMetaDefImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/BatchSizeImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/BatchSizeImpl.java
new file mode 100644
index 000000000..1a81c4096
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/BatchSizeImpl.java
@@ -0,0 +1,163 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: BatchSizeImpl.java,v 1.3 2010/02/04 11:03:42 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Batch Size</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.BatchSizeImpl#getSize <em>Size</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BatchSizeImpl extends HbAnnotationImpl implements BatchSize {
+ /**
+ * The default value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected static final int SIZE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected int size = SIZE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BatchSizeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.BATCH_SIZE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getSize() {
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSize(int newSize) {
+ int oldSize = size;
+ size = newSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.BATCH_SIZE__SIZE, oldSize, size));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.BATCH_SIZE__SIZE:
+ return getSize();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.BATCH_SIZE__SIZE:
+ setSize((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.BATCH_SIZE__SIZE:
+ setSize(SIZE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.BATCH_SIZE__SIZE:
+ return size != SIZE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (size: ");
+ result.append(size);
+ result.append(')');
+ return result.toString();
+ }
+
+} //BatchSizeImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CacheImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CacheImpl.java
new file mode 100755
index 000000000..a28cd9ff0
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CacheImpl.java
@@ -0,0 +1,272 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CacheImpl.java,v 1.8 2008/01/18 06:21:36 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cache</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CacheImpl#getUsage <em>Usage</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CacheImpl#getRegion <em>Region</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CacheImpl#getInclude <em>Include</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CacheImpl extends HbAnnotationImpl implements Cache {
+ /**
+ * The default value of the '{@link #getUsage() <em>Usage</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUsage()
+ * @generated
+ * @ordered
+ */
+ protected static final CacheConcurrencyStrategy USAGE_EDEFAULT = CacheConcurrencyStrategy.NONE;
+
+ /**
+ * The cached value of the '{@link #getUsage() <em>Usage</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUsage()
+ * @generated
+ * @ordered
+ */
+ protected CacheConcurrencyStrategy usage = USAGE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRegion() <em>Region</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRegion()
+ * @generated
+ * @ordered
+ */
+ protected static final String REGION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRegion() <em>Region</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRegion()
+ * @generated
+ * @ordered
+ */
+ protected String region = REGION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getInclude() <em>Include</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInclude()
+ * @generated
+ * @ordered
+ */
+ protected static final String INCLUDE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getInclude() <em>Include</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInclude()
+ * @generated
+ * @ordered
+ */
+ protected String include = INCLUDE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CacheImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.CACHE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CacheConcurrencyStrategy getUsage() {
+ return usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUsage(CacheConcurrencyStrategy newUsage) {
+ CacheConcurrencyStrategy oldUsage = usage;
+ usage = newUsage == null ? USAGE_EDEFAULT : newUsage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.CACHE__USAGE, oldUsage, usage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRegion() {
+ return region;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRegion(String newRegion) {
+ String oldRegion = region;
+ region = newRegion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.CACHE__REGION, oldRegion, region));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getInclude() {
+ return include;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInclude(String newInclude) {
+ String oldInclude = include;
+ include = newInclude;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.CACHE__INCLUDE, oldInclude, include));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.CACHE__USAGE:
+ return getUsage();
+ case HbannotationPackage.CACHE__REGION:
+ return getRegion();
+ case HbannotationPackage.CACHE__INCLUDE:
+ return getInclude();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.CACHE__USAGE:
+ setUsage((CacheConcurrencyStrategy)newValue);
+ return;
+ case HbannotationPackage.CACHE__REGION:
+ setRegion((String)newValue);
+ return;
+ case HbannotationPackage.CACHE__INCLUDE:
+ setInclude((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.CACHE__USAGE:
+ setUsage(USAGE_EDEFAULT);
+ return;
+ case HbannotationPackage.CACHE__REGION:
+ setRegion(REGION_EDEFAULT);
+ return;
+ case HbannotationPackage.CACHE__INCLUDE:
+ setInclude(INCLUDE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.CACHE__USAGE:
+ return usage != USAGE_EDEFAULT;
+ case HbannotationPackage.CACHE__REGION:
+ return REGION_EDEFAULT == null ? region != null : !REGION_EDEFAULT.equals(region);
+ case HbannotationPackage.CACHE__INCLUDE:
+ return INCLUDE_EDEFAULT == null ? include != null : !INCLUDE_EDEFAULT.equals(include);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (usage: ");
+ result.append(usage);
+ result.append(", region: ");
+ result.append(region);
+ result.append(", include: ");
+ result.append(include);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CacheImpl \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CascadeImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CascadeImpl.java
new file mode 100755
index 000000000..ea740b3de
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CascadeImpl.java
@@ -0,0 +1,149 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CascadeImpl.java,v 1.9 2010/02/04 11:03:43 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cascade</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CascadeImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CascadeImpl extends HbAnnotationImpl implements Cascade {
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected EList<HbCascadeType> value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CascadeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.CASCADE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<HbCascadeType> getValue() {
+ if (value == null) {
+ value = new EDataTypeUniqueEList<HbCascadeType>(HbCascadeType.class, this, HbannotationPackage.CASCADE__VALUE);
+ }
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.CASCADE__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.CASCADE__VALUE:
+ getValue().clear();
+ getValue().addAll((Collection<? extends HbCascadeType>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.CASCADE__VALUE:
+ getValue().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.CASCADE__VALUE:
+ return value != null && !value.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CascadeImpl \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CollectionOfElementsImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CollectionOfElementsImpl.java
new file mode 100755
index 000000000..6291bfe5c
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/CollectionOfElementsImpl.java
@@ -0,0 +1,218 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CollectionOfElementsImpl.java,v 1.8 2008/01/18 06:21:36 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.annotations.pannotation.FetchType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Collection Of Elements</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CollectionOfElementsImpl#getTargetElement <em>Target Element</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.CollectionOfElementsImpl#getFetch <em>Fetch</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CollectionOfElementsImpl extends HbAnnotationImpl implements CollectionOfElements {
+ /**
+ * The default value of the '{@link #getTargetElement() <em>Target Element</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetElement()
+ * @generated
+ * @ordered
+ */
+ protected static final String TARGET_ELEMENT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTargetElement() <em>Target Element</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetElement()
+ * @generated
+ * @ordered
+ */
+ protected String targetElement = TARGET_ELEMENT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFetch() <em>Fetch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFetch()
+ * @generated
+ * @ordered
+ */
+ protected static final FetchType FETCH_EDEFAULT = FetchType.LAZY;
+
+ /**
+ * The cached value of the '{@link #getFetch() <em>Fetch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFetch()
+ * @generated
+ * @ordered
+ */
+ protected FetchType fetch = FETCH_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CollectionOfElementsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.COLLECTION_OF_ELEMENTS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTargetElement() {
+ return targetElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTargetElement(String newTargetElement) {
+ String oldTargetElement = targetElement;
+ targetElement = newTargetElement;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.COLLECTION_OF_ELEMENTS__TARGET_ELEMENT, oldTargetElement, targetElement));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FetchType getFetch() {
+ return fetch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFetch(FetchType newFetch) {
+ FetchType oldFetch = fetch;
+ fetch = newFetch == null ? FETCH_EDEFAULT : newFetch;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.COLLECTION_OF_ELEMENTS__FETCH, oldFetch, fetch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.COLLECTION_OF_ELEMENTS__TARGET_ELEMENT:
+ return getTargetElement();
+ case HbannotationPackage.COLLECTION_OF_ELEMENTS__FETCH:
+ return getFetch();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.COLLECTION_OF_ELEMENTS__TARGET_ELEMENT:
+ setTargetElement((String)newValue);
+ return;
+ case HbannotationPackage.COLLECTION_OF_ELEMENTS__FETCH:
+ setFetch((FetchType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.COLLECTION_OF_ELEMENTS__TARGET_ELEMENT:
+ setTargetElement(TARGET_ELEMENT_EDEFAULT);
+ return;
+ case HbannotationPackage.COLLECTION_OF_ELEMENTS__FETCH:
+ setFetch(FETCH_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.COLLECTION_OF_ELEMENTS__TARGET_ELEMENT:
+ return TARGET_ELEMENT_EDEFAULT == null ? targetElement != null : !TARGET_ELEMENT_EDEFAULT.equals(targetElement);
+ case HbannotationPackage.COLLECTION_OF_ELEMENTS__FETCH:
+ return fetch != FETCH_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (targetElement: ");
+ result.append(targetElement);
+ result.append(", fetch: ");
+ result.append(fetch);
+ result.append(')');
+ return result.toString();
+ }
+
+} // CollectionOfElementsImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/DiscriminatorFormulaImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/DiscriminatorFormulaImpl.java
new file mode 100755
index 000000000..d8f895bf7
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/DiscriminatorFormulaImpl.java
@@ -0,0 +1,163 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DiscriminatorFormulaImpl.java,v 1.2 2010/02/04 11:03:43 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Discriminator Formula</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.DiscriminatorFormulaImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DiscriminatorFormulaImpl extends HbAnnotationImpl implements DiscriminatorFormula {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DiscriminatorFormulaImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.DISCRIMINATOR_FORMULA;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.DISCRIMINATOR_FORMULA__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.DISCRIMINATOR_FORMULA__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.DISCRIMINATOR_FORMULA__VALUE:
+ setValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.DISCRIMINATOR_FORMULA__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.DISCRIMINATOR_FORMULA__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DiscriminatorFormulaImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FetchImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FetchImpl.java
new file mode 100755
index 000000000..f0d996877
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FetchImpl.java
@@ -0,0 +1,164 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FetchImpl.java,v 1.8 2008/01/18 06:21:36 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Fetch;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Fetch</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FetchImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FetchImpl extends HbAnnotationImpl implements Fetch {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final HbFetchType VALUE_EDEFAULT = HbFetchType.JOIN;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected HbFetchType value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FetchImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.FETCH;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbFetchType getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(HbFetchType newValue) {
+ HbFetchType oldValue = value;
+ value = newValue == null ? VALUE_EDEFAULT : newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.FETCH__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.FETCH__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.FETCH__VALUE:
+ setValue((HbFetchType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.FETCH__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.FETCH__VALUE:
+ return value != VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FetchImpl \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FilterDefImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FilterDefImpl.java
new file mode 100755
index 000000000..c597ffb54
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FilterDefImpl.java
@@ -0,0 +1,257 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FilterDefImpl.java,v 1.2 2010/02/04 11:03:39 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Filter Def</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterDefImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterDefImpl#getDefaultCondition <em>Default Condition</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterDefImpl#getParameters <em>Parameters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FilterDefImpl extends HbAnnotationImpl implements FilterDef {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDefaultCondition() <em>Default Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultCondition()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFAULT_CONDITION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDefaultCondition() <em>Default Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultCondition()
+ * @generated
+ * @ordered
+ */
+ protected String defaultCondition = DEFAULT_CONDITION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getParameters() <em>Parameters</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameters()
+ * @generated
+ * @ordered
+ */
+ protected EList<ParamDef> parameters;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FilterDefImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.FILTER_DEF;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.FILTER_DEF__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDefaultCondition() {
+ return defaultCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefaultCondition(String newDefaultCondition) {
+ String oldDefaultCondition = defaultCondition;
+ defaultCondition = newDefaultCondition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.FILTER_DEF__DEFAULT_CONDITION, oldDefaultCondition, defaultCondition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ParamDef> getParameters() {
+ if (parameters == null) {
+ parameters = new EObjectResolvingEList<ParamDef>(ParamDef.class, this, HbannotationPackage.FILTER_DEF__PARAMETERS);
+ }
+ return parameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.FILTER_DEF__NAME:
+ return getName();
+ case HbannotationPackage.FILTER_DEF__DEFAULT_CONDITION:
+ return getDefaultCondition();
+ case HbannotationPackage.FILTER_DEF__PARAMETERS:
+ return getParameters();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.FILTER_DEF__NAME:
+ setName((String)newValue);
+ return;
+ case HbannotationPackage.FILTER_DEF__DEFAULT_CONDITION:
+ setDefaultCondition((String)newValue);
+ return;
+ case HbannotationPackage.FILTER_DEF__PARAMETERS:
+ getParameters().clear();
+ getParameters().addAll((Collection<? extends ParamDef>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.FILTER_DEF__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case HbannotationPackage.FILTER_DEF__DEFAULT_CONDITION:
+ setDefaultCondition(DEFAULT_CONDITION_EDEFAULT);
+ return;
+ case HbannotationPackage.FILTER_DEF__PARAMETERS:
+ getParameters().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.FILTER_DEF__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case HbannotationPackage.FILTER_DEF__DEFAULT_CONDITION:
+ return DEFAULT_CONDITION_EDEFAULT == null ? defaultCondition != null : !DEFAULT_CONDITION_EDEFAULT.equals(defaultCondition);
+ case HbannotationPackage.FILTER_DEF__PARAMETERS:
+ return parameters != null && !parameters.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", defaultCondition: ");
+ result.append(defaultCondition);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FilterDefImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FilterImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FilterImpl.java
new file mode 100755
index 000000000..de27d3b76
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FilterImpl.java
@@ -0,0 +1,217 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FilterImpl.java,v 1.2 2010/02/04 11:03:39 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Filter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FilterImpl#getCondition <em>Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FilterImpl extends HbAnnotationImpl implements Filter {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCondition() <em>Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCondition()
+ * @generated
+ * @ordered
+ */
+ protected static final String CONDITION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCondition() <em>Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCondition()
+ * @generated
+ * @ordered
+ */
+ protected String condition = CONDITION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FilterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.FILTER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.FILTER__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCondition() {
+ return condition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCondition(String newCondition) {
+ String oldCondition = condition;
+ condition = newCondition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.FILTER__CONDITION, oldCondition, condition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.FILTER__NAME:
+ return getName();
+ case HbannotationPackage.FILTER__CONDITION:
+ return getCondition();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.FILTER__NAME:
+ setName((String)newValue);
+ return;
+ case HbannotationPackage.FILTER__CONDITION:
+ setCondition((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.FILTER__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case HbannotationPackage.FILTER__CONDITION:
+ setCondition(CONDITION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.FILTER__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case HbannotationPackage.FILTER__CONDITION:
+ return CONDITION_EDEFAULT == null ? condition != null : !CONDITION_EDEFAULT.equals(condition);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", condition: ");
+ result.append(condition);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FilterImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ForceDiscriminatorImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ForceDiscriminatorImpl.java
new file mode 100755
index 000000000..d6c631f89
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ForceDiscriminatorImpl.java
@@ -0,0 +1,42 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ForceDiscriminatorImpl.java,v 1.2 2010/02/04 11:03:39 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Force Discriminator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ForceDiscriminatorImpl extends HbAnnotationImpl implements ForceDiscriminator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ForceDiscriminatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.FORCE_DISCRIMINATOR;
+ }
+
+} //ForceDiscriminatorImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FormulaImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FormulaImpl.java
new file mode 100755
index 000000000..da2fa966a
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/FormulaImpl.java
@@ -0,0 +1,163 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FormulaImpl.java,v 1.2 2010/02/04 11:03:43 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Formula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Formula</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.FormulaImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FormulaImpl extends HbAnnotationImpl implements Formula {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FormulaImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.FORMULA;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.FORMULA__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.FORMULA__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.FORMULA__VALUE:
+ setValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.FORMULA__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.FORMULA__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FormulaImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/GeneratedImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/GeneratedImpl.java
new file mode 100755
index 000000000..c34aeace1
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/GeneratedImpl.java
@@ -0,0 +1,164 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GeneratedImpl.java,v 1.3 2008/01/18 06:21:36 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Generated;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generated</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.GeneratedImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GeneratedImpl extends HbAnnotationImpl implements Generated {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final GenerationTime VALUE_EDEFAULT = GenerationTime.NEVER;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected GenerationTime value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GeneratedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.GENERATED;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenerationTime getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(GenerationTime newValue) {
+ GenerationTime oldValue = value;
+ value = newValue == null ? VALUE_EDEFAULT : newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.GENERATED__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.GENERATED__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.GENERATED__VALUE:
+ setValue((GenerationTime)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.GENERATED__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.GENERATED__VALUE:
+ return value != VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //GeneratedImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/GenericGeneratorImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/GenericGeneratorImpl.java
new file mode 100755
index 000000000..6fe8e5ccf
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/GenericGeneratorImpl.java
@@ -0,0 +1,257 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GenericGeneratorImpl.java,v 1.7 2008/01/18 06:21:36 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generic Generator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.GenericGeneratorImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.GenericGeneratorImpl#getStrategy <em>Strategy</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.GenericGeneratorImpl#getParameters <em>Parameters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GenericGeneratorImpl extends HbAnnotationImpl implements GenericGenerator {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getStrategy() <em>Strategy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStrategy()
+ * @generated
+ * @ordered
+ */
+ protected static final String STRATEGY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStrategy() <em>Strategy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStrategy()
+ * @generated
+ * @ordered
+ */
+ protected String strategy = STRATEGY_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getParameters() <em>Parameters</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameters()
+ * @generated
+ * @ordered
+ */
+ protected EList<Parameter> parameters;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenericGeneratorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.GENERIC_GENERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.GENERIC_GENERATOR__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getStrategy() {
+ return strategy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStrategy(String newStrategy) {
+ String oldStrategy = strategy;
+ strategy = newStrategy;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.GENERIC_GENERATOR__STRATEGY, oldStrategy, strategy));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Parameter> getParameters() {
+ if (parameters == null) {
+ parameters = new EObjectResolvingEList<Parameter>(Parameter.class, this, HbannotationPackage.GENERIC_GENERATOR__PARAMETERS);
+ }
+ return parameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.GENERIC_GENERATOR__NAME:
+ return getName();
+ case HbannotationPackage.GENERIC_GENERATOR__STRATEGY:
+ return getStrategy();
+ case HbannotationPackage.GENERIC_GENERATOR__PARAMETERS:
+ return getParameters();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.GENERIC_GENERATOR__NAME:
+ setName((String)newValue);
+ return;
+ case HbannotationPackage.GENERIC_GENERATOR__STRATEGY:
+ setStrategy((String)newValue);
+ return;
+ case HbannotationPackage.GENERIC_GENERATOR__PARAMETERS:
+ getParameters().clear();
+ getParameters().addAll((Collection<? extends Parameter>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.GENERIC_GENERATOR__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case HbannotationPackage.GENERIC_GENERATOR__STRATEGY:
+ setStrategy(STRATEGY_EDEFAULT);
+ return;
+ case HbannotationPackage.GENERIC_GENERATOR__PARAMETERS:
+ getParameters().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.GENERIC_GENERATOR__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case HbannotationPackage.GENERIC_GENERATOR__STRATEGY:
+ return STRATEGY_EDEFAULT == null ? strategy != null : !STRATEGY_EDEFAULT.equals(strategy);
+ case HbannotationPackage.GENERIC_GENERATOR__PARAMETERS:
+ return parameters != null && !parameters.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", strategy: ");
+ result.append(strategy);
+ result.append(')');
+ return result.toString();
+ }
+
+} //GenericGeneratorImpl \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbAnnotationImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbAnnotationImpl.java
new file mode 100755
index 000000000..59a94dd5f
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbAnnotationImpl.java
@@ -0,0 +1,73 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotationImpl.java,v 1.1 2007/11/14 16:38:33 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.teneo.annotations.pannotation.impl.PAnnotationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotation;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Hb Annotation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class HbAnnotationImpl extends PAnnotationImpl implements HbAnnotation {
+
+ /** Translation from enumerate class to import annotation class */
+ private static Map<Class<?>, String> hbEnumToImport = new HashMap<Class<?>, String>();
+
+ static {
+ hbEnumToImport.put(CacheConcurrencyStrategy.class, "org.hibernate.annotations.");
+ hbEnumToImport.put(HbFetchType.class, "org.hibernate.annotations.FetchType");
+ hbEnumToImport.put(OnDeleteAction.class, "org.hibernate.annotations.OnDeleteAction");
+ hbEnumToImport.put(GenerationTime.class, "org.hibernate.annotations.GenerationTime");
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected HbAnnotationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.HB_ANNOTATION;
+ }
+
+ /** Return the import statement required for the enum */
+ @Override
+ protected String getEnumImport(Object enumInstance) {
+ final String enumImport = hbEnumToImport.get(enumInstance.getClass());
+ if (enumImport == null) {
+ return super.getEnumImport(enumInstance);
+ }
+ return enumImport;
+ }
+
+ /** Return the class name of the annotation */
+ @Override
+ public String getAnnotationClassName() {
+ return "org.hibernate.annotations." + this.eClass().getName();
+ }
+} // HbAnnotationImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbEntityImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbEntityImpl.java
new file mode 100755
index 000000000..2c301993c
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbEntityImpl.java
@@ -0,0 +1,489 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbEntityImpl.java,v 1.3 2010/02/04 11:03:40 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Hb Entity</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbEntityImpl#isDynamicInsert <em>Dynamic Insert</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbEntityImpl#isDynamicUpdate <em>Dynamic Update</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbEntityImpl#isSelectBeforeUpdate <em>Select Before Update</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbEntityImpl#isMutable <em>Mutable</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbEntityImpl#getPersister <em>Persister</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbEntityImpl#getOptimisticLock <em>Optimistic Lock</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbEntityImpl#getPolymorphism <em>Polymorphism</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class HbEntityImpl extends HbAnnotationImpl implements HbEntity {
+ /**
+ * The default value of the '{@link #isDynamicInsert() <em>Dynamic Insert</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDynamicInsert()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DYNAMIC_INSERT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isDynamicInsert() <em>Dynamic Insert</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDynamicInsert()
+ * @generated
+ * @ordered
+ */
+ protected boolean dynamicInsert = DYNAMIC_INSERT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDynamicUpdate() <em>Dynamic Update</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDynamicUpdate()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DYNAMIC_UPDATE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isDynamicUpdate() <em>Dynamic Update</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDynamicUpdate()
+ * @generated
+ * @ordered
+ */
+ protected boolean dynamicUpdate = DYNAMIC_UPDATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isSelectBeforeUpdate() <em>Select Before Update</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSelectBeforeUpdate()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SELECT_BEFORE_UPDATE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSelectBeforeUpdate() <em>Select Before Update</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSelectBeforeUpdate()
+ * @generated
+ * @ordered
+ */
+ protected boolean selectBeforeUpdate = SELECT_BEFORE_UPDATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isMutable() <em>Mutable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMutable()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean MUTABLE_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isMutable() <em>Mutable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMutable()
+ * @generated
+ * @ordered
+ */
+ protected boolean mutable = MUTABLE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPersister() <em>Persister</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPersister()
+ * @generated
+ * @ordered
+ */
+ protected static final String PERSISTER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPersister() <em>Persister</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPersister()
+ * @generated
+ * @ordered
+ */
+ protected String persister = PERSISTER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOptimisticLock() <em>Optimistic Lock</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptimisticLock()
+ * @generated
+ * @ordered
+ */
+ protected static final OptimisticLockType OPTIMISTIC_LOCK_EDEFAULT = OptimisticLockType.VERSION;
+
+ /**
+ * The cached value of the '{@link #getOptimisticLock() <em>Optimistic Lock</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptimisticLock()
+ * @generated
+ * @ordered
+ */
+ protected OptimisticLockType optimisticLock = OPTIMISTIC_LOCK_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPolymorphism() <em>Polymorphism</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPolymorphism()
+ * @generated
+ * @ordered
+ */
+ protected static final PolymorphismType POLYMORPHISM_EDEFAULT = PolymorphismType.IMPLICIT;
+
+ /**
+ * The cached value of the '{@link #getPolymorphism() <em>Polymorphism</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPolymorphism()
+ * @generated
+ * @ordered
+ */
+ protected PolymorphismType polymorphism = POLYMORPHISM_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HbEntityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.HB_ENTITY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDynamicInsert() {
+ return dynamicInsert;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDynamicInsert(boolean newDynamicInsert) {
+ boolean oldDynamicInsert = dynamicInsert;
+ dynamicInsert = newDynamicInsert;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.HB_ENTITY__DYNAMIC_INSERT, oldDynamicInsert, dynamicInsert));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDynamicUpdate() {
+ return dynamicUpdate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDynamicUpdate(boolean newDynamicUpdate) {
+ boolean oldDynamicUpdate = dynamicUpdate;
+ dynamicUpdate = newDynamicUpdate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.HB_ENTITY__DYNAMIC_UPDATE, oldDynamicUpdate, dynamicUpdate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSelectBeforeUpdate() {
+ return selectBeforeUpdate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectBeforeUpdate(boolean newSelectBeforeUpdate) {
+ boolean oldSelectBeforeUpdate = selectBeforeUpdate;
+ selectBeforeUpdate = newSelectBeforeUpdate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.HB_ENTITY__SELECT_BEFORE_UPDATE, oldSelectBeforeUpdate, selectBeforeUpdate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMutable() {
+ return mutable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMutable(boolean newMutable) {
+ boolean oldMutable = mutable;
+ mutable = newMutable;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.HB_ENTITY__MUTABLE, oldMutable, mutable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPersister() {
+ return persister;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPersister(String newPersister) {
+ String oldPersister = persister;
+ persister = newPersister;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.HB_ENTITY__PERSISTER, oldPersister, persister));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OptimisticLockType getOptimisticLock() {
+ return optimisticLock;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOptimisticLock(OptimisticLockType newOptimisticLock) {
+ OptimisticLockType oldOptimisticLock = optimisticLock;
+ optimisticLock = newOptimisticLock == null ? OPTIMISTIC_LOCK_EDEFAULT : newOptimisticLock;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.HB_ENTITY__OPTIMISTIC_LOCK, oldOptimisticLock, optimisticLock));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PolymorphismType getPolymorphism() {
+ return polymorphism;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPolymorphism(PolymorphismType newPolymorphism) {
+ PolymorphismType oldPolymorphism = polymorphism;
+ polymorphism = newPolymorphism == null ? POLYMORPHISM_EDEFAULT : newPolymorphism;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.HB_ENTITY__POLYMORPHISM, oldPolymorphism, polymorphism));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.HB_ENTITY__DYNAMIC_INSERT:
+ return isDynamicInsert();
+ case HbannotationPackage.HB_ENTITY__DYNAMIC_UPDATE:
+ return isDynamicUpdate();
+ case HbannotationPackage.HB_ENTITY__SELECT_BEFORE_UPDATE:
+ return isSelectBeforeUpdate();
+ case HbannotationPackage.HB_ENTITY__MUTABLE:
+ return isMutable();
+ case HbannotationPackage.HB_ENTITY__PERSISTER:
+ return getPersister();
+ case HbannotationPackage.HB_ENTITY__OPTIMISTIC_LOCK:
+ return getOptimisticLock();
+ case HbannotationPackage.HB_ENTITY__POLYMORPHISM:
+ return getPolymorphism();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.HB_ENTITY__DYNAMIC_INSERT:
+ setDynamicInsert((Boolean)newValue);
+ return;
+ case HbannotationPackage.HB_ENTITY__DYNAMIC_UPDATE:
+ setDynamicUpdate((Boolean)newValue);
+ return;
+ case HbannotationPackage.HB_ENTITY__SELECT_BEFORE_UPDATE:
+ setSelectBeforeUpdate((Boolean)newValue);
+ return;
+ case HbannotationPackage.HB_ENTITY__MUTABLE:
+ setMutable((Boolean)newValue);
+ return;
+ case HbannotationPackage.HB_ENTITY__PERSISTER:
+ setPersister((String)newValue);
+ return;
+ case HbannotationPackage.HB_ENTITY__OPTIMISTIC_LOCK:
+ setOptimisticLock((OptimisticLockType)newValue);
+ return;
+ case HbannotationPackage.HB_ENTITY__POLYMORPHISM:
+ setPolymorphism((PolymorphismType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.HB_ENTITY__DYNAMIC_INSERT:
+ setDynamicInsert(DYNAMIC_INSERT_EDEFAULT);
+ return;
+ case HbannotationPackage.HB_ENTITY__DYNAMIC_UPDATE:
+ setDynamicUpdate(DYNAMIC_UPDATE_EDEFAULT);
+ return;
+ case HbannotationPackage.HB_ENTITY__SELECT_BEFORE_UPDATE:
+ setSelectBeforeUpdate(SELECT_BEFORE_UPDATE_EDEFAULT);
+ return;
+ case HbannotationPackage.HB_ENTITY__MUTABLE:
+ setMutable(MUTABLE_EDEFAULT);
+ return;
+ case HbannotationPackage.HB_ENTITY__PERSISTER:
+ setPersister(PERSISTER_EDEFAULT);
+ return;
+ case HbannotationPackage.HB_ENTITY__OPTIMISTIC_LOCK:
+ setOptimisticLock(OPTIMISTIC_LOCK_EDEFAULT);
+ return;
+ case HbannotationPackage.HB_ENTITY__POLYMORPHISM:
+ setPolymorphism(POLYMORPHISM_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.HB_ENTITY__DYNAMIC_INSERT:
+ return dynamicInsert != DYNAMIC_INSERT_EDEFAULT;
+ case HbannotationPackage.HB_ENTITY__DYNAMIC_UPDATE:
+ return dynamicUpdate != DYNAMIC_UPDATE_EDEFAULT;
+ case HbannotationPackage.HB_ENTITY__SELECT_BEFORE_UPDATE:
+ return selectBeforeUpdate != SELECT_BEFORE_UPDATE_EDEFAULT;
+ case HbannotationPackage.HB_ENTITY__MUTABLE:
+ return mutable != MUTABLE_EDEFAULT;
+ case HbannotationPackage.HB_ENTITY__PERSISTER:
+ return PERSISTER_EDEFAULT == null ? persister != null : !PERSISTER_EDEFAULT.equals(persister);
+ case HbannotationPackage.HB_ENTITY__OPTIMISTIC_LOCK:
+ return optimisticLock != OPTIMISTIC_LOCK_EDEFAULT;
+ case HbannotationPackage.HB_ENTITY__POLYMORPHISM:
+ return polymorphism != POLYMORPHISM_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (dynamicInsert: ");
+ result.append(dynamicInsert);
+ result.append(", dynamicUpdate: ");
+ result.append(dynamicUpdate);
+ result.append(", selectBeforeUpdate: ");
+ result.append(selectBeforeUpdate);
+ result.append(", mutable: ");
+ result.append(mutable);
+ result.append(", persister: ");
+ result.append(persister);
+ result.append(", optimisticLock: ");
+ result.append(optimisticLock);
+ result.append(", polymorphism: ");
+ result.append(polymorphism);
+ result.append(')');
+ return result.toString();
+ }
+
+} //HbEntityImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbMapKeyImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbMapKeyImpl.java
new file mode 100755
index 000000000..3b031a9e8
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbMapKeyImpl.java
@@ -0,0 +1,150 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbMapKeyImpl.java,v 1.2 2010/02/04 11:03:41 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Hb Map Key</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbMapKeyImpl#getColumns <em>Columns</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class HbMapKeyImpl extends HbAnnotationImpl implements HbMapKey {
+ /**
+ * The cached value of the '{@link #getColumns() <em>Columns</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getColumns()
+ * @generated
+ * @ordered
+ */
+ protected EList<Column> columns;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HbMapKeyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.HB_MAP_KEY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Column> getColumns() {
+ if (columns == null) {
+ columns = new EObjectContainmentEList<Column>(Column.class, this, HbannotationPackage.HB_MAP_KEY__COLUMNS);
+ }
+ return columns;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case HbannotationPackage.HB_MAP_KEY__COLUMNS:
+ return ((InternalEList<?>)getColumns()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.HB_MAP_KEY__COLUMNS:
+ return getColumns();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.HB_MAP_KEY__COLUMNS:
+ getColumns().clear();
+ getColumns().addAll((Collection<? extends Column>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.HB_MAP_KEY__COLUMNS:
+ getColumns().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.HB_MAP_KEY__COLUMNS:
+ return columns != null && !columns.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //HbMapKeyImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbannotationFactoryImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbannotationFactoryImpl.java
new file mode 100755
index 000000000..61f26463a
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbannotationFactoryImpl.java
@@ -0,0 +1,657 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbannotationFactoryImpl.java,v 1.17 2010/02/04 11:03:42 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Any;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Fetch;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Formula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Generated;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationFactory;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Immutable;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFound;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Proxy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
+ * @generated
+ */
+public class HbannotationFactoryImpl extends EFactoryImpl implements HbannotationFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public static HbannotationFactory init() {
+ try {
+ HbannotationFactory theHbannotationFactory = (HbannotationFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/teneo/2006/HbAnnotation");
+ if (theHbannotationFactory != null) {
+ return theHbannotationFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new HbannotationFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HbannotationFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case HbannotationPackage.CASCADE: return createCascade();
+ case HbannotationPackage.COLLECTION_OF_ELEMENTS: return createCollectionOfElements();
+ case HbannotationPackage.HB_MAP_KEY: return createHbMapKey();
+ case HbannotationPackage.PARAMETER: return createParameter();
+ case HbannotationPackage.TYPE: return createType();
+ case HbannotationPackage.WHERE: return createWhere();
+ case HbannotationPackage.ID_BAG: return createIdBag();
+ case HbannotationPackage.GENERIC_GENERATOR: return createGenericGenerator();
+ case HbannotationPackage.CACHE: return createCache();
+ case HbannotationPackage.TYPE_DEF: return createTypeDef();
+ case HbannotationPackage.FETCH: return createFetch();
+ case HbannotationPackage.ON_DELETE: return createOnDelete();
+ case HbannotationPackage.PROXY: return createProxy();
+ case HbannotationPackage.INDEX: return createIndex();
+ case HbannotationPackage.GENERATED: return createGenerated();
+ case HbannotationPackage.NAMED_QUERY: return createNamedQuery();
+ case HbannotationPackage.FILTER: return createFilter();
+ case HbannotationPackage.PARAM_DEF: return createParamDef();
+ case HbannotationPackage.FILTER_DEF: return createFilterDef();
+ case HbannotationPackage.DISCRIMINATOR_FORMULA: return createDiscriminatorFormula();
+ case HbannotationPackage.NATURAL_ID: return createNaturalId();
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY: return createMapKeyManyToMany();
+ case HbannotationPackage.FORCE_DISCRIMINATOR: return createForceDiscriminator();
+ case HbannotationPackage.IMMUTABLE: return createImmutable();
+ case HbannotationPackage.FORMULA: return createFormula();
+ case HbannotationPackage.NOT_FOUND: return createNotFound();
+ case HbannotationPackage.HB_ENTITY: return createHbEntity();
+ case HbannotationPackage.BATCH_SIZE: return createBatchSize();
+ case HbannotationPackage.ANY: return createAny();
+ case HbannotationPackage.META_VALUE: return createMetaValue();
+ case HbannotationPackage.ANY_META_DEF: return createAnyMetaDef();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case HbannotationPackage.CACHE_CONCURRENCY_STRATEGY:
+ return createCacheConcurrencyStrategyFromString(eDataType, initialValue);
+ case HbannotationPackage.HB_FETCH_TYPE:
+ return createHbFetchTypeFromString(eDataType, initialValue);
+ case HbannotationPackage.ON_DELETE_ACTION:
+ return createOnDeleteActionFromString(eDataType, initialValue);
+ case HbannotationPackage.GENERATION_TIME:
+ return createGenerationTimeFromString(eDataType, initialValue);
+ case HbannotationPackage.NOT_FOUND_ACTION:
+ return createNotFoundActionFromString(eDataType, initialValue);
+ case HbannotationPackage.OPTIMISTIC_LOCK_TYPE:
+ return createOptimisticLockTypeFromString(eDataType, initialValue);
+ case HbannotationPackage.POLYMORPHISM_TYPE:
+ return createPolymorphismTypeFromString(eDataType, initialValue);
+ case HbannotationPackage.HB_CASCADE_TYPE:
+ return createHbCascadeTypeFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case HbannotationPackage.CACHE_CONCURRENCY_STRATEGY:
+ return convertCacheConcurrencyStrategyToString(eDataType, instanceValue);
+ case HbannotationPackage.HB_FETCH_TYPE:
+ return convertHbFetchTypeToString(eDataType, instanceValue);
+ case HbannotationPackage.ON_DELETE_ACTION:
+ return convertOnDeleteActionToString(eDataType, instanceValue);
+ case HbannotationPackage.GENERATION_TIME:
+ return convertGenerationTimeToString(eDataType, instanceValue);
+ case HbannotationPackage.NOT_FOUND_ACTION:
+ return convertNotFoundActionToString(eDataType, instanceValue);
+ case HbannotationPackage.OPTIMISTIC_LOCK_TYPE:
+ return convertOptimisticLockTypeToString(eDataType, instanceValue);
+ case HbannotationPackage.POLYMORPHISM_TYPE:
+ return convertPolymorphismTypeToString(eDataType, instanceValue);
+ case HbannotationPackage.HB_CASCADE_TYPE:
+ return convertHbCascadeTypeToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Cascade createCascade() {
+ CascadeImpl cascade = new CascadeImpl();
+ return cascade;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public CollectionOfElements createCollectionOfElements() {
+ CollectionOfElementsImpl collectionOfElements = new CollectionOfElementsImpl();
+ return collectionOfElements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbMapKey createHbMapKey() {
+ HbMapKeyImpl hbMapKey = new HbMapKeyImpl();
+ return hbMapKey;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter createParameter() {
+ ParameterImpl parameter = new ParameterImpl();
+ return parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Type createType() {
+ TypeImpl type = new TypeImpl();
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Where createWhere() {
+ WhereImpl where = new WhereImpl();
+ return where;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IdBag createIdBag() {
+ IdBagImpl idBag = new IdBagImpl();
+ return idBag;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericGenerator createGenericGenerator() {
+ GenericGeneratorImpl genericGenerator = new GenericGeneratorImpl();
+ return genericGenerator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Cache createCache() {
+ CacheImpl cache = new CacheImpl();
+ return cache;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public TypeDef createTypeDef() {
+ TypeDefImpl typeDef = new TypeDefImpl();
+ return typeDef;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Fetch createFetch() {
+ FetchImpl fetch = new FetchImpl();
+ return fetch;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public OnDelete createOnDelete() {
+ OnDeleteImpl onDelete = new OnDeleteImpl();
+ return onDelete;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Proxy createProxy() {
+ ProxyImpl proxy = new ProxyImpl();
+ return proxy;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Index createIndex() {
+ IndexImpl index = new IndexImpl();
+ return index;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Generated createGenerated() {
+ GeneratedImpl generated = new GeneratedImpl();
+ return generated;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NamedQuery createNamedQuery() {
+ NamedQueryImpl namedQuery = new NamedQueryImpl();
+ return namedQuery;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Filter createFilter() {
+ FilterImpl filter = new FilterImpl();
+ return filter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParamDef createParamDef() {
+ ParamDefImpl paramDef = new ParamDefImpl();
+ return paramDef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FilterDef createFilterDef() {
+ FilterDefImpl filterDef = new FilterDefImpl();
+ return filterDef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DiscriminatorFormula createDiscriminatorFormula() {
+ DiscriminatorFormulaImpl discriminatorFormula = new DiscriminatorFormulaImpl();
+ return discriminatorFormula;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NaturalId createNaturalId() {
+ NaturalIdImpl naturalId = new NaturalIdImpl();
+ return naturalId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MapKeyManyToMany createMapKeyManyToMany() {
+ MapKeyManyToManyImpl mapKeyManyToMany = new MapKeyManyToManyImpl();
+ return mapKeyManyToMany;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ForceDiscriminator createForceDiscriminator() {
+ ForceDiscriminatorImpl forceDiscriminator = new ForceDiscriminatorImpl();
+ return forceDiscriminator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Immutable createImmutable() {
+ ImmutableImpl immutable = new ImmutableImpl();
+ return immutable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Formula createFormula() {
+ FormulaImpl formula = new FormulaImpl();
+ return formula;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotFound createNotFound() {
+ NotFoundImpl notFound = new NotFoundImpl();
+ return notFound;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbEntity createHbEntity() {
+ HbEntityImpl hbEntity = new HbEntityImpl();
+ return hbEntity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BatchSize createBatchSize() {
+ BatchSizeImpl batchSize = new BatchSizeImpl();
+ return batchSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Any createAny() {
+ AnyImpl any = new AnyImpl();
+ return any;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MetaValue createMetaValue() {
+ MetaValueImpl metaValue = new MetaValueImpl();
+ return metaValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnyMetaDef createAnyMetaDef() {
+ AnyMetaDefImpl anyMetaDef = new AnyMetaDefImpl();
+ return anyMetaDef;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public CacheConcurrencyStrategy createCacheConcurrencyStrategyFromString(EDataType eDataType, String initialValue) {
+ CacheConcurrencyStrategy result = CacheConcurrencyStrategy.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertCacheConcurrencyStrategyToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HbFetchType createHbFetchTypeFromString(EDataType eDataType, String initialValue) {
+ HbFetchType result = HbFetchType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertHbFetchTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public OnDeleteAction createOnDeleteActionFromString(EDataType eDataType, String initialValue) {
+ OnDeleteAction result = OnDeleteAction.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertOnDeleteActionToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenerationTime createGenerationTimeFromString(EDataType eDataType, String initialValue) {
+ GenerationTime result = GenerationTime.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertGenerationTimeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotFoundAction createNotFoundActionFromString(EDataType eDataType, String initialValue) {
+ NotFoundAction result = NotFoundAction.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertNotFoundActionToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OptimisticLockType createOptimisticLockTypeFromString(EDataType eDataType, String initialValue) {
+ OptimisticLockType result = OptimisticLockType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertOptimisticLockTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PolymorphismType createPolymorphismTypeFromString(EDataType eDataType, String initialValue) {
+ PolymorphismType result = PolymorphismType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPolymorphismTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbCascadeType createHbCascadeTypeFromString(EDataType eDataType, String initialValue) {
+ HbCascadeType result = HbCascadeType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertHbCascadeTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HbannotationPackage getHbannotationPackage() {
+ return (HbannotationPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static HbannotationPackage getPackage() {
+ return HbannotationPackage.eINSTANCE;
+ }
+
+} // HbannotationFactoryImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbannotationPackageImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbannotationPackageImpl.java
new file mode 100755
index 000000000..24f1c60da
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/HbannotationPackageImpl.java
@@ -0,0 +1,1955 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbannotationPackageImpl.java,v 1.17 2010/02/04 11:03:40 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.teneo.annotations.pamodel.PamodelPackage;
+import org.eclipse.emf.teneo.annotations.pannotation.PannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Any;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Fetch;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Formula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Generated;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotation;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationFactory;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Immutable;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFound;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Proxy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+import org.eclipse.emf.teneo.hibernate.hbannotation.util.HbannotationValidator;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage;
+import org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- end-user-doc -->
+ * @generated
+ */
+public class HbannotationPackageImpl extends EPackageImpl implements HbannotationPackage {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hbAnnotationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cascadeEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass collectionOfElementsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hbMapKeyEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass parameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typeEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass whereEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass idBagEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genericGeneratorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cacheEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typeDefEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass fetchEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass onDeleteEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass proxyEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass indexEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass generatedEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass namedQueryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass filterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass paramDefEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass filterDefEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass discriminatorFormulaEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass naturalIdEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass mapKeyManyToManyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass forceDiscriminatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass immutableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass formulaEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass notFoundEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hbEntityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass batchSizeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass anyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass metaValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass anyMetaDefEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum cacheConcurrencyStrategyEEnum = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum hbFetchTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum onDeleteActionEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum generationTimeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum notFoundActionEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum optimisticLockTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum polymorphismTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum hbCascadeTypeEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private HbannotationPackageImpl() {
+ super(eNS_URI, HbannotationFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ * <p>Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static HbannotationPackage init() {
+ if (isInited) return (HbannotationPackage)EPackage.Registry.INSTANCE.getEPackage(HbannotationPackage.eNS_URI);
+
+ // Obtain or create and register package
+ HbannotationPackageImpl theHbannotationPackage = (HbannotationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof HbannotationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new HbannotationPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ PamodelPackage.eINSTANCE.eClass();
+ PannotationPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ HbmodelPackageImpl theHbmodelPackage = (HbmodelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HbmodelPackage.eNS_URI) instanceof HbmodelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HbmodelPackage.eNS_URI) : HbmodelPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theHbannotationPackage.createPackageContents();
+ theHbmodelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theHbannotationPackage.initializePackageContents();
+ theHbmodelPackage.initializePackageContents();
+
+ // Register package validator
+ EValidator.Registry.INSTANCE.put
+ (theHbannotationPackage,
+ new EValidator.Descriptor() {
+ public EValidator getEValidator() {
+ return HbannotationValidator.INSTANCE;
+ }
+ });
+
+ // Mark meta-data to indicate it can't be changed
+ theHbannotationPackage.freeze();
+
+ return theHbannotationPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHbAnnotation() {
+ return hbAnnotationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCascade() {
+ return cascadeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCascade_Value() {
+ return (EAttribute)cascadeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCollectionOfElements() {
+ return collectionOfElementsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCollectionOfElements_TargetElement() {
+ return (EAttribute)collectionOfElementsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCollectionOfElements_Fetch() {
+ return (EAttribute)collectionOfElementsEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHbMapKey() {
+ return hbMapKeyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbMapKey_Columns() {
+ return (EReference)hbMapKeyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getParameter() {
+ return parameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getParameter_Name() {
+ return (EAttribute)parameterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getParameter_Value() {
+ return (EAttribute)parameterEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getType() {
+ return typeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getType_Type() {
+ return (EAttribute)typeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getType_Parameters() {
+ return (EReference)typeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWhere() {
+ return whereEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getWhere_Clause() {
+ return (EAttribute)whereEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIdBag() {
+ return idBagEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIdBag_Generator() {
+ return (EAttribute)idBagEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIdBag_Type() {
+ return (EAttribute)idBagEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIdBag_Table() {
+ return (EAttribute)idBagEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenericGenerator() {
+ return genericGeneratorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGenericGenerator_Name() {
+ return (EAttribute)genericGeneratorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGenericGenerator_Strategy() {
+ return (EAttribute)genericGeneratorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenericGenerator_Parameters() {
+ return (EReference)genericGeneratorEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCache() {
+ return cacheEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCache_Usage() {
+ return (EAttribute)cacheEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCache_Region() {
+ return (EAttribute)cacheEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCache_Include() {
+ return (EAttribute)cacheEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTypeDef() {
+ return typeDefEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTypeDef_Name() {
+ return (EAttribute)typeDefEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTypeDef_Parameters() {
+ return (EReference)typeDefEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTypeDef_TypeClass() {
+ return (EAttribute)typeDefEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFetch() {
+ return fetchEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFetch_Value() {
+ return (EAttribute)fetchEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOnDelete() {
+ return onDeleteEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOnDelete_Action() {
+ return (EAttribute)onDeleteEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProxy() {
+ return proxyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProxy_ProxyClass() {
+ return (EAttribute)proxyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProxy_Lazy() {
+ return (EAttribute)proxyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIndex() {
+ return indexEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIndex_Name() {
+ return (EAttribute)indexEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenerated() {
+ return generatedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGenerated_Value() {
+ return (EAttribute)generatedEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNamedQuery() {
+ return namedQueryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNamedQuery_Name() {
+ return (EAttribute)namedQueryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNamedQuery_Query() {
+ return (EAttribute)namedQueryEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFilter() {
+ return filterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFilter_Name() {
+ return (EAttribute)filterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFilter_Condition() {
+ return (EAttribute)filterEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getParamDef() {
+ return paramDefEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getParamDef_Name() {
+ return (EAttribute)paramDefEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getParamDef_Type() {
+ return (EAttribute)paramDefEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFilterDef() {
+ return filterDefEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFilterDef_Name() {
+ return (EAttribute)filterDefEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFilterDef_DefaultCondition() {
+ return (EAttribute)filterDefEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFilterDef_Parameters() {
+ return (EReference)filterDefEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDiscriminatorFormula() {
+ return discriminatorFormulaEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDiscriminatorFormula_Value() {
+ return (EAttribute)discriminatorFormulaEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNaturalId() {
+ return naturalIdEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNaturalId_Mutable() {
+ return (EAttribute)naturalIdEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMapKeyManyToMany() {
+ return mapKeyManyToManyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMapKeyManyToMany_JoinColumns() {
+ return (EReference)mapKeyManyToManyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMapKeyManyToMany_TargetEntity() {
+ return (EAttribute)mapKeyManyToManyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getForceDiscriminator() {
+ return forceDiscriminatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getImmutable() {
+ return immutableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFormula() {
+ return formulaEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFormula_Value() {
+ return (EAttribute)formulaEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNotFound() {
+ return notFoundEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNotFound_Action() {
+ return (EAttribute)notFoundEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHbEntity() {
+ return hbEntityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHbEntity_DynamicInsert() {
+ return (EAttribute)hbEntityEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHbEntity_DynamicUpdate() {
+ return (EAttribute)hbEntityEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHbEntity_SelectBeforeUpdate() {
+ return (EAttribute)hbEntityEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHbEntity_Mutable() {
+ return (EAttribute)hbEntityEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHbEntity_Persister() {
+ return (EAttribute)hbEntityEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHbEntity_OptimisticLock() {
+ return (EAttribute)hbEntityEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHbEntity_Polymorphism() {
+ return (EAttribute)hbEntityEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBatchSize() {
+ return batchSizeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBatchSize_Size() {
+ return (EAttribute)batchSizeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAny() {
+ return anyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAny_MetaDef() {
+ return (EAttribute)anyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAny_MetaColumn() {
+ return (EReference)anyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAny_Fetch() {
+ return (EAttribute)anyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAny_Optional() {
+ return (EAttribute)anyEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMetaValue() {
+ return metaValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMetaValue_TargetEntity() {
+ return (EAttribute)metaValueEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMetaValue_Value() {
+ return (EAttribute)metaValueEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAnyMetaDef() {
+ return anyMetaDefEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAnyMetaDef_Name() {
+ return (EAttribute)anyMetaDefEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAnyMetaDef_MetaType() {
+ return (EAttribute)anyMetaDefEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAnyMetaDef_IdType() {
+ return (EAttribute)anyMetaDefEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAnyMetaDef_MetaValues() {
+ return (EReference)anyMetaDefEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getCacheConcurrencyStrategy() {
+ return cacheConcurrencyStrategyEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getHbFetchType() {
+ return hbFetchTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getOnDeleteAction() {
+ return onDeleteActionEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getGenerationTime() {
+ return generationTimeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getNotFoundAction() {
+ return notFoundActionEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getOptimisticLockType() {
+ return optimisticLockTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPolymorphismType() {
+ return polymorphismTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getHbCascadeType() {
+ return hbCascadeTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HbannotationFactory getHbannotationFactory() {
+ return (HbannotationFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ hbAnnotationEClass = createEClass(HB_ANNOTATION);
+
+ cascadeEClass = createEClass(CASCADE);
+ createEAttribute(cascadeEClass, CASCADE__VALUE);
+
+ collectionOfElementsEClass = createEClass(COLLECTION_OF_ELEMENTS);
+ createEAttribute(collectionOfElementsEClass, COLLECTION_OF_ELEMENTS__TARGET_ELEMENT);
+ createEAttribute(collectionOfElementsEClass, COLLECTION_OF_ELEMENTS__FETCH);
+
+ hbMapKeyEClass = createEClass(HB_MAP_KEY);
+ createEReference(hbMapKeyEClass, HB_MAP_KEY__COLUMNS);
+
+ parameterEClass = createEClass(PARAMETER);
+ createEAttribute(parameterEClass, PARAMETER__NAME);
+ createEAttribute(parameterEClass, PARAMETER__VALUE);
+
+ typeEClass = createEClass(TYPE);
+ createEAttribute(typeEClass, TYPE__TYPE);
+ createEReference(typeEClass, TYPE__PARAMETERS);
+
+ whereEClass = createEClass(WHERE);
+ createEAttribute(whereEClass, WHERE__CLAUSE);
+
+ idBagEClass = createEClass(ID_BAG);
+ createEAttribute(idBagEClass, ID_BAG__GENERATOR);
+ createEAttribute(idBagEClass, ID_BAG__TYPE);
+ createEAttribute(idBagEClass, ID_BAG__TABLE);
+
+ genericGeneratorEClass = createEClass(GENERIC_GENERATOR);
+ createEAttribute(genericGeneratorEClass, GENERIC_GENERATOR__NAME);
+ createEAttribute(genericGeneratorEClass, GENERIC_GENERATOR__STRATEGY);
+ createEReference(genericGeneratorEClass, GENERIC_GENERATOR__PARAMETERS);
+
+ cacheEClass = createEClass(CACHE);
+ createEAttribute(cacheEClass, CACHE__USAGE);
+ createEAttribute(cacheEClass, CACHE__REGION);
+ createEAttribute(cacheEClass, CACHE__INCLUDE);
+
+ typeDefEClass = createEClass(TYPE_DEF);
+ createEAttribute(typeDefEClass, TYPE_DEF__NAME);
+ createEReference(typeDefEClass, TYPE_DEF__PARAMETERS);
+ createEAttribute(typeDefEClass, TYPE_DEF__TYPE_CLASS);
+
+ fetchEClass = createEClass(FETCH);
+ createEAttribute(fetchEClass, FETCH__VALUE);
+
+ onDeleteEClass = createEClass(ON_DELETE);
+ createEAttribute(onDeleteEClass, ON_DELETE__ACTION);
+
+ proxyEClass = createEClass(PROXY);
+ createEAttribute(proxyEClass, PROXY__PROXY_CLASS);
+ createEAttribute(proxyEClass, PROXY__LAZY);
+
+ indexEClass = createEClass(INDEX);
+ createEAttribute(indexEClass, INDEX__NAME);
+
+ generatedEClass = createEClass(GENERATED);
+ createEAttribute(generatedEClass, GENERATED__VALUE);
+
+ namedQueryEClass = createEClass(NAMED_QUERY);
+ createEAttribute(namedQueryEClass, NAMED_QUERY__NAME);
+ createEAttribute(namedQueryEClass, NAMED_QUERY__QUERY);
+
+ filterEClass = createEClass(FILTER);
+ createEAttribute(filterEClass, FILTER__NAME);
+ createEAttribute(filterEClass, FILTER__CONDITION);
+
+ paramDefEClass = createEClass(PARAM_DEF);
+ createEAttribute(paramDefEClass, PARAM_DEF__NAME);
+ createEAttribute(paramDefEClass, PARAM_DEF__TYPE);
+
+ filterDefEClass = createEClass(FILTER_DEF);
+ createEAttribute(filterDefEClass, FILTER_DEF__NAME);
+ createEAttribute(filterDefEClass, FILTER_DEF__DEFAULT_CONDITION);
+ createEReference(filterDefEClass, FILTER_DEF__PARAMETERS);
+
+ discriminatorFormulaEClass = createEClass(DISCRIMINATOR_FORMULA);
+ createEAttribute(discriminatorFormulaEClass, DISCRIMINATOR_FORMULA__VALUE);
+
+ naturalIdEClass = createEClass(NATURAL_ID);
+ createEAttribute(naturalIdEClass, NATURAL_ID__MUTABLE);
+
+ mapKeyManyToManyEClass = createEClass(MAP_KEY_MANY_TO_MANY);
+ createEReference(mapKeyManyToManyEClass, MAP_KEY_MANY_TO_MANY__JOIN_COLUMNS);
+ createEAttribute(mapKeyManyToManyEClass, MAP_KEY_MANY_TO_MANY__TARGET_ENTITY);
+
+ forceDiscriminatorEClass = createEClass(FORCE_DISCRIMINATOR);
+
+ immutableEClass = createEClass(IMMUTABLE);
+
+ formulaEClass = createEClass(FORMULA);
+ createEAttribute(formulaEClass, FORMULA__VALUE);
+
+ notFoundEClass = createEClass(NOT_FOUND);
+ createEAttribute(notFoundEClass, NOT_FOUND__ACTION);
+
+ hbEntityEClass = createEClass(HB_ENTITY);
+ createEAttribute(hbEntityEClass, HB_ENTITY__DYNAMIC_INSERT);
+ createEAttribute(hbEntityEClass, HB_ENTITY__DYNAMIC_UPDATE);
+ createEAttribute(hbEntityEClass, HB_ENTITY__SELECT_BEFORE_UPDATE);
+ createEAttribute(hbEntityEClass, HB_ENTITY__MUTABLE);
+ createEAttribute(hbEntityEClass, HB_ENTITY__PERSISTER);
+ createEAttribute(hbEntityEClass, HB_ENTITY__OPTIMISTIC_LOCK);
+ createEAttribute(hbEntityEClass, HB_ENTITY__POLYMORPHISM);
+
+ batchSizeEClass = createEClass(BATCH_SIZE);
+ createEAttribute(batchSizeEClass, BATCH_SIZE__SIZE);
+
+ anyEClass = createEClass(ANY);
+ createEAttribute(anyEClass, ANY__META_DEF);
+ createEReference(anyEClass, ANY__META_COLUMN);
+ createEAttribute(anyEClass, ANY__FETCH);
+ createEAttribute(anyEClass, ANY__OPTIONAL);
+
+ metaValueEClass = createEClass(META_VALUE);
+ createEAttribute(metaValueEClass, META_VALUE__TARGET_ENTITY);
+ createEAttribute(metaValueEClass, META_VALUE__VALUE);
+
+ anyMetaDefEClass = createEClass(ANY_META_DEF);
+ createEAttribute(anyMetaDefEClass, ANY_META_DEF__NAME);
+ createEAttribute(anyMetaDefEClass, ANY_META_DEF__META_TYPE);
+ createEAttribute(anyMetaDefEClass, ANY_META_DEF__ID_TYPE);
+ createEReference(anyMetaDefEClass, ANY_META_DEF__META_VALUES);
+
+ // Create enums
+ cacheConcurrencyStrategyEEnum = createEEnum(CACHE_CONCURRENCY_STRATEGY);
+ hbFetchTypeEEnum = createEEnum(HB_FETCH_TYPE);
+ onDeleteActionEEnum = createEEnum(ON_DELETE_ACTION);
+ generationTimeEEnum = createEEnum(GENERATION_TIME);
+ notFoundActionEEnum = createEEnum(NOT_FOUND_ACTION);
+ optimisticLockTypeEEnum = createEEnum(OPTIMISTIC_LOCK_TYPE);
+ polymorphismTypeEEnum = createEEnum(POLYMORPHISM_TYPE);
+ hbCascadeTypeEEnum = createEEnum(HB_CASCADE_TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ PannotationPackage thePannotationPackage = (PannotationPackage)EPackage.Registry.INSTANCE.getEPackage(PannotationPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ hbAnnotationEClass.getESuperTypes().add(thePannotationPackage.getPAnnotation());
+ cascadeEClass.getESuperTypes().add(this.getHbAnnotation());
+ collectionOfElementsEClass.getESuperTypes().add(this.getHbAnnotation());
+ hbMapKeyEClass.getESuperTypes().add(this.getHbAnnotation());
+ parameterEClass.getESuperTypes().add(this.getHbAnnotation());
+ typeEClass.getESuperTypes().add(this.getHbAnnotation());
+ whereEClass.getESuperTypes().add(this.getHbAnnotation());
+ idBagEClass.getESuperTypes().add(this.getHbAnnotation());
+ genericGeneratorEClass.getESuperTypes().add(this.getHbAnnotation());
+ cacheEClass.getESuperTypes().add(this.getHbAnnotation());
+ typeDefEClass.getESuperTypes().add(this.getHbAnnotation());
+ fetchEClass.getESuperTypes().add(this.getHbAnnotation());
+ onDeleteEClass.getESuperTypes().add(this.getHbAnnotation());
+ proxyEClass.getESuperTypes().add(this.getHbAnnotation());
+ indexEClass.getESuperTypes().add(this.getHbAnnotation());
+ generatedEClass.getESuperTypes().add(this.getHbAnnotation());
+ namedQueryEClass.getESuperTypes().add(this.getHbAnnotation());
+ filterEClass.getESuperTypes().add(this.getHbAnnotation());
+ paramDefEClass.getESuperTypes().add(this.getHbAnnotation());
+ filterDefEClass.getESuperTypes().add(this.getHbAnnotation());
+ discriminatorFormulaEClass.getESuperTypes().add(this.getHbAnnotation());
+ naturalIdEClass.getESuperTypes().add(this.getHbAnnotation());
+ mapKeyManyToManyEClass.getESuperTypes().add(this.getHbAnnotation());
+ forceDiscriminatorEClass.getESuperTypes().add(this.getHbAnnotation());
+ immutableEClass.getESuperTypes().add(this.getHbAnnotation());
+ formulaEClass.getESuperTypes().add(this.getHbAnnotation());
+ notFoundEClass.getESuperTypes().add(this.getHbAnnotation());
+ hbEntityEClass.getESuperTypes().add(this.getHbAnnotation());
+ batchSizeEClass.getESuperTypes().add(this.getHbAnnotation());
+ anyEClass.getESuperTypes().add(this.getHbAnnotation());
+ metaValueEClass.getESuperTypes().add(this.getHbAnnotation());
+ anyMetaDefEClass.getESuperTypes().add(this.getHbAnnotation());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(hbAnnotationEClass, HbAnnotation.class, "HbAnnotation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(cascadeEClass, Cascade.class, "Cascade", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCascade_Value(), this.getHbCascadeType(), "value", null, 0, -1, Cascade.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(collectionOfElementsEClass, CollectionOfElements.class, "CollectionOfElements", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCollectionOfElements_TargetElement(), ecorePackage.getEString(), "targetElement", null, 0, 1, CollectionOfElements.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCollectionOfElements_Fetch(), thePannotationPackage.getFetchType(), "fetch", "LAZY", 0, 1, CollectionOfElements.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(hbMapKeyEClass, HbMapKey.class, "HbMapKey", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHbMapKey_Columns(), thePannotationPackage.getColumn(), null, "columns", null, 0, -1, HbMapKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getParameter_Name(), ecorePackage.getEString(), "name", null, 1, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getParameter_Value(), ecorePackage.getEString(), "value", null, 1, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(typeEClass, Type.class, "Type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getType_Type(), ecorePackage.getEString(), "type", null, 1, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getType_Parameters(), this.getParameter(), null, "parameters", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(whereEClass, Where.class, "Where", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getWhere_Clause(), ecorePackage.getEString(), "clause", null, 0, 1, Where.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(idBagEClass, IdBag.class, "IdBag", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIdBag_Generator(), ecorePackage.getEString(), "generator", "increment", 0, 1, IdBag.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIdBag_Type(), ecorePackage.getEString(), "type", "long", 0, 1, IdBag.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIdBag_Table(), ecorePackage.getEString(), "table", null, 0, 1, IdBag.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(genericGeneratorEClass, GenericGenerator.class, "GenericGenerator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getGenericGenerator_Name(), ecorePackage.getEString(), "name", null, 1, 1, GenericGenerator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getGenericGenerator_Strategy(), ecorePackage.getEString(), "strategy", null, 1, 1, GenericGenerator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getGenericGenerator_Parameters(), this.getParameter(), null, "parameters", null, 0, -1, GenericGenerator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cacheEClass, Cache.class, "Cache", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCache_Usage(), this.getCacheConcurrencyStrategy(), "usage", null, 0, 1, Cache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCache_Region(), ecorePackage.getEString(), "region", null, 0, 1, Cache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCache_Include(), ecorePackage.getEString(), "include", null, 0, 1, Cache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(typeDefEClass, TypeDef.class, "TypeDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTypeDef_Name(), ecorePackage.getEString(), "name", null, 1, 1, TypeDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTypeDef_Parameters(), this.getParameter(), null, "parameters", null, 0, -1, TypeDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTypeDef_TypeClass(), ecorePackage.getEString(), "typeClass", null, 1, 1, TypeDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(fetchEClass, Fetch.class, "Fetch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFetch_Value(), this.getHbFetchType(), "value", null, 0, 1, Fetch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(onDeleteEClass, OnDelete.class, "OnDelete", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getOnDelete_Action(), this.getOnDeleteAction(), "action", null, 0, 1, OnDelete.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(proxyEClass, Proxy.class, "Proxy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getProxy_ProxyClass(), ecorePackage.getEString(), "proxyClass", null, 0, 1, Proxy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProxy_Lazy(), ecorePackage.getEBoolean(), "lazy", "true", 0, 1, Proxy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(indexEClass, Index.class, "Index", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIndex_Name(), ecorePackage.getEString(), "name", null, 0, 1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(generatedEClass, Generated.class, "Generated", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getGenerated_Value(), this.getGenerationTime(), "value", null, 0, 1, Generated.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(namedQueryEClass, NamedQuery.class, "NamedQuery", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNamedQuery_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getNamedQuery_Query(), ecorePackage.getEString(), "query", null, 0, 1, NamedQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(filterEClass, Filter.class, "Filter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFilter_Name(), ecorePackage.getEString(), "name", null, 1, 1, Filter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFilter_Condition(), ecorePackage.getEString(), "condition", null, 0, 1, Filter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(paramDefEClass, ParamDef.class, "ParamDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getParamDef_Name(), ecorePackage.getEString(), "name", null, 1, 1, ParamDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getParamDef_Type(), ecorePackage.getEString(), "type", null, 1, 1, ParamDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(filterDefEClass, FilterDef.class, "FilterDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFilterDef_Name(), ecorePackage.getEString(), "name", null, 1, 1, FilterDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFilterDef_DefaultCondition(), ecorePackage.getEString(), "defaultCondition", null, 0, 1, FilterDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getFilterDef_Parameters(), this.getParamDef(), null, "parameters", null, 0, -1, FilterDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(discriminatorFormulaEClass, DiscriminatorFormula.class, "DiscriminatorFormula", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDiscriminatorFormula_Value(), ecorePackage.getEString(), "value", null, 0, 1, DiscriminatorFormula.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(naturalIdEClass, NaturalId.class, "NaturalId", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNaturalId_Mutable(), ecorePackage.getEBoolean(), "mutable", null, 1, 1, NaturalId.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(mapKeyManyToManyEClass, MapKeyManyToMany.class, "MapKeyManyToMany", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMapKeyManyToMany_JoinColumns(), thePannotationPackage.getJoinColumn(), null, "joinColumns", null, 0, -1, MapKeyManyToMany.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getMapKeyManyToMany_TargetEntity(), ecorePackage.getEString(), "targetEntity", null, 0, 1, MapKeyManyToMany.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(forceDiscriminatorEClass, ForceDiscriminator.class, "ForceDiscriminator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(immutableEClass, Immutable.class, "Immutable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(formulaEClass, Formula.class, "Formula", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFormula_Value(), ecorePackage.getEString(), "value", null, 0, 1, Formula.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(notFoundEClass, NotFound.class, "NotFound", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNotFound_Action(), this.getNotFoundAction(), "action", null, 1, 1, NotFound.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(hbEntityEClass, HbEntity.class, "HbEntity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getHbEntity_DynamicInsert(), ecorePackage.getEBoolean(), "dynamicInsert", null, 0, 1, HbEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHbEntity_DynamicUpdate(), ecorePackage.getEBoolean(), "dynamicUpdate", null, 0, 1, HbEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHbEntity_SelectBeforeUpdate(), ecorePackage.getEBoolean(), "selectBeforeUpdate", null, 0, 1, HbEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHbEntity_Mutable(), ecorePackage.getEBoolean(), "mutable", "true", 0, 1, HbEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHbEntity_Persister(), ecorePackage.getEString(), "persister", null, 0, 1, HbEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHbEntity_OptimisticLock(), this.getOptimisticLockType(), "optimisticLock", "VERSION", 0, 1, HbEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHbEntity_Polymorphism(), this.getPolymorphismType(), "polymorphism", "IMPLICIT", 0, 1, HbEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(batchSizeEClass, BatchSize.class, "BatchSize", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBatchSize_Size(), ecorePackage.getEInt(), "size", null, 1, 1, BatchSize.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(anyEClass, Any.class, "Any", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAny_MetaDef(), ecorePackage.getEString(), "metaDef", null, 0, 1, Any.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAny_MetaColumn(), thePannotationPackage.getColumn(), null, "metaColumn", null, 0, 1, Any.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAny_Fetch(), thePannotationPackage.getFetchType(), "fetch", "EAGER", 0, 1, Any.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAny_Optional(), ecorePackage.getEBoolean(), "optional", "true", 0, 1, Any.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(metaValueEClass, MetaValue.class, "MetaValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getMetaValue_TargetEntity(), ecorePackage.getEString(), "targetEntity", null, 0, 1, MetaValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMetaValue_Value(), ecorePackage.getEString(), "value", null, 0, 1, MetaValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(anyMetaDefEClass, AnyMetaDef.class, "AnyMetaDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAnyMetaDef_Name(), ecorePackage.getEString(), "name", null, 0, 1, AnyMetaDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAnyMetaDef_MetaType(), ecorePackage.getEString(), "metaType", "string", 0, 1, AnyMetaDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAnyMetaDef_IdType(), ecorePackage.getEString(), "idType", "string", 1, 1, AnyMetaDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAnyMetaDef_MetaValues(), this.getMetaValue(), null, "metaValues", null, 0, -1, AnyMetaDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(cacheConcurrencyStrategyEEnum, CacheConcurrencyStrategy.class, "CacheConcurrencyStrategy");
+ addEEnumLiteral(cacheConcurrencyStrategyEEnum, CacheConcurrencyStrategy.NONE);
+ addEEnumLiteral(cacheConcurrencyStrategyEEnum, CacheConcurrencyStrategy.READ_ONLY);
+ addEEnumLiteral(cacheConcurrencyStrategyEEnum, CacheConcurrencyStrategy.NONSTRICT_READ_WRITE);
+ addEEnumLiteral(cacheConcurrencyStrategyEEnum, CacheConcurrencyStrategy.READ_WRITE);
+ addEEnumLiteral(cacheConcurrencyStrategyEEnum, CacheConcurrencyStrategy.TRANSACTIONAL);
+
+ initEEnum(hbFetchTypeEEnum, HbFetchType.class, "HbFetchType");
+ addEEnumLiteral(hbFetchTypeEEnum, HbFetchType.JOIN);
+ addEEnumLiteral(hbFetchTypeEEnum, HbFetchType.SELECT);
+ addEEnumLiteral(hbFetchTypeEEnum, HbFetchType.SUBSELECT);
+
+ initEEnum(onDeleteActionEEnum, OnDeleteAction.class, "OnDeleteAction");
+ addEEnumLiteral(onDeleteActionEEnum, OnDeleteAction.NO_ACTION);
+ addEEnumLiteral(onDeleteActionEEnum, OnDeleteAction.CASCADE);
+
+ initEEnum(generationTimeEEnum, GenerationTime.class, "GenerationTime");
+ addEEnumLiteral(generationTimeEEnum, GenerationTime.NEVER);
+ addEEnumLiteral(generationTimeEEnum, GenerationTime.INSERT);
+ addEEnumLiteral(generationTimeEEnum, GenerationTime.ALWAYS);
+
+ initEEnum(notFoundActionEEnum, NotFoundAction.class, "NotFoundAction");
+ addEEnumLiteral(notFoundActionEEnum, NotFoundAction.EXCEPTION);
+ addEEnumLiteral(notFoundActionEEnum, NotFoundAction.IGNORE);
+
+ initEEnum(optimisticLockTypeEEnum, OptimisticLockType.class, "OptimisticLockType");
+ addEEnumLiteral(optimisticLockTypeEEnum, OptimisticLockType.ALL);
+ addEEnumLiteral(optimisticLockTypeEEnum, OptimisticLockType.DIRTY);
+ addEEnumLiteral(optimisticLockTypeEEnum, OptimisticLockType.NONE);
+ addEEnumLiteral(optimisticLockTypeEEnum, OptimisticLockType.VERSION);
+
+ initEEnum(polymorphismTypeEEnum, PolymorphismType.class, "PolymorphismType");
+ addEEnumLiteral(polymorphismTypeEEnum, PolymorphismType.IMPLICIT);
+ addEEnumLiteral(polymorphismTypeEEnum, PolymorphismType.EXPLICIT);
+
+ initEEnum(hbCascadeTypeEEnum, HbCascadeType.class, "HbCascadeType");
+ addEEnumLiteral(hbCascadeTypeEEnum, HbCascadeType.ALL);
+ addEEnumLiteral(hbCascadeTypeEEnum, HbCascadeType.PERSIST);
+ addEEnumLiteral(hbCascadeTypeEEnum, HbCascadeType.MERGE);
+ addEEnumLiteral(hbCascadeTypeEEnum, HbCascadeType.REMOVE);
+ addEEnumLiteral(hbCascadeTypeEEnum, HbCascadeType.REFRESH);
+ addEEnumLiteral(hbCascadeTypeEEnum, HbCascadeType.DELETE);
+ addEEnumLiteral(hbCascadeTypeEEnum, HbCascadeType.SAVE_UPDATE);
+ addEEnumLiteral(hbCascadeTypeEEnum, HbCascadeType.REPLICATE);
+ addEEnumLiteral(hbCascadeTypeEEnum, HbCascadeType.DELETE_ORPHAN);
+ addEEnumLiteral(hbCascadeTypeEEnum, HbCascadeType.LOCK);
+ addEEnumLiteral(hbCascadeTypeEEnum, HbCascadeType.EVICT);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // teneo.mapping.source
+ createTeneoAnnotations();
+ // http://www.eclipse.org/emf/2002/Ecore
+ createEcoreAnnotations();
+ // http://annotation.elver.org/internal/Target
+ createTargetAnnotations();
+ // http://annotation.elver.org/internal/Collection
+ createCollectionAnnotations();
+ // teneo/internal/Target
+ createTarget_1Annotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>teneo.mapping.source</b>.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected void createTeneoAnnotations() {
+ String source = "teneo.mapping.source";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "1", "http://hibernate.elver.org/"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void createEcoreAnnotations() {
+ String source = "http://www.eclipse.org/emf/2002/Ecore";
+ addAnnotation
+ (hbAnnotationEClass,
+ source,
+ new String[] {
+ "constraints", "CompatibleEModelElementType AnnotationIsSupported"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http://annotation.elver.org/internal/Target</b>. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void createTargetAnnotations() {
+ String source = "http://annotation.elver.org/internal/Target";
+ addAnnotation
+ (cascadeEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (collectionOfElementsEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (hbMapKeyEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (parameterEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature",
+ "1", "EClass",
+ "2", "EPackage"
+ });
+ addAnnotation
+ (typeEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (whereEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (idBagEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (genericGeneratorEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature",
+ "1", "EClass",
+ "2", "EPackage"
+ });
+ addAnnotation
+ (cacheEClass,
+ source,
+ new String[] {
+ "0", "EReference",
+ "1", "EClass"
+ });
+ addAnnotation
+ (typeDefEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature",
+ "1", "EClass",
+ "2", "EPackage"
+ });
+ addAnnotation
+ (fetchEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (onDeleteEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (proxyEClass,
+ source,
+ new String[] {
+ "0", "EClass"
+ });
+ addAnnotation
+ (indexEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (generatedEClass,
+ source,
+ new String[] {
+ "0", "EAttribute"
+ });
+ addAnnotation
+ (namedQueryEClass,
+ source,
+ new String[] {
+ "0", "EClass"
+ });
+ addAnnotation
+ (filterEClass,
+ source,
+ new String[] {
+ "0", "EClass",
+ "1", "EReference"
+ });
+ addAnnotation
+ (paramDefEClass,
+ source,
+ new String[] {
+ "0", "EClass",
+ "1", "EReference"
+ });
+ addAnnotation
+ (filterDefEClass,
+ source,
+ new String[] {
+ "0", "EClass",
+ "1", "EReference"
+ });
+ addAnnotation
+ (naturalIdEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (mapKeyManyToManyEClass,
+ source,
+ new String[] {
+ "0", "EReference"
+ });
+ addAnnotation
+ (notFoundEClass,
+ source,
+ new String[] {
+ "0", "EReference"
+ });
+ addAnnotation
+ (hbEntityEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (anyEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature"
+ });
+ addAnnotation
+ (anyMetaDefEClass,
+ source,
+ new String[] {
+ "0", "EStructuralFeature",
+ "1", "EClass",
+ "2", "EPackage"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http://annotation.elver.org/internal/Collection</b>. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void createCollectionAnnotations() {
+ String source = "http://annotation.elver.org/internal/Collection";
+ addAnnotation
+ (parameterEClass,
+ source,
+ new String[] {
+ "name", "Parameters",
+ "packageNS", "http://www.eclipse.org/emf/teneo/2006/HbAnnotation"
+ });
+ addAnnotation
+ (genericGeneratorEClass,
+ source,
+ new String[] {
+ "name", "GenericGenerators",
+ "packageNS", "http://www.eclipse.org/emf/teneo/2006/HbAnnotation"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>teneo/internal/Target</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createTarget_1Annotations() {
+ String source = "teneo/internal/Target";
+ addAnnotation
+ (discriminatorFormulaEClass,
+ source,
+ new String[] {
+ "0", "EClass"
+ });
+ addAnnotation
+ (forceDiscriminatorEClass,
+ source,
+ new String[] {
+ "0", "EClass"
+ });
+ addAnnotation
+ (immutableEClass,
+ source,
+ new String[] {
+ "0", "EClass",
+ "1", "EReference"
+ });
+ addAnnotation
+ (formulaEClass,
+ source,
+ new String[] {
+ "0", "EAttribute"
+ });
+ addAnnotation
+ (batchSizeEClass,
+ source,
+ new String[] {
+ "0", "EClass",
+ "1", "EReference"
+ });
+ }
+
+} // HbannotationPackageImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/IdBagImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/IdBagImpl.java
new file mode 100755
index 000000000..dd635791f
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/IdBagImpl.java
@@ -0,0 +1,271 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IdBagImpl.java,v 1.8 2008/01/18 06:21:36 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Id Bag</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.IdBagImpl#getGenerator <em>Generator</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.IdBagImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.IdBagImpl#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IdBagImpl extends HbAnnotationImpl implements IdBag {
+ /**
+ * The default value of the '{@link #getGenerator() <em>Generator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenerator()
+ * @generated
+ * @ordered
+ */
+ protected static final String GENERATOR_EDEFAULT = "increment";
+
+ /**
+ * The cached value of the '{@link #getGenerator() <em>Generator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenerator()
+ * @generated
+ * @ordered
+ */
+ protected String generator = GENERATOR_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "long";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTable() <em>Table</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTable()
+ * @generated
+ * @ordered
+ */
+ protected static final String TABLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTable() <em>Table</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTable()
+ * @generated
+ * @ordered
+ */
+ protected String table = TABLE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IdBagImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.ID_BAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getGenerator() {
+ return generator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGenerator(String newGenerator) {
+ String oldGenerator = generator;
+ generator = newGenerator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.ID_BAG__GENERATOR, oldGenerator, generator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(String newType) {
+ String oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.ID_BAG__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTable() {
+ return table;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTable(String newTable) {
+ String oldTable = table;
+ table = newTable;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.ID_BAG__TABLE, oldTable, table));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.ID_BAG__GENERATOR:
+ return getGenerator();
+ case HbannotationPackage.ID_BAG__TYPE:
+ return getType();
+ case HbannotationPackage.ID_BAG__TABLE:
+ return getTable();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.ID_BAG__GENERATOR:
+ setGenerator((String)newValue);
+ return;
+ case HbannotationPackage.ID_BAG__TYPE:
+ setType((String)newValue);
+ return;
+ case HbannotationPackage.ID_BAG__TABLE:
+ setTable((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.ID_BAG__GENERATOR:
+ setGenerator(GENERATOR_EDEFAULT);
+ return;
+ case HbannotationPackage.ID_BAG__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ case HbannotationPackage.ID_BAG__TABLE:
+ setTable(TABLE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.ID_BAG__GENERATOR:
+ return GENERATOR_EDEFAULT == null ? generator != null : !GENERATOR_EDEFAULT.equals(generator);
+ case HbannotationPackage.ID_BAG__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ case HbannotationPackage.ID_BAG__TABLE:
+ return TABLE_EDEFAULT == null ? table != null : !TABLE_EDEFAULT.equals(table);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (generator: ");
+ result.append(generator);
+ result.append(", type: ");
+ result.append(type);
+ result.append(", table: ");
+ result.append(table);
+ result.append(')');
+ return result.toString();
+ }
+
+} //IdBagImpl \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ImmutableImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ImmutableImpl.java
new file mode 100755
index 000000000..9ee3a24c0
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ImmutableImpl.java
@@ -0,0 +1,42 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ImmutableImpl.java,v 1.2 2010/02/04 11:03:38 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Immutable;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Immutable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ImmutableImpl extends HbAnnotationImpl implements Immutable {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImmutableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.IMMUTABLE;
+ }
+
+} //ImmutableImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/IndexImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/IndexImpl.java
new file mode 100755
index 000000000..15aa130ff
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/IndexImpl.java
@@ -0,0 +1,163 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IndexImpl.java,v 1.4 2008/01/18 06:21:36 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Index</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.IndexImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IndexImpl extends HbAnnotationImpl implements Index {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IndexImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.INDEX;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.INDEX__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.INDEX__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.INDEX__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.INDEX__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.INDEX__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //IndexImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/MapKeyManyToManyImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/MapKeyManyToManyImpl.java
new file mode 100755
index 000000000..510f2e2a3
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/MapKeyManyToManyImpl.java
@@ -0,0 +1,220 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MapKeyManyToManyImpl.java,v 1.2 2010/02/04 11:03:42 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Map Key Many To Many</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.MapKeyManyToManyImpl#getJoinColumns <em>Join Columns</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.MapKeyManyToManyImpl#getTargetEntity <em>Target Entity</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MapKeyManyToManyImpl extends HbAnnotationImpl implements MapKeyManyToMany {
+ /**
+ * The cached value of the '{@link #getJoinColumns() <em>Join Columns</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getJoinColumns()
+ * @generated
+ * @ordered
+ */
+ protected EList<JoinColumn> joinColumns;
+
+ /**
+ * The default value of the '{@link #getTargetEntity() <em>Target Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetEntity()
+ * @generated
+ * @ordered
+ */
+ protected static final String TARGET_ENTITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTargetEntity() <em>Target Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetEntity()
+ * @generated
+ * @ordered
+ */
+ protected String targetEntity = TARGET_ENTITY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MapKeyManyToManyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.MAP_KEY_MANY_TO_MANY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<JoinColumn> getJoinColumns() {
+ if (joinColumns == null) {
+ joinColumns = new EObjectContainmentEList<JoinColumn>(JoinColumn.class, this, HbannotationPackage.MAP_KEY_MANY_TO_MANY__JOIN_COLUMNS);
+ }
+ return joinColumns;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTargetEntity() {
+ return targetEntity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTargetEntity(String newTargetEntity) {
+ String oldTargetEntity = targetEntity;
+ targetEntity = newTargetEntity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.MAP_KEY_MANY_TO_MANY__TARGET_ENTITY, oldTargetEntity, targetEntity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY__JOIN_COLUMNS:
+ return ((InternalEList<?>)getJoinColumns()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY__JOIN_COLUMNS:
+ return getJoinColumns();
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY__TARGET_ENTITY:
+ return getTargetEntity();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY__JOIN_COLUMNS:
+ getJoinColumns().clear();
+ getJoinColumns().addAll((Collection<? extends JoinColumn>)newValue);
+ return;
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY__TARGET_ENTITY:
+ setTargetEntity((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY__JOIN_COLUMNS:
+ getJoinColumns().clear();
+ return;
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY__TARGET_ENTITY:
+ setTargetEntity(TARGET_ENTITY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY__JOIN_COLUMNS:
+ return joinColumns != null && !joinColumns.isEmpty();
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY__TARGET_ENTITY:
+ return TARGET_ENTITY_EDEFAULT == null ? targetEntity != null : !TARGET_ENTITY_EDEFAULT.equals(targetEntity);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (targetEntity: ");
+ result.append(targetEntity);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MapKeyManyToManyImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/MetaValueImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/MetaValueImpl.java
new file mode 100644
index 000000000..b81b5c9d3
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/MetaValueImpl.java
@@ -0,0 +1,217 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MetaValueImpl.java,v 1.2 2010/02/04 11:03:41 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Meta Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.MetaValueImpl#getTargetEntity <em>Target Entity</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.MetaValueImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MetaValueImpl extends HbAnnotationImpl implements MetaValue {
+ /**
+ * The default value of the '{@link #getTargetEntity() <em>Target Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetEntity()
+ * @generated
+ * @ordered
+ */
+ protected static final String TARGET_ENTITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTargetEntity() <em>Target Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetEntity()
+ * @generated
+ * @ordered
+ */
+ protected String targetEntity = TARGET_ENTITY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MetaValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.META_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTargetEntity() {
+ return targetEntity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTargetEntity(String newTargetEntity) {
+ String oldTargetEntity = targetEntity;
+ targetEntity = newTargetEntity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.META_VALUE__TARGET_ENTITY, oldTargetEntity, targetEntity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.META_VALUE__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.META_VALUE__TARGET_ENTITY:
+ return getTargetEntity();
+ case HbannotationPackage.META_VALUE__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.META_VALUE__TARGET_ENTITY:
+ setTargetEntity((String)newValue);
+ return;
+ case HbannotationPackage.META_VALUE__VALUE:
+ setValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.META_VALUE__TARGET_ENTITY:
+ setTargetEntity(TARGET_ENTITY_EDEFAULT);
+ return;
+ case HbannotationPackage.META_VALUE__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.META_VALUE__TARGET_ENTITY:
+ return TARGET_ENTITY_EDEFAULT == null ? targetEntity != null : !TARGET_ENTITY_EDEFAULT.equals(targetEntity);
+ case HbannotationPackage.META_VALUE__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (targetEntity: ");
+ result.append(targetEntity);
+ result.append(", value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MetaValueImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NamedQueryImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NamedQueryImpl.java
new file mode 100755
index 000000000..58863acc4
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NamedQueryImpl.java
@@ -0,0 +1,217 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NamedQueryImpl.java,v 1.2 2010/02/04 11:03:42 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Named Query</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.NamedQueryImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.NamedQueryImpl#getQuery <em>Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NamedQueryImpl extends HbAnnotationImpl implements NamedQuery {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getQuery() <em>Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQuery()
+ * @generated
+ * @ordered
+ */
+ protected static final String QUERY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getQuery() <em>Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQuery()
+ * @generated
+ * @ordered
+ */
+ protected String query = QUERY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NamedQueryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.NAMED_QUERY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.NAMED_QUERY__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getQuery() {
+ return query;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setQuery(String newQuery) {
+ String oldQuery = query;
+ query = newQuery;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.NAMED_QUERY__QUERY, oldQuery, query));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.NAMED_QUERY__NAME:
+ return getName();
+ case HbannotationPackage.NAMED_QUERY__QUERY:
+ return getQuery();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.NAMED_QUERY__NAME:
+ setName((String)newValue);
+ return;
+ case HbannotationPackage.NAMED_QUERY__QUERY:
+ setQuery((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.NAMED_QUERY__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case HbannotationPackage.NAMED_QUERY__QUERY:
+ setQuery(QUERY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.NAMED_QUERY__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case HbannotationPackage.NAMED_QUERY__QUERY:
+ return QUERY_EDEFAULT == null ? query != null : !QUERY_EDEFAULT.equals(query);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", query: ");
+ result.append(query);
+ result.append(')');
+ return result.toString();
+ }
+
+} //NamedQueryImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NaturalIdImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NaturalIdImpl.java
new file mode 100755
index 000000000..9eb4e60cc
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NaturalIdImpl.java
@@ -0,0 +1,163 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NaturalIdImpl.java,v 1.3 2010/02/04 11:03:42 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Natural Id</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.NaturalIdImpl#isMutable <em>Mutable</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NaturalIdImpl extends HbAnnotationImpl implements NaturalId {
+ /**
+ * The default value of the '{@link #isMutable() <em>Mutable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMutable()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean MUTABLE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isMutable() <em>Mutable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMutable()
+ * @generated
+ * @ordered
+ */
+ protected boolean mutable = MUTABLE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NaturalIdImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.NATURAL_ID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMutable() {
+ return mutable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMutable(boolean newMutable) {
+ boolean oldMutable = mutable;
+ mutable = newMutable;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.NATURAL_ID__MUTABLE, oldMutable, mutable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.NATURAL_ID__MUTABLE:
+ return isMutable();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.NATURAL_ID__MUTABLE:
+ setMutable((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.NATURAL_ID__MUTABLE:
+ setMutable(MUTABLE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.NATURAL_ID__MUTABLE:
+ return mutable != MUTABLE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mutable: ");
+ result.append(mutable);
+ result.append(')');
+ return result.toString();
+ }
+
+} //NaturalIdImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NotFoundImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NotFoundImpl.java
new file mode 100755
index 000000000..9576f1d7c
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/NotFoundImpl.java
@@ -0,0 +1,164 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NotFoundImpl.java,v 1.2 2010/02/04 11:03:41 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFound;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Not Found</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.NotFoundImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NotFoundImpl extends HbAnnotationImpl implements NotFound {
+ /**
+ * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAction()
+ * @generated
+ * @ordered
+ */
+ protected static final NotFoundAction ACTION_EDEFAULT = NotFoundAction.EXCEPTION;
+
+ /**
+ * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAction()
+ * @generated
+ * @ordered
+ */
+ protected NotFoundAction action = ACTION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NotFoundImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.NOT_FOUND;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotFoundAction getAction() {
+ return action;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAction(NotFoundAction newAction) {
+ NotFoundAction oldAction = action;
+ action = newAction == null ? ACTION_EDEFAULT : newAction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.NOT_FOUND__ACTION, oldAction, action));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.NOT_FOUND__ACTION:
+ return getAction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.NOT_FOUND__ACTION:
+ setAction((NotFoundAction)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.NOT_FOUND__ACTION:
+ setAction(ACTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.NOT_FOUND__ACTION:
+ return action != ACTION_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (action: ");
+ result.append(action);
+ result.append(')');
+ return result.toString();
+ }
+
+} //NotFoundImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/OnDeleteImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/OnDeleteImpl.java
new file mode 100755
index 000000000..1be199960
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/OnDeleteImpl.java
@@ -0,0 +1,164 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OnDeleteImpl.java,v 1.6 2010/02/04 11:03:43 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>On Delete</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.OnDeleteImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OnDeleteImpl extends HbAnnotationImpl implements OnDelete {
+ /**
+ * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAction()
+ * @generated
+ * @ordered
+ */
+ protected static final OnDeleteAction ACTION_EDEFAULT = OnDeleteAction.NO_ACTION;
+
+ /**
+ * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAction()
+ * @generated
+ * @ordered
+ */
+ protected OnDeleteAction action = ACTION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OnDeleteImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.ON_DELETE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OnDeleteAction getAction() {
+ return action;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAction(OnDeleteAction newAction) {
+ OnDeleteAction oldAction = action;
+ action = newAction == null ? ACTION_EDEFAULT : newAction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.ON_DELETE__ACTION, oldAction, action));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.ON_DELETE__ACTION:
+ return getAction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.ON_DELETE__ACTION:
+ setAction((OnDeleteAction)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.ON_DELETE__ACTION:
+ setAction(ACTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.ON_DELETE__ACTION:
+ return action != ACTION_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (action: ");
+ result.append(action);
+ result.append(')');
+ return result.toString();
+ }
+
+} //OnDeleteImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ParamDefImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ParamDefImpl.java
new file mode 100755
index 000000000..158737963
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ParamDefImpl.java
@@ -0,0 +1,217 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ParamDefImpl.java,v 1.2 2010/02/04 11:03:40 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Param Def</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParamDefImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParamDefImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ParamDefImpl extends HbAnnotationImpl implements ParamDef {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ParamDefImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.PARAM_DEF;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.PARAM_DEF__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(String newType) {
+ String oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.PARAM_DEF__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.PARAM_DEF__NAME:
+ return getName();
+ case HbannotationPackage.PARAM_DEF__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.PARAM_DEF__NAME:
+ setName((String)newValue);
+ return;
+ case HbannotationPackage.PARAM_DEF__TYPE:
+ setType((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.PARAM_DEF__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case HbannotationPackage.PARAM_DEF__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.PARAM_DEF__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case HbannotationPackage.PARAM_DEF__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ParamDefImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ParameterImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ParameterImpl.java
new file mode 100755
index 000000000..12345cf09
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ParameterImpl.java
@@ -0,0 +1,217 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ParameterImpl.java,v 1.7 2008/01/18 06:21:36 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParameterImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ParameterImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ParameterImpl extends HbAnnotationImpl implements Parameter {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.PARAMETER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.PARAMETER__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.PARAMETER__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.PARAMETER__NAME:
+ return getName();
+ case HbannotationPackage.PARAMETER__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.PARAMETER__NAME:
+ setName((String)newValue);
+ return;
+ case HbannotationPackage.PARAMETER__VALUE:
+ setValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.PARAMETER__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case HbannotationPackage.PARAMETER__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.PARAMETER__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case HbannotationPackage.PARAMETER__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ParameterImpl \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ProxyImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ProxyImpl.java
new file mode 100755
index 000000000..d72556ef8
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/ProxyImpl.java
@@ -0,0 +1,217 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ProxyImpl.java,v 1.7 2009/06/11 04:59:21 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Proxy;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Proxy</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ProxyImpl#getProxyClass <em>Proxy Class</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.ProxyImpl#isLazy <em>Lazy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProxyImpl extends HbAnnotationImpl implements Proxy {
+ /**
+ * The default value of the '{@link #getProxyClass() <em>Proxy Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProxyClass()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROXY_CLASS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProxyClass() <em>Proxy Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProxyClass()
+ * @generated
+ * @ordered
+ */
+ protected String proxyClass = PROXY_CLASS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isLazy() <em>Lazy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLazy()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean LAZY_EDEFAULT = true; // TODO The default value literal "" is not valid.
+
+ /**
+ * The cached value of the '{@link #isLazy() <em>Lazy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLazy()
+ * @generated
+ * @ordered
+ */
+ protected boolean lazy = LAZY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProxyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.PROXY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getProxyClass() {
+ return proxyClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProxyClass(String newProxyClass) {
+ String oldProxyClass = proxyClass;
+ proxyClass = newProxyClass;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.PROXY__PROXY_CLASS, oldProxyClass, proxyClass));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLazy() {
+ return lazy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLazy(boolean newLazy) {
+ boolean oldLazy = lazy;
+ lazy = newLazy;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.PROXY__LAZY, oldLazy, lazy));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.PROXY__PROXY_CLASS:
+ return getProxyClass();
+ case HbannotationPackage.PROXY__LAZY:
+ return isLazy();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.PROXY__PROXY_CLASS:
+ setProxyClass((String)newValue);
+ return;
+ case HbannotationPackage.PROXY__LAZY:
+ setLazy((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.PROXY__PROXY_CLASS:
+ setProxyClass(PROXY_CLASS_EDEFAULT);
+ return;
+ case HbannotationPackage.PROXY__LAZY:
+ setLazy(LAZY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.PROXY__PROXY_CLASS:
+ return PROXY_CLASS_EDEFAULT == null ? proxyClass != null : !PROXY_CLASS_EDEFAULT.equals(proxyClass);
+ case HbannotationPackage.PROXY__LAZY:
+ return lazy != LAZY_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (proxyClass: ");
+ result.append(proxyClass);
+ result.append(", lazy: ");
+ result.append(lazy);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ProxyImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/TypeDefImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/TypeDefImpl.java
new file mode 100755
index 000000000..54912c068
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/TypeDefImpl.java
@@ -0,0 +1,257 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TypeDefImpl.java,v 1.8 2008/01/18 06:21:36 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Type Def</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeDefImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeDefImpl#getParameters <em>Parameters</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeDefImpl#getTypeClass <em>Type Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TypeDefImpl extends HbAnnotationImpl implements TypeDef {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getParameters() <em>Parameters</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameters()
+ * @generated
+ * @ordered
+ */
+ protected EList<Parameter> parameters;
+
+ /**
+ * The default value of the '{@link #getTypeClass() <em>Type Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypeClass()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_CLASS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTypeClass() <em>Type Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypeClass()
+ * @generated
+ * @ordered
+ */
+ protected String typeClass = TYPE_CLASS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypeDefImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.TYPE_DEF;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.TYPE_DEF__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Parameter> getParameters() {
+ if (parameters == null) {
+ parameters = new EObjectResolvingEList<Parameter>(Parameter.class, this, HbannotationPackage.TYPE_DEF__PARAMETERS);
+ }
+ return parameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTypeClass() {
+ return typeClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypeClass(String newTypeClass) {
+ String oldTypeClass = typeClass;
+ typeClass = newTypeClass;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.TYPE_DEF__TYPE_CLASS, oldTypeClass, typeClass));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.TYPE_DEF__NAME:
+ return getName();
+ case HbannotationPackage.TYPE_DEF__PARAMETERS:
+ return getParameters();
+ case HbannotationPackage.TYPE_DEF__TYPE_CLASS:
+ return getTypeClass();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.TYPE_DEF__NAME:
+ setName((String)newValue);
+ return;
+ case HbannotationPackage.TYPE_DEF__PARAMETERS:
+ getParameters().clear();
+ getParameters().addAll((Collection<? extends Parameter>)newValue);
+ return;
+ case HbannotationPackage.TYPE_DEF__TYPE_CLASS:
+ setTypeClass((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.TYPE_DEF__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case HbannotationPackage.TYPE_DEF__PARAMETERS:
+ getParameters().clear();
+ return;
+ case HbannotationPackage.TYPE_DEF__TYPE_CLASS:
+ setTypeClass(TYPE_CLASS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.TYPE_DEF__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case HbannotationPackage.TYPE_DEF__PARAMETERS:
+ return parameters != null && !parameters.isEmpty();
+ case HbannotationPackage.TYPE_DEF__TYPE_CLASS:
+ return TYPE_CLASS_EDEFAULT == null ? typeClass != null : !TYPE_CLASS_EDEFAULT.equals(typeClass);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", typeClass: ");
+ result.append(typeClass);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TypeDefImpl \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/TypeImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/TypeImpl.java
new file mode 100755
index 000000000..b0379beb3
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/TypeImpl.java
@@ -0,0 +1,203 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TypeImpl.java,v 1.7 2008/01/18 06:21:37 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.TypeImpl#getParameters <em>Parameters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TypeImpl extends HbAnnotationImpl implements Type {
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getParameters() <em>Parameters</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameters()
+ * @generated
+ * @ordered
+ */
+ protected EList<Parameter> parameters;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(String newType) {
+ String oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.TYPE__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Parameter> getParameters() {
+ if (parameters == null) {
+ parameters = new EObjectResolvingEList<Parameter>(Parameter.class, this, HbannotationPackage.TYPE__PARAMETERS);
+ }
+ return parameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.TYPE__TYPE:
+ return getType();
+ case HbannotationPackage.TYPE__PARAMETERS:
+ return getParameters();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.TYPE__TYPE:
+ setType((String)newValue);
+ return;
+ case HbannotationPackage.TYPE__PARAMETERS:
+ getParameters().clear();
+ getParameters().addAll((Collection<? extends Parameter>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.TYPE__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ case HbannotationPackage.TYPE__PARAMETERS:
+ getParameters().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.TYPE__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ case HbannotationPackage.TYPE__PARAMETERS:
+ return parameters != null && !parameters.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TypeImpl \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/WhereImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/WhereImpl.java
new file mode 100755
index 000000000..11cdbef04
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/impl/WhereImpl.java
@@ -0,0 +1,163 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WhereImpl.java,v 1.7 2008/01/18 06:21:36 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Where</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbannotation.impl.WhereImpl#getClause <em>Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WhereImpl extends HbAnnotationImpl implements Where {
+ /**
+ * The default value of the '{@link #getClause() <em>Clause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClause()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLAUSE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getClause() <em>Clause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClause()
+ * @generated
+ * @ordered
+ */
+ protected String clause = CLAUSE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WhereImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbannotationPackage.Literals.WHERE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getClause() {
+ return clause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClause(String newClause) {
+ String oldClause = clause;
+ clause = newClause;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbannotationPackage.WHERE__CLAUSE, oldClause, clause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbannotationPackage.WHERE__CLAUSE:
+ return getClause();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbannotationPackage.WHERE__CLAUSE:
+ setClause((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.WHERE__CLAUSE:
+ setClause(CLAUSE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbannotationPackage.WHERE__CLAUSE:
+ return CLAUSE_EDEFAULT == null ? clause != null : !CLAUSE_EDEFAULT.equals(clause);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (clause: ");
+ result.append(clause);
+ result.append(')');
+ return result.toString();
+ }
+
+} //WhereImpl \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationAdapterFactory.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationAdapterFactory.java
new file mode 100755
index 000000000..3658d6b33
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationAdapterFactory.java
@@ -0,0 +1,730 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbannotationAdapterFactory.java,v 1.15 2010/02/04 11:03:45 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.teneo.annotations.pannotation.PAnnotation;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Any;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Fetch;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Formula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Generated;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotation;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Immutable;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFound;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Proxy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage
+ * @generated
+ */
+public class HbannotationAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static HbannotationPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbannotationAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = HbannotationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HbannotationSwitch<Adapter> modelSwitch =
+ new HbannotationSwitch<Adapter>() {
+ @Override
+ public Adapter caseHbAnnotation(HbAnnotation object) {
+ return createHbAnnotationAdapter();
+ }
+ @Override
+ public Adapter caseCascade(Cascade object) {
+ return createCascadeAdapter();
+ }
+ @Override
+ public Adapter caseCollectionOfElements(CollectionOfElements object) {
+ return createCollectionOfElementsAdapter();
+ }
+ @Override
+ public Adapter caseHbMapKey(HbMapKey object) {
+ return createHbMapKeyAdapter();
+ }
+ @Override
+ public Adapter caseParameter(Parameter object) {
+ return createParameterAdapter();
+ }
+ @Override
+ public Adapter caseType(Type object) {
+ return createTypeAdapter();
+ }
+ @Override
+ public Adapter caseWhere(Where object) {
+ return createWhereAdapter();
+ }
+ @Override
+ public Adapter caseIdBag(IdBag object) {
+ return createIdBagAdapter();
+ }
+ @Override
+ public Adapter caseGenericGenerator(GenericGenerator object) {
+ return createGenericGeneratorAdapter();
+ }
+ @Override
+ public Adapter caseCache(Cache object) {
+ return createCacheAdapter();
+ }
+ @Override
+ public Adapter caseTypeDef(TypeDef object) {
+ return createTypeDefAdapter();
+ }
+ @Override
+ public Adapter caseFetch(Fetch object) {
+ return createFetchAdapter();
+ }
+ @Override
+ public Adapter caseOnDelete(OnDelete object) {
+ return createOnDeleteAdapter();
+ }
+ @Override
+ public Adapter caseProxy(Proxy object) {
+ return createProxyAdapter();
+ }
+ @Override
+ public Adapter caseIndex(Index object) {
+ return createIndexAdapter();
+ }
+ @Override
+ public Adapter caseGenerated(Generated object) {
+ return createGeneratedAdapter();
+ }
+ @Override
+ public Adapter caseNamedQuery(NamedQuery object) {
+ return createNamedQueryAdapter();
+ }
+ @Override
+ public Adapter caseFilter(Filter object) {
+ return createFilterAdapter();
+ }
+ @Override
+ public Adapter caseParamDef(ParamDef object) {
+ return createParamDefAdapter();
+ }
+ @Override
+ public Adapter caseFilterDef(FilterDef object) {
+ return createFilterDefAdapter();
+ }
+ @Override
+ public Adapter caseDiscriminatorFormula(DiscriminatorFormula object) {
+ return createDiscriminatorFormulaAdapter();
+ }
+ @Override
+ public Adapter caseNaturalId(NaturalId object) {
+ return createNaturalIdAdapter();
+ }
+ @Override
+ public Adapter caseMapKeyManyToMany(MapKeyManyToMany object) {
+ return createMapKeyManyToManyAdapter();
+ }
+ @Override
+ public Adapter caseForceDiscriminator(ForceDiscriminator object) {
+ return createForceDiscriminatorAdapter();
+ }
+ @Override
+ public Adapter caseImmutable(Immutable object) {
+ return createImmutableAdapter();
+ }
+ @Override
+ public Adapter caseFormula(Formula object) {
+ return createFormulaAdapter();
+ }
+ @Override
+ public Adapter caseNotFound(NotFound object) {
+ return createNotFoundAdapter();
+ }
+ @Override
+ public Adapter caseHbEntity(HbEntity object) {
+ return createHbEntityAdapter();
+ }
+ @Override
+ public Adapter caseBatchSize(BatchSize object) {
+ return createBatchSizeAdapter();
+ }
+ @Override
+ public Adapter caseAny(Any object) {
+ return createAnyAdapter();
+ }
+ @Override
+ public Adapter caseMetaValue(MetaValue object) {
+ return createMetaValueAdapter();
+ }
+ @Override
+ public Adapter caseAnyMetaDef(AnyMetaDef object) {
+ return createAnyMetaDefAdapter();
+ }
+ @Override
+ public Adapter casePAnnotation(PAnnotation object) {
+ return createPAnnotationAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotation <em>Hb Annotation</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotation
+ * @generated
+ */
+ public Adapter createHbAnnotationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cascade <em>Cascade</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Cascade
+ * @generated
+ */
+ public Adapter createCascadeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements <em>Collection Of Elements</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements
+ * @generated
+ */
+ public Adapter createCollectionOfElementsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey <em>Hb Map Key</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey
+ * @generated
+ */
+ public Adapter createHbMapKeyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter <em>Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Parameter
+ * @generated
+ */
+ public Adapter createParameterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Type <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Type
+ * @generated
+ */
+ public Adapter createTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Where <em>Where</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Where
+ * @generated
+ */
+ public Adapter createWhereAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag <em>Id Bag</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.IdBag
+ * @generated
+ */
+ public Adapter createIdBagAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator <em>Generic Generator</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator
+ * @generated
+ */
+ public Adapter createGenericGeneratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache <em>Cache</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Cache
+ * @generated
+ */
+ public Adapter createCacheAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef <em>Type Def</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef
+ * @generated
+ */
+ public Adapter createTypeDefAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Fetch <em>Fetch</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Fetch
+ * @generated
+ */
+ public Adapter createFetchAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete <em>On Delete</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete
+ * @generated
+ */
+ public Adapter createOnDeleteAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Proxy <em>Proxy</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Proxy
+ * @generated
+ */
+ public Adapter createProxyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Index <em>Index</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Index
+ * @generated
+ */
+ public Adapter createIndexAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Generated <em>Generated</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Generated
+ * @generated
+ */
+ public Adapter createGeneratedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery <em>Named Query</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery
+ * @generated
+ */
+ public Adapter createNamedQueryAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter <em>Filter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Filter
+ * @generated
+ */
+ public Adapter createFilterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef <em>Param Def</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef
+ * @generated
+ */
+ public Adapter createParamDefAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef <em>Filter Def</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef
+ * @generated
+ */
+ public Adapter createFilterDefAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula <em>Discriminator Formula</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula
+ * @generated
+ */
+ public Adapter createDiscriminatorFormulaAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId <em>Natural Id</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId
+ * @generated
+ */
+ public Adapter createNaturalIdAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany <em>Map Key Many To Many</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany
+ * @generated
+ */
+ public Adapter createMapKeyManyToManyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator <em>Force Discriminator</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator
+ * @generated
+ */
+ public Adapter createForceDiscriminatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Immutable <em>Immutable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Immutable
+ * @generated
+ */
+ public Adapter createImmutableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Formula <em>Formula</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Formula
+ * @generated
+ */
+ public Adapter createFormulaAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.NotFound <em>Not Found</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.NotFound
+ * @generated
+ */
+ public Adapter createNotFoundAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity <em>Hb Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity
+ * @generated
+ */
+ public Adapter createHbEntityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize <em>Batch Size</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize
+ * @generated
+ */
+ public Adapter createBatchSizeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.Any <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.Any
+ * @generated
+ */
+ public Adapter createAnyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue <em>Meta Value</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue
+ * @generated
+ */
+ public Adapter createMetaValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef <em>Any Meta Def</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef
+ * @generated
+ */
+ public Adapter createAnyMetaDefAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.annotations.pannotation.PAnnotation <em>PAnnotation</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.annotations.pannotation.PAnnotation
+ * @generated
+ */
+ public Adapter createPAnnotationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //HbannotationAdapterFactory
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationSwitch.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationSwitch.java
new file mode 100755
index 000000000..20406d7bb
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationSwitch.java
@@ -0,0 +1,870 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbannotationSwitch.java,v 1.14 2010/02/04 11:03:45 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.teneo.annotations.pannotation.PAnnotation;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Any;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Fetch;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Formula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Generated;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotation;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Immutable;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFound;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Proxy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+
+/**
+ * <!-- begin-user-doc --> The <b>Switch</b> for the model's inheritance hierarchy. It supports the
+ * call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for
+ * each class of the model, starting with the actual class of the object and proceeding up the
+ * inheritance hierarchy until a non-null result is returned, which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage
+ * @generated
+ */
+public class HbannotationSwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected static HbannotationPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HbannotationSwitch() {
+ if (modelPackage == null) {
+ modelPackage = HbannotationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case HbannotationPackage.HB_ANNOTATION: {
+ HbAnnotation hbAnnotation = (HbAnnotation)theEObject;
+ T result = caseHbAnnotation(hbAnnotation);
+ if (result == null) result = casePAnnotation(hbAnnotation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.CASCADE: {
+ Cascade cascade = (Cascade)theEObject;
+ T result = caseCascade(cascade);
+ if (result == null) result = caseHbAnnotation(cascade);
+ if (result == null) result = casePAnnotation(cascade);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.COLLECTION_OF_ELEMENTS: {
+ CollectionOfElements collectionOfElements = (CollectionOfElements)theEObject;
+ T result = caseCollectionOfElements(collectionOfElements);
+ if (result == null) result = caseHbAnnotation(collectionOfElements);
+ if (result == null) result = casePAnnotation(collectionOfElements);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.HB_MAP_KEY: {
+ HbMapKey hbMapKey = (HbMapKey)theEObject;
+ T result = caseHbMapKey(hbMapKey);
+ if (result == null) result = caseHbAnnotation(hbMapKey);
+ if (result == null) result = casePAnnotation(hbMapKey);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.PARAMETER: {
+ Parameter parameter = (Parameter)theEObject;
+ T result = caseParameter(parameter);
+ if (result == null) result = caseHbAnnotation(parameter);
+ if (result == null) result = casePAnnotation(parameter);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.TYPE: {
+ Type type = (Type)theEObject;
+ T result = caseType(type);
+ if (result == null) result = caseHbAnnotation(type);
+ if (result == null) result = casePAnnotation(type);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.WHERE: {
+ Where where = (Where)theEObject;
+ T result = caseWhere(where);
+ if (result == null) result = caseHbAnnotation(where);
+ if (result == null) result = casePAnnotation(where);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.ID_BAG: {
+ IdBag idBag = (IdBag)theEObject;
+ T result = caseIdBag(idBag);
+ if (result == null) result = caseHbAnnotation(idBag);
+ if (result == null) result = casePAnnotation(idBag);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.GENERIC_GENERATOR: {
+ GenericGenerator genericGenerator = (GenericGenerator)theEObject;
+ T result = caseGenericGenerator(genericGenerator);
+ if (result == null) result = caseHbAnnotation(genericGenerator);
+ if (result == null) result = casePAnnotation(genericGenerator);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.CACHE: {
+ Cache cache = (Cache)theEObject;
+ T result = caseCache(cache);
+ if (result == null) result = caseHbAnnotation(cache);
+ if (result == null) result = casePAnnotation(cache);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.TYPE_DEF: {
+ TypeDef typeDef = (TypeDef)theEObject;
+ T result = caseTypeDef(typeDef);
+ if (result == null) result = caseHbAnnotation(typeDef);
+ if (result == null) result = casePAnnotation(typeDef);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.FETCH: {
+ Fetch fetch = (Fetch)theEObject;
+ T result = caseFetch(fetch);
+ if (result == null) result = caseHbAnnotation(fetch);
+ if (result == null) result = casePAnnotation(fetch);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.ON_DELETE: {
+ OnDelete onDelete = (OnDelete)theEObject;
+ T result = caseOnDelete(onDelete);
+ if (result == null) result = caseHbAnnotation(onDelete);
+ if (result == null) result = casePAnnotation(onDelete);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.PROXY: {
+ Proxy proxy = (Proxy)theEObject;
+ T result = caseProxy(proxy);
+ if (result == null) result = caseHbAnnotation(proxy);
+ if (result == null) result = casePAnnotation(proxy);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.INDEX: {
+ Index index = (Index)theEObject;
+ T result = caseIndex(index);
+ if (result == null) result = caseHbAnnotation(index);
+ if (result == null) result = casePAnnotation(index);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.GENERATED: {
+ Generated generated = (Generated)theEObject;
+ T result = caseGenerated(generated);
+ if (result == null) result = caseHbAnnotation(generated);
+ if (result == null) result = casePAnnotation(generated);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.NAMED_QUERY: {
+ NamedQuery namedQuery = (NamedQuery)theEObject;
+ T result = caseNamedQuery(namedQuery);
+ if (result == null) result = caseHbAnnotation(namedQuery);
+ if (result == null) result = casePAnnotation(namedQuery);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.FILTER: {
+ Filter filter = (Filter)theEObject;
+ T result = caseFilter(filter);
+ if (result == null) result = caseHbAnnotation(filter);
+ if (result == null) result = casePAnnotation(filter);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.PARAM_DEF: {
+ ParamDef paramDef = (ParamDef)theEObject;
+ T result = caseParamDef(paramDef);
+ if (result == null) result = caseHbAnnotation(paramDef);
+ if (result == null) result = casePAnnotation(paramDef);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.FILTER_DEF: {
+ FilterDef filterDef = (FilterDef)theEObject;
+ T result = caseFilterDef(filterDef);
+ if (result == null) result = caseHbAnnotation(filterDef);
+ if (result == null) result = casePAnnotation(filterDef);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.DISCRIMINATOR_FORMULA: {
+ DiscriminatorFormula discriminatorFormula = (DiscriminatorFormula)theEObject;
+ T result = caseDiscriminatorFormula(discriminatorFormula);
+ if (result == null) result = caseHbAnnotation(discriminatorFormula);
+ if (result == null) result = casePAnnotation(discriminatorFormula);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.NATURAL_ID: {
+ NaturalId naturalId = (NaturalId)theEObject;
+ T result = caseNaturalId(naturalId);
+ if (result == null) result = caseHbAnnotation(naturalId);
+ if (result == null) result = casePAnnotation(naturalId);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY: {
+ MapKeyManyToMany mapKeyManyToMany = (MapKeyManyToMany)theEObject;
+ T result = caseMapKeyManyToMany(mapKeyManyToMany);
+ if (result == null) result = caseHbAnnotation(mapKeyManyToMany);
+ if (result == null) result = casePAnnotation(mapKeyManyToMany);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.FORCE_DISCRIMINATOR: {
+ ForceDiscriminator forceDiscriminator = (ForceDiscriminator)theEObject;
+ T result = caseForceDiscriminator(forceDiscriminator);
+ if (result == null) result = caseHbAnnotation(forceDiscriminator);
+ if (result == null) result = casePAnnotation(forceDiscriminator);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.IMMUTABLE: {
+ Immutable immutable = (Immutable)theEObject;
+ T result = caseImmutable(immutable);
+ if (result == null) result = caseHbAnnotation(immutable);
+ if (result == null) result = casePAnnotation(immutable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.FORMULA: {
+ Formula formula = (Formula)theEObject;
+ T result = caseFormula(formula);
+ if (result == null) result = caseHbAnnotation(formula);
+ if (result == null) result = casePAnnotation(formula);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.NOT_FOUND: {
+ NotFound notFound = (NotFound)theEObject;
+ T result = caseNotFound(notFound);
+ if (result == null) result = caseHbAnnotation(notFound);
+ if (result == null) result = casePAnnotation(notFound);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.HB_ENTITY: {
+ HbEntity hbEntity = (HbEntity)theEObject;
+ T result = caseHbEntity(hbEntity);
+ if (result == null) result = caseHbAnnotation(hbEntity);
+ if (result == null) result = casePAnnotation(hbEntity);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.BATCH_SIZE: {
+ BatchSize batchSize = (BatchSize)theEObject;
+ T result = caseBatchSize(batchSize);
+ if (result == null) result = caseHbAnnotation(batchSize);
+ if (result == null) result = casePAnnotation(batchSize);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.ANY: {
+ Any any = (Any)theEObject;
+ T result = caseAny(any);
+ if (result == null) result = caseHbAnnotation(any);
+ if (result == null) result = casePAnnotation(any);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.META_VALUE: {
+ MetaValue metaValue = (MetaValue)theEObject;
+ T result = caseMetaValue(metaValue);
+ if (result == null) result = caseHbAnnotation(metaValue);
+ if (result == null) result = casePAnnotation(metaValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbannotationPackage.ANY_META_DEF: {
+ AnyMetaDef anyMetaDef = (AnyMetaDef)theEObject;
+ T result = caseAnyMetaDef(anyMetaDef);
+ if (result == null) result = caseHbAnnotation(anyMetaDef);
+ if (result == null) result = casePAnnotation(anyMetaDef);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hb Annotation</em>'.
+ * <!-- begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hb Annotation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHbAnnotation(HbAnnotation object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cascade</em>'. <!--
+ * begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cascade</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCascade(Cascade object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Collection Of Elements</em>'.
+ * <!-- begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Collection Of Elements</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCollectionOfElements(CollectionOfElements object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hb Map Key</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hb Map Key</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHbMapKey(HbMapKey object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Parameter</em>'.
+ * <!-- begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Parameter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseParameter(Parameter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Type</em>'. <!--
+ * begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseType(Type object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Where</em>'. <!--
+ * begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Where</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWhere(Where object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Id Bag</em>'. <!--
+ * begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Id Bag</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIdBag(IdBag object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Generic Generator</em>'.
+ * <!-- begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Generic Generator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenericGenerator(GenericGenerator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cache</em>'. <!--
+ * begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cache</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCache(Cache object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Type Def</em>'. <!--
+ * begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Type Def</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTypeDef(TypeDef object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Fetch</em>'. <!--
+ * begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Fetch</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFetch(Fetch object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>On Delete</em>'.
+ * <!-- begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>On Delete</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOnDelete(OnDelete object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Proxy</em>'. <!--
+ * begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Proxy</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProxy(Proxy object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Index</em>'. <!--
+ * begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Index</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIndex(Index object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Generated</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Generated</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenerated(Generated object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Named Query</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Named Query</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNamedQuery(NamedQuery object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Filter</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Filter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFilter(Filter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Param Def</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Param Def</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseParamDef(ParamDef object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Filter Def</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Filter Def</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFilterDef(FilterDef object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Discriminator Formula</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Discriminator Formula</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDiscriminatorFormula(DiscriminatorFormula object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Natural Id</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Natural Id</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNaturalId(NaturalId object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Map Key Many To Many</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Map Key Many To Many</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMapKeyManyToMany(MapKeyManyToMany object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Force Discriminator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Force Discriminator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseForceDiscriminator(ForceDiscriminator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Immutable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Immutable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseImmutable(Immutable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Formula</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Formula</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFormula(Formula object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Not Found</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Not Found</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNotFound(NotFound object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hb Entity</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hb Entity</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHbEntity(HbEntity object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Batch Size</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Batch Size</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBatchSize(BatchSize object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Any</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Any</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAny(Any object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Meta Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Meta Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMetaValue(MetaValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Any Meta Def</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Any Meta Def</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAnyMetaDef(AnyMetaDef object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PAnnotation</em>'.
+ * <!-- begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PAnnotation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePAnnotation(PAnnotation object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. <!--
+ * begin-user-doc --> This implementation returns null; returning a non-null result will
+ * terminate the switch, but this is the last case anyway. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // HbannotationSwitch
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationValidator.java
new file mode 100755
index 000000000..a7f4da2f9
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/util/HbannotationValidator.java
@@ -0,0 +1,920 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbannotationValidator.java,v 1.19 2010/02/04 11:03:45 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.EObjectValidator;
+import org.eclipse.emf.teneo.annotations.pannotation.util.PannotationValidator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Any;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Fetch;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Formula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Generated;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotation;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Immutable;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MetaValue;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFound;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFoundAction;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.PolymorphismType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Proxy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+
+/**
+ * <!-- begin-user-doc --> The <b>Validator</b> for the model. <!-- end-user-doc
+ * -->
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage
+ * @generated
+ */
+public class HbannotationValidator extends EObjectValidator {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public static final HbannotationValidator INSTANCE = new HbannotationValidator();
+
+ /**
+ * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.common.util.Diagnostic#getSource()
+ * @see org.eclipse.emf.common.util.Diagnostic#getCode()
+ * @generated
+ */
+ public static final String DIAGNOSTIC_SOURCE = "org.eclipse.emf.teneo.hibernate.hbannotation";
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0;
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;
+
+ /**
+ * The cached base package validator.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected PannotationValidator pannotationValidator;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ public HbannotationValidator() {
+ super();
+ pannotationValidator = PannotationValidator.INSTANCE;
+ }
+
+ /**
+ * Returns the package of this validator switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EPackage getEPackage() {
+ return HbannotationPackage.eINSTANCE;
+ }
+
+ /**
+ * Calls <code>validateXXX</code> for the corresponding classifier of the model.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validate(int classifierID, Object value,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ switch (classifierID) {
+ case HbannotationPackage.HB_ANNOTATION:
+ return validateHbAnnotation((HbAnnotation)value, diagnostics, context);
+ case HbannotationPackage.CASCADE:
+ return validateCascade((Cascade)value, diagnostics, context);
+ case HbannotationPackage.COLLECTION_OF_ELEMENTS:
+ return validateCollectionOfElements((CollectionOfElements)value, diagnostics, context);
+ case HbannotationPackage.HB_MAP_KEY:
+ return validateHbMapKey((HbMapKey)value, diagnostics, context);
+ case HbannotationPackage.PARAMETER:
+ return validateParameter((Parameter)value, diagnostics, context);
+ case HbannotationPackage.TYPE:
+ return validateType((Type)value, diagnostics, context);
+ case HbannotationPackage.WHERE:
+ return validateWhere((Where)value, diagnostics, context);
+ case HbannotationPackage.ID_BAG:
+ return validateIdBag((IdBag)value, diagnostics, context);
+ case HbannotationPackage.GENERIC_GENERATOR:
+ return validateGenericGenerator((GenericGenerator)value, diagnostics, context);
+ case HbannotationPackage.CACHE:
+ return validateCache((Cache)value, diagnostics, context);
+ case HbannotationPackage.TYPE_DEF:
+ return validateTypeDef((TypeDef)value, diagnostics, context);
+ case HbannotationPackage.FETCH:
+ return validateFetch((Fetch)value, diagnostics, context);
+ case HbannotationPackage.ON_DELETE:
+ return validateOnDelete((OnDelete)value, diagnostics, context);
+ case HbannotationPackage.PROXY:
+ return validateProxy((Proxy)value, diagnostics, context);
+ case HbannotationPackage.INDEX:
+ return validateIndex((Index)value, diagnostics, context);
+ case HbannotationPackage.GENERATED:
+ return validateGenerated((Generated)value, diagnostics, context);
+ case HbannotationPackage.NAMED_QUERY:
+ return validateNamedQuery((NamedQuery)value, diagnostics, context);
+ case HbannotationPackage.FILTER:
+ return validateFilter((Filter)value, diagnostics, context);
+ case HbannotationPackage.PARAM_DEF:
+ return validateParamDef((ParamDef)value, diagnostics, context);
+ case HbannotationPackage.FILTER_DEF:
+ return validateFilterDef((FilterDef)value, diagnostics, context);
+ case HbannotationPackage.DISCRIMINATOR_FORMULA:
+ return validateDiscriminatorFormula((DiscriminatorFormula)value, diagnostics, context);
+ case HbannotationPackage.NATURAL_ID:
+ return validateNaturalId((NaturalId)value, diagnostics, context);
+ case HbannotationPackage.MAP_KEY_MANY_TO_MANY:
+ return validateMapKeyManyToMany((MapKeyManyToMany)value, diagnostics, context);
+ case HbannotationPackage.FORCE_DISCRIMINATOR:
+ return validateForceDiscriminator((ForceDiscriminator)value, diagnostics, context);
+ case HbannotationPackage.IMMUTABLE:
+ return validateImmutable((Immutable)value, diagnostics, context);
+ case HbannotationPackage.FORMULA:
+ return validateFormula((Formula)value, diagnostics, context);
+ case HbannotationPackage.NOT_FOUND:
+ return validateNotFound((NotFound)value, diagnostics, context);
+ case HbannotationPackage.HB_ENTITY:
+ return validateHbEntity((HbEntity)value, diagnostics, context);
+ case HbannotationPackage.BATCH_SIZE:
+ return validateBatchSize((BatchSize)value, diagnostics, context);
+ case HbannotationPackage.ANY:
+ return validateAny((Any)value, diagnostics, context);
+ case HbannotationPackage.META_VALUE:
+ return validateMetaValue((MetaValue)value, diagnostics, context);
+ case HbannotationPackage.ANY_META_DEF:
+ return validateAnyMetaDef((AnyMetaDef)value, diagnostics, context);
+ case HbannotationPackage.CACHE_CONCURRENCY_STRATEGY:
+ return validateCacheConcurrencyStrategy((CacheConcurrencyStrategy)value, diagnostics, context);
+ case HbannotationPackage.HB_FETCH_TYPE:
+ return validateHbFetchType((HbFetchType)value, diagnostics, context);
+ case HbannotationPackage.ON_DELETE_ACTION:
+ return validateOnDeleteAction((OnDeleteAction)value, diagnostics, context);
+ case HbannotationPackage.GENERATION_TIME:
+ return validateGenerationTime((GenerationTime)value, diagnostics, context);
+ case HbannotationPackage.NOT_FOUND_ACTION:
+ return validateNotFoundAction((NotFoundAction)value, diagnostics, context);
+ case HbannotationPackage.OPTIMISTIC_LOCK_TYPE:
+ return validateOptimisticLockType((OptimisticLockType)value, diagnostics, context);
+ case HbannotationPackage.POLYMORPHISM_TYPE:
+ return validatePolymorphismType((PolymorphismType)value, diagnostics, context);
+ case HbannotationPackage.HB_CASCADE_TYPE:
+ return validateHbCascadeType((HbCascadeType)value, diagnostics, context);
+ default:
+ return true;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHbAnnotation(HbAnnotation hbAnnotation,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(hbAnnotation, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(hbAnnotation, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(hbAnnotation, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(hbAnnotation, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(hbAnnotation, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(hbAnnotation, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(hbAnnotation, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(hbAnnotation, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(hbAnnotation, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the CompatibleEModelElementType constraint of '<em>Hb Annotation</em>'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHbAnnotation_CompatibleEModelElementType(
+ HbAnnotation hbAnnotation, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ // TODO override the constraint, if desired
+ // -> uncomment the scaffolding
+ // -> specify the condition that violates the constraint
+ // -> verify the diagnostic details, including severity, code, and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ return pannotationValidator.validatePAnnotation_CompatibleEModelElementType(hbAnnotation, diagnostics, context);
+ }
+
+ /**
+ * Validates the AnnotationIsSupported constraint of '<em>Hb Annotation</em>'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHbAnnotation_AnnotationIsSupported(
+ HbAnnotation hbAnnotation, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ // TODO override the constraint, if desired
+ // -> uncomment the scaffolding
+ // -> specify the condition that violates the constraint
+ // -> verify the diagnostic details, including severity, code, and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ return pannotationValidator.validatePAnnotation_AnnotationIsSupported(hbAnnotation, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCascade(Cascade cascade,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(cascade, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(cascade, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(cascade, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(cascade, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(cascade, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(cascade, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(cascade, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(cascade, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(cascade, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCollectionOfElements(
+ CollectionOfElements collectionOfElements,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(collectionOfElements, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(collectionOfElements, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(collectionOfElements, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(collectionOfElements, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(collectionOfElements, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(collectionOfElements, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(collectionOfElements, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(collectionOfElements, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(collectionOfElements, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHbMapKey(HbMapKey hbMapKey,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(hbMapKey, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(hbMapKey, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(hbMapKey, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(hbMapKey, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(hbMapKey, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(hbMapKey, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(hbMapKey, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(hbMapKey, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(hbMapKey, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateParameter(Parameter parameter,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(parameter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(parameter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(parameter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(parameter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(parameter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(parameter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(parameter, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(parameter, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(parameter, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateType(Type type, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(type, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(type, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(type, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(type, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(type, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(type, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(type, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(type, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(type, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateWhere(Where where, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(where, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(where, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(where, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(where, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(where, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(where, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(where, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(where, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(where, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateIdBag(IdBag idBag, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(idBag, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(idBag, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(idBag, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(idBag, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(idBag, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(idBag, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(idBag, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(idBag, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(idBag, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGenericGenerator(GenericGenerator genericGenerator,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(genericGenerator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(genericGenerator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(genericGenerator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(genericGenerator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(genericGenerator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(genericGenerator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(genericGenerator, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(genericGenerator, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(genericGenerator, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCache(Cache cache, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(cache, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(cache, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(cache, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(cache, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(cache, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(cache, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(cache, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(cache, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(cache, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeDef(TypeDef typeDef,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(typeDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(typeDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(typeDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(typeDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(typeDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(typeDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(typeDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(typeDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(typeDef, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateFetch(Fetch fetch, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(fetch, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(fetch, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(fetch, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(fetch, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(fetch, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(fetch, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(fetch, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(fetch, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(fetch, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOnDelete(OnDelete onDelete,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(onDelete, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(onDelete, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(onDelete, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(onDelete, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(onDelete, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(onDelete, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(onDelete, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(onDelete, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(onDelete, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateProxy(Proxy proxy, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(proxy, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(proxy, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(proxy, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(proxy, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(proxy, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(proxy, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(proxy, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(proxy, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(proxy, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNamedQuery(NamedQuery namedQuery,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(namedQuery, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(namedQuery, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(namedQuery, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(namedQuery, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(namedQuery, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(namedQuery, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(namedQuery, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(namedQuery, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(namedQuery, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateFilter(Filter filter, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(filter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(filter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(filter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(filter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(filter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(filter, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(filter, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(filter, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(filter, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateParamDef(ParamDef paramDef,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(paramDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(paramDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(paramDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(paramDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(paramDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(paramDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(paramDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(paramDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(paramDef, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateFilterDef(FilterDef filterDef,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(filterDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(filterDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(filterDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(filterDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(filterDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(filterDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(filterDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(filterDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(filterDef, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDiscriminatorFormula(
+ DiscriminatorFormula discriminatorFormula,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(discriminatorFormula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(discriminatorFormula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(discriminatorFormula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(discriminatorFormula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(discriminatorFormula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(discriminatorFormula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(discriminatorFormula, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(discriminatorFormula, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(discriminatorFormula, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNaturalId(NaturalId naturalId,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(naturalId, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(naturalId, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(naturalId, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(naturalId, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(naturalId, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(naturalId, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(naturalId, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(naturalId, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(naturalId, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMapKeyManyToMany(MapKeyManyToMany mapKeyManyToMany,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(mapKeyManyToMany, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(mapKeyManyToMany, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(mapKeyManyToMany, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(mapKeyManyToMany, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(mapKeyManyToMany, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(mapKeyManyToMany, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(mapKeyManyToMany, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(mapKeyManyToMany, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(mapKeyManyToMany, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateForceDiscriminator(
+ ForceDiscriminator forceDiscriminator, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(forceDiscriminator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(forceDiscriminator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(forceDiscriminator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(forceDiscriminator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(forceDiscriminator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(forceDiscriminator, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(forceDiscriminator, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(forceDiscriminator, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(forceDiscriminator, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateImmutable(Immutable immutable,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(immutable, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(immutable, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(immutable, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(immutable, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(immutable, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(immutable, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(immutable, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(immutable, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(immutable, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateFormula(Formula formula,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(formula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(formula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(formula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(formula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(formula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(formula, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(formula, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(formula, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(formula, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotFound(NotFound notFound,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(notFound, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(notFound, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(notFound, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(notFound, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(notFound, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(notFound, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(notFound, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(notFound, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(notFound, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHbEntity(HbEntity hbEntity,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(hbEntity, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(hbEntity, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(hbEntity, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(hbEntity, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(hbEntity, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(hbEntity, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(hbEntity, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(hbEntity, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(hbEntity, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBatchSize(BatchSize batchSize, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(batchSize, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(batchSize, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(batchSize, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(batchSize, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(batchSize, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(batchSize, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(batchSize, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(batchSize, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(batchSize, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAny(Any any, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(any, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(any, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(any, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(any, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(any, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(any, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(any, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(any, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(any, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMetaValue(MetaValue metaValue, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(metaValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(metaValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(metaValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(metaValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(metaValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(metaValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(metaValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(metaValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(metaValue, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAnyMetaDef(AnyMetaDef anyMetaDef, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(anyMetaDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(anyMetaDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(anyMetaDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(anyMetaDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(anyMetaDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(anyMetaDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(anyMetaDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(anyMetaDef, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(anyMetaDef, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateIndex(Index index, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(index, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(index, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(index, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(index, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(index, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(index, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(index, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(index, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(index, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGenerated(Generated generated,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ boolean result = validate_EveryMultiplicityConforms(generated, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(generated, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(generated, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(generated, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(generated, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(generated, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(generated, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_CompatibleEModelElementType(generated, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHbAnnotation_AnnotationIsSupported(generated, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCacheConcurrencyStrategy(
+ CacheConcurrencyStrategy cacheConcurrencyStrategy,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHbFetchType(HbFetchType hbFetchType,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOnDeleteAction(OnDeleteAction onDeleteAction,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGenerationTime(GenerationTime generationTime,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotFoundAction(NotFoundAction notFoundAction,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOptimisticLockType(
+ OptimisticLockType optimisticLockType, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePolymorphismType(PolymorphismType polymorphismType,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHbCascadeType(HbCascadeType hbCascadeType,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return true;
+ }
+
+ /**
+ * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ // TODO
+ // Specialize this to return a resource locator for messages specific to this validator.
+ // Ensure that you remove @generated or mark it @generated NOT
+ return super.getResourceLocator();
+ }
+
+} // HbannotationValidator
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CacheValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CacheValidator.java
new file mode 100755
index 000000000..82dcb2c73
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CacheValidator.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CacheValidator.java,v 1.1 2007/02/08 23:13:12 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.Cache}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface CacheValidator {
+ boolean validate();
+
+ boolean validateUsage(CacheConcurrencyStrategy value);
+ boolean validateRegion(String value);
+ boolean validateInclude(String value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CascadeValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CascadeValidator.java
new file mode 100755
index 000000000..2c72d989e
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CascadeValidator.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CascadeValidator.java,v 1.1 2007/02/08 23:13:12 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.teneo.annotations.pannotation.CascadeType;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.Cascade}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface CascadeValidator {
+ boolean validate();
+
+ boolean validateValue(EList<CascadeType> value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CollectionOfElementsValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CollectionOfElementsValidator.java
new file mode 100755
index 000000000..584319e50
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/CollectionOfElementsValidator.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CollectionOfElementsValidator.java,v 1.1 2007/02/08 23:13:12 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.teneo.annotations.pannotation.FetchType;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface CollectionOfElementsValidator {
+ boolean validate();
+
+ boolean validateTargetElement(String value);
+ boolean validateFetch(FetchType value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FetchValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FetchValidator.java
new file mode 100755
index 000000000..1c787c8ab
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FetchValidator.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FetchValidator.java,v 1.1 2007/02/08 23:13:13 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbFetchType;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.Fetch}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface FetchValidator {
+ boolean validate();
+
+ boolean validateValue(HbFetchType value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterDefValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterDefValidator.java
new file mode 100755
index 000000000..d3771bec7
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterDefValidator.java
@@ -0,0 +1,25 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FilterDefValidator.java,v 1.1 2008/04/23 15:44:26 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface FilterDefValidator {
+ boolean validate();
+
+ boolean validateName(String value);
+ boolean validateDefaultCondition(String value);
+ boolean validateParameters(EList<ParamDef> value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterDefsValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterDefsValidator.java
new file mode 100755
index 000000000..991128d91
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterDefsValidator.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FilterDefsValidator.java,v 1.1 2008/04/23 15:44:26 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDefs}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface FilterDefsValidator {
+ boolean validate();
+
+ boolean validateValue(EList<ParamDef> value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterValidator.java
new file mode 100755
index 000000000..59453985a
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FilterValidator.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FilterValidator.java,v 1.1 2008/04/23 15:44:26 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface FilterValidator {
+ boolean validate();
+
+ boolean validateName(String value);
+ boolean validateCondition(String value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FiltersValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FiltersValidator.java
new file mode 100755
index 000000000..7ab88a038
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/FiltersValidator.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FiltersValidator.java,v 1.1 2008/04/23 15:44:26 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.Filters}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface FiltersValidator {
+ boolean validate();
+
+ boolean validateValue(EList<Filter> value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/GeneratedValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/GeneratedValidator.java
new file mode 100755
index 000000000..1cb0d0fda
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/GeneratedValidator.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GeneratedValidator.java,v 1.1 2007/07/11 17:35:11 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.Generated}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface GeneratedValidator {
+ boolean validate();
+
+ boolean validateValue(GenerationTime value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/GenericGeneratorValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/GenericGeneratorValidator.java
new file mode 100755
index 000000000..17e036cba
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/GenericGeneratorValidator.java
@@ -0,0 +1,25 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GenericGeneratorValidator.java,v 1.1 2007/02/08 23:13:12 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface GenericGeneratorValidator {
+ boolean validate();
+
+ boolean validateName(String value);
+ boolean validateStrategy(String value);
+ boolean validateParameters(EList<Parameter> value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/HbAnnotationValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/HbAnnotationValidator.java
new file mode 100755
index 000000000..4cb6f07f4
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/HbAnnotationValidator.java
@@ -0,0 +1,19 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotationValidator.java,v 1.1 2007/02/08 23:13:13 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.HbAnnotation}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface HbAnnotationValidator {
+ boolean validate();
+
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/IdBagValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/IdBagValidator.java
new file mode 100755
index 000000000..87bf36f89
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/IdBagValidator.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IdBagValidator.java,v 1.2 2007/03/21 15:46:34 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.IdBag}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface IdBagValidator {
+ boolean validate();
+
+ boolean validateGenerator(String value);
+ boolean validateType(String value);
+
+ boolean validateTable(String value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/IndexValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/IndexValidator.java
new file mode 100755
index 000000000..968edeb9d
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/IndexValidator.java
@@ -0,0 +1,20 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IndexValidator.java,v 1.1 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.Index}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface IndexValidator {
+ boolean validate();
+
+ boolean validateName(String value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/MapKeyValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/MapKeyValidator.java
new file mode 100755
index 000000000..b52b0a239
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/MapKeyValidator.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MapKeyValidator.java,v 1.1 2007/02/08 23:13:12 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.MapKey}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface MapKeyValidator {
+ boolean validate();
+
+ boolean validateColumns(EList<Column> value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/NamedQueryValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/NamedQueryValidator.java
new file mode 100755
index 000000000..07c0ae666
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/NamedQueryValidator.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NamedQueryValidator.java,v 1.1 2008/03/31 07:22:07 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface NamedQueryValidator {
+ boolean validate();
+
+ boolean validateName(String value);
+ boolean validateQuery(String value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/OnDeleteValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/OnDeleteValidator.java
new file mode 100755
index 000000000..8159507ed
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/OnDeleteValidator.java
@@ -0,0 +1,25 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OnDeleteValidator.java,v 1.1 2007/03/04 21:18:07 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDeleteAction;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface OnDeleteValidator {
+ boolean validate();
+
+ boolean validateAction(OnDeleteAction value);
+
+ boolean validateAction(EList<OnDeleteAction> value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ParamDefValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ParamDefValidator.java
new file mode 100755
index 000000000..b935c561e
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ParamDefValidator.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ParamDefValidator.java,v 1.1 2008/04/23 15:44:26 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ParamDefValidator {
+ boolean validate();
+
+ boolean validateName(String value);
+ boolean validateType(String value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ParameterValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ParameterValidator.java
new file mode 100755
index 000000000..1fed7b48d
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ParameterValidator.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ParameterValidator.java,v 1.1 2007/02/08 23:13:12 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.Parameter}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ParameterValidator {
+ boolean validate();
+
+ boolean validateName(String value);
+ boolean validateValue(String value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ProxyValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ProxyValidator.java
new file mode 100755
index 000000000..686a45fbc
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/ProxyValidator.java
@@ -0,0 +1,26 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ProxyValidator.java,v 1.2 2007/03/29 15:06:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.CacheConcurrencyStrategy;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.Proxy}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ProxyValidator {
+ boolean validate();
+
+ boolean validateProxyClass(String value);
+
+ boolean validateLazy(boolean value);
+
+ boolean validateProxyClass(CacheConcurrencyStrategy value);
+ boolean validateLazy(Boolean value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/TypeDefValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/TypeDefValidator.java
new file mode 100755
index 000000000..101c18817
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/TypeDefValidator.java
@@ -0,0 +1,25 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TypeDefValidator.java,v 1.1 2007/02/08 23:13:12 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface TypeDefValidator {
+ boolean validate();
+
+ boolean validateName(String value);
+ boolean validateParameters(EList<Parameter> value);
+ boolean validateTypeClass(String value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/TypeValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/TypeValidator.java
new file mode 100755
index 000000000..abf37e40c
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/TypeValidator.java
@@ -0,0 +1,24 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TypeValidator.java,v 1.1 2007/02/08 23:13:12 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.Type}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface TypeValidator {
+ boolean validate();
+
+ boolean validateType(String value);
+ boolean validateParameters(EList<Parameter> value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/WhereValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/WhereValidator.java
new file mode 100755
index 000000000..edb28189f
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbannotation/validation/WhereValidator.java
@@ -0,0 +1,20 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WhereValidator.java,v 1.1 2007/02/08 23:13:12 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbannotation.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbannotation.Where}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface WhereValidator {
+ boolean validate();
+
+ boolean validateClause(String value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEAttribute.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEAttribute.java
new file mode 100755
index 000000000..85d667641
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEAttribute.java
@@ -0,0 +1,165 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEAttribute.java,v 1.8 2009/06/28 02:05:07 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel;
+
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Any;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Generated;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Hb Annotated EAttribute</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getHbType <em>Hb Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getGenerated <em>Generated</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getNaturalId <em>Natural Id</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getAny <em>Any</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getAnyMetaDef <em>Any Meta Def</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEAttribute()
+ * @model
+ * @generated
+ */
+public interface HbAnnotatedEAttribute extends PAnnotatedEAttribute, HbAnnotatedETypeElement {
+ /**
+ * Returns the value of the '<em><b>Hb Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Type</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>Hb Type</em>' containment reference.
+ * @see #setHbType(Type)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEAttribute_HbType()
+ * @model containment="true"
+ * @generated
+ */
+ Type getHbType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getHbType <em>Hb Type</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Type</em>' containment reference.
+ * @see #getHbType()
+ * @generated
+ */
+ void setHbType(Type value);
+
+ /**
+ * Returns the value of the '<em><b>Generated</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generated</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</em>' containment reference.
+ * @see #setGenerated(Generated)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEAttribute_Generated()
+ * @model containment="true"
+ * @generated
+ */
+ Generated getGenerated();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getGenerated <em>Generated</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Generated</em>' containment reference.
+ * @see #getGenerated()
+ * @generated
+ */
+ void setGenerated(Generated value);
+
+ /**
+ * Returns the value of the '<em><b>Natural Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Natural 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>Natural Id</em>' containment reference.
+ * @see #setNaturalId(NaturalId)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEAttribute_NaturalId()
+ * @model containment="true"
+ * @generated
+ */
+ NaturalId getNaturalId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getNaturalId <em>Natural Id</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Natural Id</em>' containment reference.
+ * @see #getNaturalId()
+ * @generated
+ */
+ void setNaturalId(NaturalId value);
+
+ /**
+ * Returns the value of the '<em><b>Any</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any</em>' reference.
+ * @see #setAny(Any)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEAttribute_Any()
+ * @model
+ * @generated
+ */
+ Any getAny();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getAny <em>Any</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Any</em>' reference.
+ * @see #getAny()
+ * @generated
+ */
+ void setAny(Any value);
+
+ /**
+ * Returns the value of the '<em><b>Any Meta Def</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any Meta Def</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any Meta Def</em>' reference.
+ * @see #setAnyMetaDef(AnyMetaDef)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEAttribute_AnyMetaDef()
+ * @model
+ * @generated
+ */
+ AnyMetaDef getAnyMetaDef();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getAnyMetaDef <em>Any Meta Def</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Any Meta Def</em>' reference.
+ * @see #getAnyMetaDef()
+ * @generated
+ */
+ void setAnyMetaDef(AnyMetaDef value);
+
+} // HbAnnotatedEAttribute
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEClass.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEClass.java
new file mode 100755
index 000000000..d4429cfd1
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEClass.java
@@ -0,0 +1,332 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEClass.java,v 1.14 2009/03/15 15:08:01 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Immutable;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Proxy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Hb Annotated EClass</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbCache <em>Hb Cache</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbOnDelete <em>Hb On Delete</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbWhere <em>Hb Where</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbProxy <em>Hb Proxy</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbNamedQuery <em>Hb Named Query</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getFilterDef <em>Filter Def</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getFilter <em>Filter</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getDiscriminatorFormula <em>Discriminator Formula</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getForceDiscriminator <em>Force Discriminator</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getImmutable <em>Immutable</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbEntity <em>Hb Entity</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getBatchSize <em>Batch Size</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass()
+ * @model
+ * @generated
+ */
+public interface HbAnnotatedEClass extends PAnnotatedEClass {
+ /**
+ * Returns the value of the '<em><b>Hb Cache</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Cache</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>Hb Cache</em>' containment reference.
+ * @see #setHbCache(Cache)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_HbCache()
+ * @model containment="true"
+ * @generated
+ */
+ Cache getHbCache();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbCache <em>Hb Cache</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Cache</em>' containment reference.
+ * @see #getHbCache()
+ * @generated
+ */
+ void setHbCache(Cache value);
+
+ /**
+ * Returns the value of the '<em><b>Hb On Delete</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb On Delete</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hb On Delete</em>' reference.
+ * @see #setHbOnDelete(OnDelete)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_HbOnDelete()
+ * @model
+ * @generated
+ */
+ OnDelete getHbOnDelete();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbOnDelete <em>Hb On Delete</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb On Delete</em>' reference.
+ * @see #getHbOnDelete()
+ * @generated
+ */
+ void setHbOnDelete(OnDelete value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Where</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Where</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>Hb Where</em>' containment reference.
+ * @see #setHbWhere(Where)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_HbWhere()
+ * @model containment="true"
+ * @generated
+ */
+ Where getHbWhere();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbWhere <em>Hb Where</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Where</em>' containment reference.
+ * @see #getHbWhere()
+ * @generated
+ */
+ void setHbWhere(Where value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Proxy</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Proxy</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hb Proxy</em>' reference.
+ * @see #setHbProxy(Proxy)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_HbProxy()
+ * @model
+ * @generated
+ */
+ Proxy getHbProxy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbProxy <em>Hb Proxy</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Proxy</em>' reference.
+ * @see #getHbProxy()
+ * @generated
+ */
+ void setHbProxy(Proxy value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Named Query</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Named Query</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hb Named Query</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_HbNamedQuery()
+ * @model
+ * @generated
+ */
+ EList<NamedQuery> getHbNamedQuery();
+
+ /**
+ * Returns the value of the '<em><b>Filter Def</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Filter Def</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Filter Def</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_FilterDef()
+ * @model
+ * @generated
+ */
+ EList<FilterDef> getFilterDef();
+
+ /**
+ * Returns the value of the '<em><b>Filter</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Filter</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Filter</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_Filter()
+ * @model
+ * @generated
+ */
+ EList<Filter> getFilter();
+
+ /**
+ * Returns the value of the '<em><b>Discriminator Formula</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Discriminator Formula</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 Formula</em>' containment reference.
+ * @see #setDiscriminatorFormula(DiscriminatorFormula)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_DiscriminatorFormula()
+ * @model containment="true"
+ * @generated
+ */
+ DiscriminatorFormula getDiscriminatorFormula();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getDiscriminatorFormula <em>Discriminator Formula</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Discriminator Formula</em>' containment reference.
+ * @see #getDiscriminatorFormula()
+ * @generated
+ */
+ void setDiscriminatorFormula(DiscriminatorFormula value);
+
+ /**
+ * Returns the value of the '<em><b>Force Discriminator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Force Discriminator</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>Force Discriminator</em>' containment reference.
+ * @see #setForceDiscriminator(ForceDiscriminator)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_ForceDiscriminator()
+ * @model containment="true"
+ * @generated
+ */
+ ForceDiscriminator getForceDiscriminator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getForceDiscriminator <em>Force Discriminator</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Force Discriminator</em>' containment reference.
+ * @see #getForceDiscriminator()
+ * @generated
+ */
+ void setForceDiscriminator(ForceDiscriminator value);
+
+ /**
+ * Returns the value of the '<em><b>Immutable</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Immutable</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>Immutable</em>' containment reference.
+ * @see #setImmutable(Immutable)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_Immutable()
+ * @model containment="true"
+ * @generated
+ */
+ Immutable getImmutable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getImmutable <em>Immutable</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Immutable</em>' containment reference.
+ * @see #getImmutable()
+ * @generated
+ */
+ void setImmutable(Immutable value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Entity</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Entity</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hb Entity</em>' reference.
+ * @see #setHbEntity(HbEntity)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_HbEntity()
+ * @model
+ * @generated
+ */
+ HbEntity getHbEntity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbEntity <em>Hb Entity</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Entity</em>' reference.
+ * @see #getHbEntity()
+ * @generated
+ */
+ void setHbEntity(HbEntity value);
+
+ /**
+ * Returns the value of the '<em><b>Batch Size</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Batch Size</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Batch Size</em>' reference.
+ * @see #setBatchSize(BatchSize)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEClass_BatchSize()
+ * @model
+ * @generated
+ */
+ BatchSize getBatchSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getBatchSize <em>Batch Size</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Batch Size</em>' reference.
+ * @see #getBatchSize()
+ * @generated
+ */
+ void setBatchSize(BatchSize value);
+
+} // HbAnnotatedEClass
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEDataType.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEDataType.java
new file mode 100755
index 000000000..7a97ef49b
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEDataType.java
@@ -0,0 +1,184 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEDataType.java,v 1.7 2009/06/11 04:59:21 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEDataType;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Hb Annotated EData Type</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbTypeDef <em>Hb Type Def</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbWhere <em>Hb Where</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbColumns <em>Hb Columns</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbIdBag <em>Hb Id Bag</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbIndex <em>Hb Index</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbType <em>Hb Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEDataType()
+ * @model
+ * @generated
+ */
+public interface HbAnnotatedEDataType extends PAnnotatedEDataType, HbAnnotatedEModelElement {
+ /**
+ * Returns the value of the '<em><b>Hb Type Def</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Type Def</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>Hb Type Def</em>' containment reference.
+ * @see #setHbTypeDef(TypeDef)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEDataType_HbTypeDef()
+ * @model containment="true"
+ * @generated
+ */
+ TypeDef getHbTypeDef();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbTypeDef <em>Hb Type Def</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Type Def</em>' containment reference.
+ * @see #getHbTypeDef()
+ * @generated
+ */
+ void setHbTypeDef(TypeDef value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Where</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Where</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>Hb Where</em>' containment reference.
+ * @see #setHbWhere(Where)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEDataType_HbWhere()
+ * @model containment="true"
+ * @generated
+ */
+ Where getHbWhere();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbWhere <em>Hb Where</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Where</em>' containment reference.
+ * @see #getHbWhere()
+ * @generated
+ */
+ void setHbWhere(Where value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Columns</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.annotations.pannotation.Column}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Columns</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>Hb Columns</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEDataType_HbColumns()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Column> getHbColumns();
+
+ /**
+ * Returns the value of the '<em><b>Hb Id Bag</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Id Bag</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>Hb Id Bag</em>' containment reference.
+ * @see #setHbIdBag(IdBag)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEDataType_HbIdBag()
+ * @model containment="true"
+ * @generated
+ */
+ IdBag getHbIdBag();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbIdBag <em>Hb Id Bag</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Id Bag</em>' containment reference.
+ * @see #getHbIdBag()
+ * @generated
+ */
+ void setHbIdBag(IdBag value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Index</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Index</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hb Index</em>' reference.
+ * @see #setHbIndex(Index)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEDataType_HbIndex()
+ * @model
+ * @generated
+ */
+ Index getHbIndex();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbIndex <em>Hb Index</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Index</em>' reference.
+ * @see #getHbIndex()
+ * @generated
+ */
+ void setHbIndex(Index value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Type</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>Hb Type</em>' containment reference.
+ * @see #setHbType(Type)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEDataType_HbType()
+ * @model containment="true"
+ * @generated
+ */
+ Type getHbType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbType <em>Hb Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Type</em>' containment reference.
+ * @see #getHbType()
+ * @generated
+ */
+ void setHbType(Type value);
+
+} // HbAnnotatedEDataType
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEModelElement.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEModelElement.java
new file mode 100755
index 000000000..467d966b1
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEModelElement.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEModelElement.java,v 1.5 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel;
+
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEModelElement;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Hb Annotated EModel Element</b></em>'. <!--
+ * end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEModelElement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface HbAnnotatedEModelElement extends PAnnotatedEModelElement {
+
+} // HbAnnotatedEModelElement
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEPackage.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEPackage.java
new file mode 100755
index 000000000..3bf6f64e0
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEPackage.java
@@ -0,0 +1,118 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEPackage.java,v 1.9 2009/06/28 02:05:07 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Hb Annotated EPackage</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getHbGenericGenerators <em>Hb Generic Generators</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getHbTypeDef <em>Hb Type Def</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getHbNamedQuery <em>Hb Named Query</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getFilterDef <em>Filter Def</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getAnyMetaDef <em>Any Meta Def</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEPackage()
+ * @model
+ * @generated
+ */
+public interface HbAnnotatedEPackage extends PAnnotatedEPackage {
+ /**
+ * Returns the value of the '<em><b>Hb Generic Generators</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator}.
+ * <!-- begin-user-doc
+ * -->
+ * <p>
+ * If the meaning of the '<em>Hb Generic Generators</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>Hb Generic Generators</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEPackage_HbGenericGenerators()
+ * @model containment="true"
+ * @generated
+ */
+ EList<GenericGenerator> getHbGenericGenerators();
+
+ /**
+ * Returns the value of the '<em><b>Hb Type Def</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Type Def</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>Hb Type Def</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEPackage_HbTypeDef()
+ * @model containment="true"
+ * @generated
+ */
+ EList<TypeDef> getHbTypeDef();
+
+ /**
+ * Returns the value of the '<em><b>Hb Named Query</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Named Query</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hb Named Query</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEPackage_HbNamedQuery()
+ * @model
+ * @generated
+ */
+ EList<NamedQuery> getHbNamedQuery();
+
+ /**
+ * Returns the value of the '<em><b>Filter Def</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Filter Def</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Filter Def</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEPackage_FilterDef()
+ * @model
+ * @generated
+ */
+ EList<FilterDef> getFilterDef();
+
+ /**
+ * Returns the value of the '<em><b>Any Meta Def</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any Meta Def</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any Meta Def</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEPackage_AnyMetaDef()
+ * @model
+ * @generated
+ */
+ EList<AnyMetaDef> getAnyMetaDef();
+
+} // HbAnnotatedEPackage
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEReference.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEReference.java
new file mode 100755
index 000000000..ab3804771
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedEReference.java
@@ -0,0 +1,305 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEReference.java,v 1.15 2010/02/04 11:03:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel;
+
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Any;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Fetch;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Immutable;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFound;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Hb Annotated EReference</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbCache <em>Hb Cache</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbFetch <em>Hb Fetch</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbOnDelete <em>Hb On Delete</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getNaturalId <em>Natural Id</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getImmutable <em>Immutable</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getNotFound <em>Not Found</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbType <em>Hb Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getBatchSize <em>Batch Size</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getAny <em>Any</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getAnyMetaDef <em>Any Meta Def</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEReference()
+ * @model
+ * @generated
+ */
+public interface HbAnnotatedEReference extends PAnnotatedEReference, HbAnnotatedETypeElement {
+ /**
+ * Returns the value of the '<em><b>Hb Cache</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Cache</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>Hb Cache</em>' containment reference.
+ * @see #setHbCache(Cache)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEReference_HbCache()
+ * @model containment="true"
+ * @generated
+ */
+ Cache getHbCache();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbCache <em>Hb Cache</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Cache</em>' containment reference.
+ * @see #getHbCache()
+ * @generated
+ */
+ void setHbCache(Cache value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Fetch</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Fetch</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>Hb Fetch</em>' reference.
+ * @see #setHbFetch(Fetch)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEReference_HbFetch()
+ * @model
+ * @generated
+ */
+ Fetch getHbFetch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbFetch <em>Hb Fetch</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Fetch</em>' reference.
+ * @see #getHbFetch()
+ * @generated
+ */
+ void setHbFetch(Fetch value);
+
+ /**
+ * Returns the value of the '<em><b>Hb On Delete</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb On Delete</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hb On Delete</em>' reference.
+ * @see #setHbOnDelete(OnDelete)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEReference_HbOnDelete()
+ * @model
+ * @generated
+ */
+ OnDelete getHbOnDelete();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbOnDelete <em>Hb On Delete</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb On Delete</em>' reference.
+ * @see #getHbOnDelete()
+ * @generated
+ */
+ void setHbOnDelete(OnDelete value);
+
+ /**
+ * Returns the value of the '<em><b>Natural Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Natural 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>Natural Id</em>' containment reference.
+ * @see #setNaturalId(NaturalId)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEReference_NaturalId()
+ * @model containment="true"
+ * @generated
+ */
+ NaturalId getNaturalId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getNaturalId <em>Natural Id</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Natural Id</em>' containment reference.
+ * @see #getNaturalId()
+ * @generated
+ */
+ void setNaturalId(NaturalId value);
+
+ /**
+ * Returns the value of the '<em><b>Immutable</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Immutable</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>Immutable</em>' containment reference.
+ * @see #setImmutable(Immutable)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEReference_Immutable()
+ * @model containment="true"
+ * @generated
+ */
+ Immutable getImmutable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getImmutable <em>Immutable</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Immutable</em>' containment reference.
+ * @see #getImmutable()
+ * @generated
+ */
+ void setImmutable(Immutable value);
+
+ /**
+ * Returns the value of the '<em><b>Not Found</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Not Found</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>Not Found</em>' containment reference.
+ * @see #setNotFound(NotFound)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEReference_NotFound()
+ * @model containment="true"
+ * @generated
+ */
+ NotFound getNotFound();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getNotFound <em>Not Found</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Not Found</em>' containment reference.
+ * @see #getNotFound()
+ * @generated
+ */
+ void setNotFound(NotFound value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Type</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>Hb Type</em>' containment reference.
+ * @see #setHbType(Type)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEReference_HbType()
+ * @model containment="true"
+ * @generated
+ */
+ Type getHbType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbType <em>Hb Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Type</em>' containment reference.
+ * @see #getHbType()
+ * @generated
+ */
+ void setHbType(Type value);
+
+ /**
+ * Returns the value of the '<em><b>Batch Size</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Batch Size</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Batch Size</em>' reference.
+ * @see #setBatchSize(BatchSize)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEReference_BatchSize()
+ * @model
+ * @generated
+ */
+ BatchSize getBatchSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getBatchSize <em>Batch Size</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Batch Size</em>' reference.
+ * @see #getBatchSize()
+ * @generated
+ */
+ void setBatchSize(BatchSize value);
+
+ /**
+ * Returns the value of the '<em><b>Any</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any</em>' reference.
+ * @see #setAny(Any)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEReference_Any()
+ * @model
+ * @generated
+ */
+ Any getAny();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getAny <em>Any</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Any</em>' reference.
+ * @see #getAny()
+ * @generated
+ */
+ void setAny(Any value);
+
+ /**
+ * Returns the value of the '<em><b>Any Meta Def</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any Meta Def</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any Meta Def</em>' reference.
+ * @see #setAnyMetaDef(AnyMetaDef)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedEReference_AnyMetaDef()
+ * @model
+ * @generated
+ */
+ AnyMetaDef getAnyMetaDef();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getAnyMetaDef <em>Any Meta Def</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Any Meta Def</em>' reference.
+ * @see #getAnyMetaDef()
+ * @generated
+ */
+ void setAnyMetaDef(AnyMetaDef value);
+
+} // HbAnnotatedEReference
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedETypeElement.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedETypeElement.java
new file mode 100755
index 000000000..729f28591
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbAnnotatedETypeElement.java
@@ -0,0 +1,286 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedETypeElement.java,v 1.12 2010/02/04 11:03:46 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Formula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Hb Annotated EType Element</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbWhere <em>Hb Where</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbCollectionOfElements <em>Hb Collection Of Elements</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbMapKey <em>Hb Map Key</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbColumns <em>Hb Columns</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbCascade <em>Hb Cascade</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbIdBag <em>Hb Id Bag</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbIndex <em>Hb Index</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getFilter <em>Filter</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getMapKeyManyToMany <em>Map Key Many To Many</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getFormula <em>Formula</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedETypeElement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface HbAnnotatedETypeElement extends PAnnotatedEStructuralFeature, HbAnnotatedEModelElement {
+ /**
+ * Returns the value of the '<em><b>Hb Where</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Where</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>Hb Where</em>' containment reference.
+ * @see #setHbWhere(Where)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedETypeElement_HbWhere()
+ * @model containment="true"
+ * @generated
+ */
+ Where getHbWhere();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbWhere <em>Hb Where</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Where</em>' containment reference.
+ * @see #getHbWhere()
+ * @generated
+ */
+ void setHbWhere(Where value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Collection Of Elements</b></em>' containment reference. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Collection Of Elements</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>Hb Collection Of Elements</em>' containment reference.
+ * @see #setHbCollectionOfElements(CollectionOfElements)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbModelPackage#getHbAnnotatedETypeElement_HbCollectionOfElements()
+ * @model containment="true"
+ * @generated
+ */
+ CollectionOfElements getHbCollectionOfElements();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbCollectionOfElements <em>Hb Collection Of Elements</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Collection Of Elements</em>' containment reference.
+ * @see #getHbCollectionOfElements()
+ * @generated
+ */
+ void setHbCollectionOfElements(CollectionOfElements value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Map Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb 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>Hb Map Key</em>' containment reference.
+ * @see #setHbMapKey(HbMapKey)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedETypeElement_HbMapKey()
+ * @model containment="true"
+ * annotation="teneo/internal/PersistenceMapping elementName='hb-map-key'"
+ * @generated
+ */
+ HbMapKey getHbMapKey();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbMapKey <em>Hb Map Key</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Map Key</em>' containment reference.
+ * @see #getHbMapKey()
+ * @generated
+ */
+ void setHbMapKey(HbMapKey value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Columns</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.annotations.pannotation.Column}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Columns</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>Hb Columns</em>' containment reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedETypeElement_HbColumns()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Column> getHbColumns();
+
+ /**
+ * Returns the value of the '<em><b>Hb Cascade</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb 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>Hb Cascade</em>' containment reference.
+ * @see #setHbCascade(Cascade)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedETypeElement_HbCascade()
+ * @model containment="true"
+ * @generated
+ */
+ Cascade getHbCascade();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbCascade <em>Hb Cascade</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Cascade</em>' containment reference.
+ * @see #getHbCascade()
+ * @generated
+ */
+ void setHbCascade(Cascade value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Id Bag</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Id Bag</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>Hb Id Bag</em>' containment reference.
+ * @see #setHbIdBag(IdBag)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedETypeElement_HbIdBag()
+ * @model containment="true"
+ * @generated
+ */
+ IdBag getHbIdBag();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbIdBag <em>Hb Id Bag</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Id Bag</em>' containment reference.
+ * @see #getHbIdBag()
+ * @generated
+ */
+ void setHbIdBag(IdBag value);
+
+ /**
+ * Returns the value of the '<em><b>Hb Index</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hb Index</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hb Index</em>' reference.
+ * @see #setHbIndex(Index)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedETypeElement_HbIndex()
+ * @model
+ * @generated
+ */
+ Index getHbIndex();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbIndex <em>Hb Index</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hb Index</em>' reference.
+ * @see #getHbIndex()
+ * @generated
+ */
+ void setHbIndex(Index value);
+
+ /**
+ * Returns the value of the '<em><b>Filter</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.hibernate.hbannotation.Filter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Filter</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Filter</em>' reference list.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedETypeElement_Filter()
+ * @model
+ * @generated
+ */
+ EList<Filter> getFilter();
+
+ /**
+ * Returns the value of the '<em><b>Map Key Many To Many</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Map Key Many To Many</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 Many To Many</em>' containment reference.
+ * @see #setMapKeyManyToMany(MapKeyManyToMany)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedETypeElement_MapKeyManyToMany()
+ * @model containment="true"
+ * annotation="teneo/internal/PersistenceMapping elementName='hb-map-key'"
+ * @generated
+ */
+ MapKeyManyToMany getMapKeyManyToMany();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getMapKeyManyToMany <em>Map Key Many To Many</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Map Key Many To Many</em>' containment reference.
+ * @see #getMapKeyManyToMany()
+ * @generated
+ */
+ void setMapKeyManyToMany(MapKeyManyToMany value);
+
+ /**
+ * Returns the value of the '<em><b>Formula</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Formula</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Formula</em>' reference.
+ * @see #setFormula(Formula)
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#getHbAnnotatedETypeElement_Formula()
+ * @model
+ * @generated
+ */
+ Formula getFormula();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getFormula <em>Formula</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Formula</em>' reference.
+ * @see #getFormula()
+ * @generated
+ */
+ void setFormula(Formula value);
+
+} // HbAnnotatedETypeElement
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbmodelFactory.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbmodelFactory.java
new file mode 100755
index 000000000..0bd945f1d
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbmodelFactory.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbmodelFactory.java,v 1.1 2007/07/04 19:31:48 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage
+ * @generated
+ */
+public interface HbmodelFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ HbmodelFactory eINSTANCE = org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Hb Annotated EAttribute</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hb Annotated EAttribute</em>'.
+ * @generated
+ */
+ HbAnnotatedEAttribute createHbAnnotatedEAttribute();
+
+ /**
+ * Returns a new object of class '<em>Hb Annotated EClass</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hb Annotated EClass</em>'.
+ * @generated
+ */
+ HbAnnotatedEClass createHbAnnotatedEClass();
+
+ /**
+ * Returns a new object of class '<em>Hb Annotated EPackage</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hb Annotated EPackage</em>'.
+ * @generated
+ */
+ HbAnnotatedEPackage createHbAnnotatedEPackage();
+
+ /**
+ * Returns a new object of class '<em>Hb Annotated EReference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hb Annotated EReference</em>'.
+ * @generated
+ */
+ HbAnnotatedEReference createHbAnnotatedEReference();
+
+ /**
+ * Returns a new object of class '<em>Hb Annotated EData Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hb Annotated EData Type</em>'.
+ * @generated
+ */
+ HbAnnotatedEDataType createHbAnnotatedEDataType();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ HbmodelPackage getHbmodelPackage();
+
+} //HbmodelFactory
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbmodelPackage.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbmodelPackage.java
new file mode 100755
index 000000000..562ae6b25
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/HbmodelPackage.java
@@ -0,0 +1,2748 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbmodelPackage.java,v 1.18 2010/02/04 11:03:47 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PamodelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface HbmodelPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "hbmodel";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/teneo/2006/HbModel";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "org.eclipse.emf.teneo.hibernate";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ HbmodelPackage eINSTANCE = org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement <em>Hb Annotated EType Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedETypeElement()
+ * @generated
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Model Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__MODEL_ELEMENT = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__MODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Transient</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__TRANSIENT = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__TRANSIENT;
+
+ /**
+ * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__ATTRIBUTE_OVERRIDES = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__ATTRIBUTE_OVERRIDES;
+
+ /**
+ * The feature id for the '<em><b>Join Table</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__JOIN_TABLE = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__JOIN_TABLE;
+
+ /**
+ * The feature id for the '<em><b>One To Many</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__ONE_TO_MANY = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__ONE_TO_MANY;
+
+ /**
+ * The feature id for the '<em><b>Sequence Generator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__SEQUENCE_GENERATOR = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__SEQUENCE_GENERATOR;
+
+ /**
+ * The feature id for the '<em><b>Table Generators</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__TABLE_GENERATORS = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__TABLE_GENERATORS;
+
+ /**
+ * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__JOIN_COLUMNS = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__JOIN_COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Column</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__COLUMN = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__COLUMN;
+
+ /**
+ * The feature id for the '<em><b>Pa EClass</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__PA_ECLASS = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__PA_ECLASS;
+
+ /**
+ * The feature id for the '<em><b>Model EStructural Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__MODEL_ESTRUCTURAL_FEATURE = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__MODEL_ESTRUCTURAL_FEATURE;
+
+ /**
+ * The feature id for the '<em><b>Foreign Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__FOREIGN_KEY = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__FOREIGN_KEY;
+
+ /**
+ * The feature id for the '<em><b>Hb Where</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__HB_WHERE = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Hb Collection Of Elements</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__HB_COLLECTION_OF_ELEMENTS = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Hb Map Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__HB_MAP_KEY = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Hb Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__HB_COLUMNS = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Hb Cascade</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__HB_CASCADE = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Hb Id Bag</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__HB_ID_BAG = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Hb Index</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__HB_INDEX = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Filter</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__FILTER = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Map Key Many To Many</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__MAP_KEY_MANY_TO_MANY = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Formula</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT__FORMULA = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE_FEATURE_COUNT + 9;
+
+ /**
+ * The number of structural features of the '<em>Hb Annotated EType Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ETYPE_ELEMENT_FEATURE_COUNT = PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE_FEATURE_COUNT + 10;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl <em>Hb Annotated EAttribute</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEAttribute()
+ * @generated
+ */
+ int HB_ANNOTATED_EATTRIBUTE = 1;
+
+ /**
+ * The feature id for the '<em><b>Model Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__MODEL_ELEMENT = PamodelPackage.PANNOTATED_EATTRIBUTE__MODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Transient</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__TRANSIENT = PamodelPackage.PANNOTATED_EATTRIBUTE__TRANSIENT;
+
+ /**
+ * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__ATTRIBUTE_OVERRIDES = PamodelPackage.PANNOTATED_EATTRIBUTE__ATTRIBUTE_OVERRIDES;
+
+ /**
+ * The feature id for the '<em><b>Join Table</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__JOIN_TABLE = PamodelPackage.PANNOTATED_EATTRIBUTE__JOIN_TABLE;
+
+ /**
+ * The feature id for the '<em><b>One To Many</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__ONE_TO_MANY = PamodelPackage.PANNOTATED_EATTRIBUTE__ONE_TO_MANY;
+
+ /**
+ * The feature id for the '<em><b>Sequence Generator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__SEQUENCE_GENERATOR = PamodelPackage.PANNOTATED_EATTRIBUTE__SEQUENCE_GENERATOR;
+
+ /**
+ * The feature id for the '<em><b>Table Generators</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__TABLE_GENERATORS = PamodelPackage.PANNOTATED_EATTRIBUTE__TABLE_GENERATORS;
+
+ /**
+ * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__JOIN_COLUMNS = PamodelPackage.PANNOTATED_EATTRIBUTE__JOIN_COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Column</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__COLUMN = PamodelPackage.PANNOTATED_EATTRIBUTE__COLUMN;
+
+ /**
+ * The feature id for the '<em><b>Pa EClass</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__PA_ECLASS = PamodelPackage.PANNOTATED_EATTRIBUTE__PA_ECLASS;
+
+ /**
+ * The feature id for the '<em><b>Model EStructural Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__MODEL_ESTRUCTURAL_FEATURE = PamodelPackage.PANNOTATED_EATTRIBUTE__MODEL_ESTRUCTURAL_FEATURE;
+
+ /**
+ * The feature id for the '<em><b>Foreign Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__FOREIGN_KEY = PamodelPackage.PANNOTATED_EATTRIBUTE__FOREIGN_KEY;
+
+ /**
+ * The feature id for the '<em><b>Model EAttribute</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__MODEL_EATTRIBUTE = PamodelPackage.PANNOTATED_EATTRIBUTE__MODEL_EATTRIBUTE;
+
+ /**
+ * The feature id for the '<em><b>Basic</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__BASIC = PamodelPackage.PANNOTATED_EATTRIBUTE__BASIC;
+
+ /**
+ * The feature id for the '<em><b>Enumerated</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__ENUMERATED = PamodelPackage.PANNOTATED_EATTRIBUTE__ENUMERATED;
+
+ /**
+ * The feature id for the '<em><b>Generated Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__GENERATED_VALUE = PamodelPackage.PANNOTATED_EATTRIBUTE__GENERATED_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__ID = PamodelPackage.PANNOTATED_EATTRIBUTE__ID;
+
+ /**
+ * The feature id for the '<em><b>Lob</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__LOB = PamodelPackage.PANNOTATED_EATTRIBUTE__LOB;
+
+ /**
+ * The feature id for the '<em><b>Temporal</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__TEMPORAL = PamodelPackage.PANNOTATED_EATTRIBUTE__TEMPORAL;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__VERSION = PamodelPackage.PANNOTATED_EATTRIBUTE__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Hb Where</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__HB_WHERE = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Hb Collection Of Elements</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Hb Map Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Hb Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__HB_COLUMNS = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Hb Cascade</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__HB_CASCADE = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Hb Id Bag</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Hb Index</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__HB_INDEX = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Filter</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__FILTER = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Map Key Many To Many</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Formula</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__FORMULA = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Hb Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__HB_TYPE = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__GENERATED = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Natural Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__NATURAL_ID = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__ANY = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 13;
+
+ /**
+ * The feature id for the '<em><b>Any Meta Def</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE__ANY_META_DEF = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 14;
+
+ /**
+ * The number of structural features of the '<em>Hb Annotated EAttribute</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EATTRIBUTE_FEATURE_COUNT = PamodelPackage.PANNOTATED_EATTRIBUTE_FEATURE_COUNT + 15;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl <em>Hb Annotated EClass</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEClass()
+ * @generated
+ */
+ int HB_ANNOTATED_ECLASS = 2;
+
+ /**
+ * The feature id for the '<em><b>Model Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__MODEL_ELEMENT = PamodelPackage.PANNOTATED_ECLASS__MODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Transient</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__TRANSIENT = PamodelPackage.PANNOTATED_ECLASS__TRANSIENT;
+
+ /**
+ * The feature id for the '<em><b>Pa EPackage</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__PA_EPACKAGE = PamodelPackage.PANNOTATED_ECLASS__PA_EPACKAGE;
+
+ /**
+ * The feature id for the '<em><b>Model EClass</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__MODEL_ECLASS = PamodelPackage.PANNOTATED_ECLASS__MODEL_ECLASS;
+
+ /**
+ * The feature id for the '<em><b>Pa EStructural Features</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__PA_ESTRUCTURAL_FEATURES = PamodelPackage.PANNOTATED_ECLASS__PA_ESTRUCTURAL_FEATURES;
+
+ /**
+ * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__ATTRIBUTE_OVERRIDES = PamodelPackage.PANNOTATED_ECLASS__ATTRIBUTE_OVERRIDES;
+
+ /**
+ * The feature id for the '<em><b>Discriminator Column</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__DISCRIMINATOR_COLUMN = PamodelPackage.PANNOTATED_ECLASS__DISCRIMINATOR_COLUMN;
+
+ /**
+ * The feature id for the '<em><b>Discriminator Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__DISCRIMINATOR_VALUE = PamodelPackage.PANNOTATED_ECLASS__DISCRIMINATOR_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Embeddable</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__EMBEDDABLE = PamodelPackage.PANNOTATED_ECLASS__EMBEDDABLE;
+
+ /**
+ * The feature id for the '<em><b>Mapped Superclass</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__MAPPED_SUPERCLASS = PamodelPackage.PANNOTATED_ECLASS__MAPPED_SUPERCLASS;
+
+ /**
+ * The feature id for the '<em><b>Entity</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__ENTITY = PamodelPackage.PANNOTATED_ECLASS__ENTITY;
+
+ /**
+ * The feature id for the '<em><b>Id Class</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__ID_CLASS = PamodelPackage.PANNOTATED_ECLASS__ID_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Inheritance</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__INHERITANCE = PamodelPackage.PANNOTATED_ECLASS__INHERITANCE;
+
+ /**
+ * The feature id for the '<em><b>Primary Key Join Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__PRIMARY_KEY_JOIN_COLUMNS = PamodelPackage.PANNOTATED_ECLASS__PRIMARY_KEY_JOIN_COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Secondary Tables</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__SECONDARY_TABLES = PamodelPackage.PANNOTATED_ECLASS__SECONDARY_TABLES;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__TABLE = PamodelPackage.PANNOTATED_ECLASS__TABLE;
+
+ /**
+ * The feature id for the '<em><b>Table Generator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__TABLE_GENERATOR = PamodelPackage.PANNOTATED_ECLASS__TABLE_GENERATOR;
+
+ /**
+ * The feature id for the '<em><b>Association Overrides</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__ASSOCIATION_OVERRIDES = PamodelPackage.PANNOTATED_ECLASS__ASSOCIATION_OVERRIDES;
+
+ /**
+ * The feature id for the '<em><b>Hb Cache</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__HB_CACHE = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Hb On Delete</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__HB_ON_DELETE = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Hb Where</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__HB_WHERE = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Hb Proxy</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__HB_PROXY = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Hb Named Query</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__HB_NAMED_QUERY = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Filter Def</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__FILTER_DEF = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Filter</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__FILTER = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Discriminator Formula</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Force Discriminator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Immutable</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__IMMUTABLE = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Hb Entity</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__HB_ENTITY = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Batch Size</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS__BATCH_SIZE = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 11;
+
+ /**
+ * The number of structural features of the '<em>Hb Annotated EClass</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_ECLASS_FEATURE_COUNT = PamodelPackage.PANNOTATED_ECLASS_FEATURE_COUNT + 12;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement <em>Hb Annotated EModel Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEModelElement()
+ * @generated
+ */
+ int HB_ANNOTATED_EMODEL_ELEMENT = 3;
+
+ /**
+ * The feature id for the '<em><b>Model Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EMODEL_ELEMENT__MODEL_ELEMENT = PamodelPackage.PANNOTATED_EMODEL_ELEMENT__MODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Transient</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EMODEL_ELEMENT__TRANSIENT = PamodelPackage.PANNOTATED_EMODEL_ELEMENT__TRANSIENT;
+
+ /**
+ * The number of structural features of the '<em>Hb Annotated EModel Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EMODEL_ELEMENT_FEATURE_COUNT = PamodelPackage.PANNOTATED_EMODEL_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEPackageImpl <em>Hb Annotated EPackage</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEPackageImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEPackage()
+ * @generated
+ */
+ int HB_ANNOTATED_EPACKAGE = 4;
+
+ /**
+ * The feature id for the '<em><b>Model Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__MODEL_ELEMENT = PamodelPackage.PANNOTATED_EPACKAGE__MODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Transient</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__TRANSIENT = PamodelPackage.PANNOTATED_EPACKAGE__TRANSIENT;
+
+ /**
+ * The feature id for the '<em><b>Pa Model</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__PA_MODEL = PamodelPackage.PANNOTATED_EPACKAGE__PA_MODEL;
+
+ /**
+ * The feature id for the '<em><b>Model EPackage</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__MODEL_EPACKAGE = PamodelPackage.PANNOTATED_EPACKAGE__MODEL_EPACKAGE;
+
+ /**
+ * The feature id for the '<em><b>Pa EClasses</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__PA_ECLASSES = PamodelPackage.PANNOTATED_EPACKAGE__PA_ECLASSES;
+
+ /**
+ * The feature id for the '<em><b>Sequence Generators</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__SEQUENCE_GENERATORS = PamodelPackage.PANNOTATED_EPACKAGE__SEQUENCE_GENERATORS;
+
+ /**
+ * The feature id for the '<em><b>Table Generators</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__TABLE_GENERATORS = PamodelPackage.PANNOTATED_EPACKAGE__TABLE_GENERATORS;
+
+ /**
+ * The feature id for the '<em><b>Pa EData Types</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__PA_EDATA_TYPES = PamodelPackage.PANNOTATED_EPACKAGE__PA_EDATA_TYPES;
+
+ /**
+ * The feature id for the '<em><b>Sequence Style Generators</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__SEQUENCE_STYLE_GENERATORS = PamodelPackage.PANNOTATED_EPACKAGE__SEQUENCE_STYLE_GENERATORS;
+
+ /**
+ * The feature id for the '<em><b>Hb Generic Generators</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__HB_GENERIC_GENERATORS = PamodelPackage.PANNOTATED_EPACKAGE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Hb Type Def</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__HB_TYPE_DEF = PamodelPackage.PANNOTATED_EPACKAGE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Hb Named Query</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__HB_NAMED_QUERY = PamodelPackage.PANNOTATED_EPACKAGE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Filter Def</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__FILTER_DEF = PamodelPackage.PANNOTATED_EPACKAGE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Any Meta Def</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE__ANY_META_DEF = PamodelPackage.PANNOTATED_EPACKAGE_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Hb Annotated EPackage</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EPACKAGE_FEATURE_COUNT = PamodelPackage.PANNOTATED_EPACKAGE_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl <em>Hb Annotated EReference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEReference()
+ * @generated
+ */
+ int HB_ANNOTATED_EREFERENCE = 5;
+
+ /**
+ * The feature id for the '<em><b>Model Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__MODEL_ELEMENT = PamodelPackage.PANNOTATED_EREFERENCE__MODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Transient</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__TRANSIENT = PamodelPackage.PANNOTATED_EREFERENCE__TRANSIENT;
+
+ /**
+ * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__ATTRIBUTE_OVERRIDES = PamodelPackage.PANNOTATED_EREFERENCE__ATTRIBUTE_OVERRIDES;
+
+ /**
+ * The feature id for the '<em><b>Join Table</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__JOIN_TABLE = PamodelPackage.PANNOTATED_EREFERENCE__JOIN_TABLE;
+
+ /**
+ * The feature id for the '<em><b>One To Many</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__ONE_TO_MANY = PamodelPackage.PANNOTATED_EREFERENCE__ONE_TO_MANY;
+
+ /**
+ * The feature id for the '<em><b>Sequence Generator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__SEQUENCE_GENERATOR = PamodelPackage.PANNOTATED_EREFERENCE__SEQUENCE_GENERATOR;
+
+ /**
+ * The feature id for the '<em><b>Table Generators</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__TABLE_GENERATORS = PamodelPackage.PANNOTATED_EREFERENCE__TABLE_GENERATORS;
+
+ /**
+ * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__JOIN_COLUMNS = PamodelPackage.PANNOTATED_EREFERENCE__JOIN_COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Column</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__COLUMN = PamodelPackage.PANNOTATED_EREFERENCE__COLUMN;
+
+ /**
+ * The feature id for the '<em><b>Pa EClass</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__PA_ECLASS = PamodelPackage.PANNOTATED_EREFERENCE__PA_ECLASS;
+
+ /**
+ * The feature id for the '<em><b>Model EStructural Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__MODEL_ESTRUCTURAL_FEATURE = PamodelPackage.PANNOTATED_EREFERENCE__MODEL_ESTRUCTURAL_FEATURE;
+
+ /**
+ * The feature id for the '<em><b>Foreign Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__FOREIGN_KEY = PamodelPackage.PANNOTATED_EREFERENCE__FOREIGN_KEY;
+
+ /**
+ * The feature id for the '<em><b>Model EReference</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__MODEL_EREFERENCE = PamodelPackage.PANNOTATED_EREFERENCE__MODEL_EREFERENCE;
+
+ /**
+ * The feature id for the '<em><b>Embedded</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__EMBEDDED = PamodelPackage.PANNOTATED_EREFERENCE__EMBEDDED;
+
+ /**
+ * The feature id for the '<em><b>Embedded Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__EMBEDDED_ID = PamodelPackage.PANNOTATED_EREFERENCE__EMBEDDED_ID;
+
+ /**
+ * The feature id for the '<em><b>Many To Many</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__MANY_TO_MANY = PamodelPackage.PANNOTATED_EREFERENCE__MANY_TO_MANY;
+
+ /**
+ * The feature id for the '<em><b>Many To One</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__MANY_TO_ONE = PamodelPackage.PANNOTATED_EREFERENCE__MANY_TO_ONE;
+
+ /**
+ * The feature id for the '<em><b>Map Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__MAP_KEY = PamodelPackage.PANNOTATED_EREFERENCE__MAP_KEY;
+
+ /**
+ * The feature id for the '<em><b>One To One</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__ONE_TO_ONE = PamodelPackage.PANNOTATED_EREFERENCE__ONE_TO_ONE;
+
+ /**
+ * The feature id for the '<em><b>Order By</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__ORDER_BY = PamodelPackage.PANNOTATED_EREFERENCE__ORDER_BY;
+
+ /**
+ * The feature id for the '<em><b>Primary Key Join Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__PRIMARY_KEY_JOIN_COLUMNS = PamodelPackage.PANNOTATED_EREFERENCE__PRIMARY_KEY_JOIN_COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Association Overrides</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__ASSOCIATION_OVERRIDES = PamodelPackage.PANNOTATED_EREFERENCE__ASSOCIATION_OVERRIDES;
+
+ /**
+ * The feature id for the '<em><b>External</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__EXTERNAL = PamodelPackage.PANNOTATED_EREFERENCE__EXTERNAL;
+
+ /**
+ * The feature id for the '<em><b>Hb Where</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__HB_WHERE = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Hb Collection Of Elements</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Hb Map Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__HB_MAP_KEY = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Hb Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__HB_COLUMNS = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Hb Cascade</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__HB_CASCADE = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Hb Id Bag</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__HB_ID_BAG = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Hb Index</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__HB_INDEX = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Filter</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__FILTER = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Map Key Many To Many</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Formula</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__FORMULA = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Hb Cache</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__HB_CACHE = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Hb Fetch</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__HB_FETCH = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Hb On Delete</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__HB_ON_DELETE = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Natural Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__NATURAL_ID = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 13;
+
+ /**
+ * The feature id for the '<em><b>Immutable</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__IMMUTABLE = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 14;
+
+ /**
+ * The feature id for the '<em><b>Not Found</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__NOT_FOUND = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 15;
+
+ /**
+ * The feature id for the '<em><b>Hb Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__HB_TYPE = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 16;
+
+ /**
+ * The feature id for the '<em><b>Batch Size</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__BATCH_SIZE = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 17;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__ANY = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 18;
+
+ /**
+ * The feature id for the '<em><b>Any Meta Def</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE__ANY_META_DEF = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 19;
+
+ /**
+ * The number of structural features of the '<em>Hb Annotated EReference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EREFERENCE_FEATURE_COUNT = PamodelPackage.PANNOTATED_EREFERENCE_FEATURE_COUNT + 20;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEDataTypeImpl <em>Hb Annotated EData Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEDataTypeImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEDataType()
+ * @generated
+ */
+ int HB_ANNOTATED_EDATA_TYPE = 6;
+
+ /**
+ * The feature id for the '<em><b>Model Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__MODEL_ELEMENT = PamodelPackage.PANNOTATED_EDATA_TYPE__MODEL_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Transient</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__TRANSIENT = PamodelPackage.PANNOTATED_EDATA_TYPE__TRANSIENT;
+
+ /**
+ * The feature id for the '<em><b>Model EData Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__MODEL_EDATA_TYPE = PamodelPackage.PANNOTATED_EDATA_TYPE__MODEL_EDATA_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Basic</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__BASIC = PamodelPackage.PANNOTATED_EDATA_TYPE__BASIC;
+
+ /**
+ * The feature id for the '<em><b>Enumerated</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__ENUMERATED = PamodelPackage.PANNOTATED_EDATA_TYPE__ENUMERATED;
+
+ /**
+ * The feature id for the '<em><b>Generated Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__GENERATED_VALUE = PamodelPackage.PANNOTATED_EDATA_TYPE__GENERATED_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__ID = PamodelPackage.PANNOTATED_EDATA_TYPE__ID;
+
+ /**
+ * The feature id for the '<em><b>Lob</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__LOB = PamodelPackage.PANNOTATED_EDATA_TYPE__LOB;
+
+ /**
+ * The feature id for the '<em><b>Temporal</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__TEMPORAL = PamodelPackage.PANNOTATED_EDATA_TYPE__TEMPORAL;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__VERSION = PamodelPackage.PANNOTATED_EDATA_TYPE__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Pa EPackage</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__PA_EPACKAGE = PamodelPackage.PANNOTATED_EDATA_TYPE__PA_EPACKAGE;
+
+ /**
+ * The feature id for the '<em><b>Column</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__COLUMN = PamodelPackage.PANNOTATED_EDATA_TYPE__COLUMN;
+
+ /**
+ * The feature id for the '<em><b>Hb Type Def</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF = PamodelPackage.PANNOTATED_EDATA_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Hb Where</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__HB_WHERE = PamodelPackage.PANNOTATED_EDATA_TYPE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Hb Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__HB_COLUMNS = PamodelPackage.PANNOTATED_EDATA_TYPE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Hb Id Bag</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG = PamodelPackage.PANNOTATED_EDATA_TYPE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Hb Index</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__HB_INDEX = PamodelPackage.PANNOTATED_EDATA_TYPE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Hb Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE__HB_TYPE = PamodelPackage.PANNOTATED_EDATA_TYPE_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Hb Annotated EData Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HB_ANNOTATED_EDATA_TYPE_FEATURE_COUNT = PamodelPackage.PANNOTATED_EDATA_TYPE_FEATURE_COUNT + 6;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement <em>Hb Annotated EType Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hb Annotated EType Element</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement
+ * @generated
+ */
+ EClass getHbAnnotatedETypeElement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbWhere <em>Hb Where</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Where</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbWhere()
+ * @see #getHbAnnotatedETypeElement()
+ * @generated
+ */
+ EReference getHbAnnotatedETypeElement_HbWhere();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbCollectionOfElements <em>Hb Collection Of Elements</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Collection Of Elements</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbCollectionOfElements()
+ * @see #getHbAnnotatedETypeElement()
+ * @generated
+ */
+ EReference getHbAnnotatedETypeElement_HbCollectionOfElements();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbMapKey <em>Hb Map Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Map Key</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbMapKey()
+ * @see #getHbAnnotatedETypeElement()
+ * @generated
+ */
+ EReference getHbAnnotatedETypeElement_HbMapKey();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbColumns <em>Hb Columns</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Hb Columns</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbColumns()
+ * @see #getHbAnnotatedETypeElement()
+ * @generated
+ */
+ EReference getHbAnnotatedETypeElement_HbColumns();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbCascade <em>Hb Cascade</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Cascade</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbCascade()
+ * @see #getHbAnnotatedETypeElement()
+ * @generated
+ */
+ EReference getHbAnnotatedETypeElement_HbCascade();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbIdBag <em>Hb Id Bag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Id Bag</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbIdBag()
+ * @see #getHbAnnotatedETypeElement()
+ * @generated
+ */
+ EReference getHbAnnotatedETypeElement_HbIdBag();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbIndex <em>Hb Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Hb Index</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getHbIndex()
+ * @see #getHbAnnotatedETypeElement()
+ * @generated
+ */
+ EReference getHbAnnotatedETypeElement_HbIndex();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getFilter <em>Filter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Filter</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getFilter()
+ * @see #getHbAnnotatedETypeElement()
+ * @generated
+ */
+ EReference getHbAnnotatedETypeElement_Filter();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getMapKeyManyToMany <em>Map Key Many To Many</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Map Key Many To Many</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getMapKeyManyToMany()
+ * @see #getHbAnnotatedETypeElement()
+ * @generated
+ */
+ EReference getHbAnnotatedETypeElement_MapKeyManyToMany();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getFormula <em>Formula</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Formula</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement#getFormula()
+ * @see #getHbAnnotatedETypeElement()
+ * @generated
+ */
+ EReference getHbAnnotatedETypeElement_Formula();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute <em>Hb Annotated EAttribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hb Annotated EAttribute</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute
+ * @generated
+ */
+ EClass getHbAnnotatedEAttribute();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getHbType <em>Hb Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getHbType()
+ * @see #getHbAnnotatedEAttribute()
+ * @generated
+ */
+ EReference getHbAnnotatedEAttribute_HbType();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getGenerated <em>Generated</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Generated</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getGenerated()
+ * @see #getHbAnnotatedEAttribute()
+ * @generated
+ */
+ EReference getHbAnnotatedEAttribute_Generated();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getNaturalId <em>Natural Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Natural Id</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getNaturalId()
+ * @see #getHbAnnotatedEAttribute()
+ * @generated
+ */
+ EReference getHbAnnotatedEAttribute_NaturalId();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Any</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getAny()
+ * @see #getHbAnnotatedEAttribute()
+ * @generated
+ */
+ EReference getHbAnnotatedEAttribute_Any();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getAnyMetaDef <em>Any Meta Def</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Any Meta Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute#getAnyMetaDef()
+ * @see #getHbAnnotatedEAttribute()
+ * @generated
+ */
+ EReference getHbAnnotatedEAttribute_AnyMetaDef();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass <em>Hb Annotated EClass</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hb Annotated EClass</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass
+ * @generated
+ */
+ EClass getHbAnnotatedEClass();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbCache <em>Hb Cache</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Cache</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbCache()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_HbCache();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbOnDelete <em>Hb On Delete</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Hb On Delete</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbOnDelete()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_HbOnDelete();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbWhere <em>Hb Where</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Where</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbWhere()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_HbWhere();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbProxy <em>Hb Proxy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Hb Proxy</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbProxy()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_HbProxy();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbNamedQuery <em>Hb Named Query</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Hb Named Query</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbNamedQuery()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_HbNamedQuery();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getFilterDef <em>Filter Def</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Filter Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getFilterDef()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_FilterDef();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getFilter <em>Filter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Filter</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getFilter()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_Filter();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getDiscriminatorFormula <em>Discriminator Formula</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Discriminator Formula</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getDiscriminatorFormula()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_DiscriminatorFormula();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getForceDiscriminator <em>Force Discriminator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Force Discriminator</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getForceDiscriminator()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_ForceDiscriminator();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getImmutable <em>Immutable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Immutable</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getImmutable()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_Immutable();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbEntity <em>Hb Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Hb Entity</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getHbEntity()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_HbEntity();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getBatchSize <em>Batch Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Batch Size</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass#getBatchSize()
+ * @see #getHbAnnotatedEClass()
+ * @generated
+ */
+ EReference getHbAnnotatedEClass_BatchSize();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement <em>Hb Annotated EModel Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hb Annotated EModel Element</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement
+ * @generated
+ */
+ EClass getHbAnnotatedEModelElement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage <em>Hb Annotated EPackage</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hb Annotated EPackage</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage
+ * @generated
+ */
+ EClass getHbAnnotatedEPackage();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getHbGenericGenerators <em>Hb Generic Generators</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Hb Generic Generators</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getHbGenericGenerators()
+ * @see #getHbAnnotatedEPackage()
+ * @generated
+ */
+ EReference getHbAnnotatedEPackage_HbGenericGenerators();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getHbTypeDef <em>Hb Type Def</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Hb Type Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getHbTypeDef()
+ * @see #getHbAnnotatedEPackage()
+ * @generated
+ */
+ EReference getHbAnnotatedEPackage_HbTypeDef();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getHbNamedQuery <em>Hb Named Query</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Hb Named Query</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getHbNamedQuery()
+ * @see #getHbAnnotatedEPackage()
+ * @generated
+ */
+ EReference getHbAnnotatedEPackage_HbNamedQuery();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getFilterDef <em>Filter Def</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Filter Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getFilterDef()
+ * @see #getHbAnnotatedEPackage()
+ * @generated
+ */
+ EReference getHbAnnotatedEPackage_FilterDef();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getAnyMetaDef <em>Any Meta Def</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Any Meta Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage#getAnyMetaDef()
+ * @see #getHbAnnotatedEPackage()
+ * @generated
+ */
+ EReference getHbAnnotatedEPackage_AnyMetaDef();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference <em>Hb Annotated EReference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hb Annotated EReference</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference
+ * @generated
+ */
+ EClass getHbAnnotatedEReference();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbCache <em>Hb Cache</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Cache</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbCache()
+ * @see #getHbAnnotatedEReference()
+ * @generated
+ */
+ EReference getHbAnnotatedEReference_HbCache();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbFetch <em>Hb Fetch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Hb Fetch</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbFetch()
+ * @see #getHbAnnotatedEReference()
+ * @generated
+ */
+ EReference getHbAnnotatedEReference_HbFetch();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbOnDelete <em>Hb On Delete</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Hb On Delete</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbOnDelete()
+ * @see #getHbAnnotatedEReference()
+ * @generated
+ */
+ EReference getHbAnnotatedEReference_HbOnDelete();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getNaturalId <em>Natural Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Natural Id</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getNaturalId()
+ * @see #getHbAnnotatedEReference()
+ * @generated
+ */
+ EReference getHbAnnotatedEReference_NaturalId();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getImmutable <em>Immutable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Immutable</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getImmutable()
+ * @see #getHbAnnotatedEReference()
+ * @generated
+ */
+ EReference getHbAnnotatedEReference_Immutable();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getNotFound <em>Not Found</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Not Found</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getNotFound()
+ * @see #getHbAnnotatedEReference()
+ * @generated
+ */
+ EReference getHbAnnotatedEReference_NotFound();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbType <em>Hb Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getHbType()
+ * @see #getHbAnnotatedEReference()
+ * @generated
+ */
+ EReference getHbAnnotatedEReference_HbType();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getBatchSize <em>Batch Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Batch Size</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getBatchSize()
+ * @see #getHbAnnotatedEReference()
+ * @generated
+ */
+ EReference getHbAnnotatedEReference_BatchSize();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Any</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getAny()
+ * @see #getHbAnnotatedEReference()
+ * @generated
+ */
+ EReference getHbAnnotatedEReference_Any();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getAnyMetaDef <em>Any Meta Def</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Any Meta Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference#getAnyMetaDef()
+ * @see #getHbAnnotatedEReference()
+ * @generated
+ */
+ EReference getHbAnnotatedEReference_AnyMetaDef();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType <em>Hb Annotated EData Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hb Annotated EData Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType
+ * @generated
+ */
+ EClass getHbAnnotatedEDataType();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbTypeDef <em>Hb Type Def</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Type Def</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbTypeDef()
+ * @see #getHbAnnotatedEDataType()
+ * @generated
+ */
+ EReference getHbAnnotatedEDataType_HbTypeDef();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbWhere <em>Hb Where</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Where</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbWhere()
+ * @see #getHbAnnotatedEDataType()
+ * @generated
+ */
+ EReference getHbAnnotatedEDataType_HbWhere();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbColumns <em>Hb Columns</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Hb Columns</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbColumns()
+ * @see #getHbAnnotatedEDataType()
+ * @generated
+ */
+ EReference getHbAnnotatedEDataType_HbColumns();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbIdBag <em>Hb Id Bag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Id Bag</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbIdBag()
+ * @see #getHbAnnotatedEDataType()
+ * @generated
+ */
+ EReference getHbAnnotatedEDataType_HbIdBag();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbIndex <em>Hb Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Hb Index</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbIndex()
+ * @see #getHbAnnotatedEDataType()
+ * @generated
+ */
+ EReference getHbAnnotatedEDataType_HbIndex();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbType <em>Hb Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Hb Type</em>'.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType#getHbType()
+ * @see #getHbAnnotatedEDataType()
+ * @generated
+ */
+ EReference getHbAnnotatedEDataType_HbType();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ HbmodelFactory getHbmodelFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement <em>Hb Annotated EType Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedETypeElement()
+ * @generated
+ */
+ EClass HB_ANNOTATED_ETYPE_ELEMENT = eINSTANCE.getHbAnnotatedETypeElement();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Where</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ETYPE_ELEMENT__HB_WHERE = eINSTANCE.getHbAnnotatedETypeElement_HbWhere();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Collection Of Elements</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ETYPE_ELEMENT__HB_COLLECTION_OF_ELEMENTS = eINSTANCE.getHbAnnotatedETypeElement_HbCollectionOfElements();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Map Key</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ETYPE_ELEMENT__HB_MAP_KEY = eINSTANCE.getHbAnnotatedETypeElement_HbMapKey();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Columns</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ETYPE_ELEMENT__HB_COLUMNS = eINSTANCE.getHbAnnotatedETypeElement_HbColumns();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Cascade</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ETYPE_ELEMENT__HB_CASCADE = eINSTANCE.getHbAnnotatedETypeElement_HbCascade();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Id Bag</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ETYPE_ELEMENT__HB_ID_BAG = eINSTANCE.getHbAnnotatedETypeElement_HbIdBag();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Index</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ETYPE_ELEMENT__HB_INDEX = eINSTANCE.getHbAnnotatedETypeElement_HbIndex();
+
+ /**
+ * The meta object literal for the '<em><b>Filter</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ETYPE_ELEMENT__FILTER = eINSTANCE.getHbAnnotatedETypeElement_Filter();
+
+ /**
+ * The meta object literal for the '<em><b>Map Key Many To Many</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ETYPE_ELEMENT__MAP_KEY_MANY_TO_MANY = eINSTANCE.getHbAnnotatedETypeElement_MapKeyManyToMany();
+
+ /**
+ * The meta object literal for the '<em><b>Formula</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ETYPE_ELEMENT__FORMULA = eINSTANCE.getHbAnnotatedETypeElement_Formula();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl <em>Hb Annotated EAttribute</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEAttribute()
+ * @generated
+ */
+ EClass HB_ANNOTATED_EATTRIBUTE = eINSTANCE.getHbAnnotatedEAttribute();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EATTRIBUTE__HB_TYPE = eINSTANCE.getHbAnnotatedEAttribute_HbType();
+
+ /**
+ * The meta object literal for the '<em><b>Generated</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EATTRIBUTE__GENERATED = eINSTANCE.getHbAnnotatedEAttribute_Generated();
+
+ /**
+ * The meta object literal for the '<em><b>Natural Id</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EATTRIBUTE__NATURAL_ID = eINSTANCE.getHbAnnotatedEAttribute_NaturalId();
+
+ /**
+ * The meta object literal for the '<em><b>Any</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EATTRIBUTE__ANY = eINSTANCE.getHbAnnotatedEAttribute_Any();
+
+ /**
+ * The meta object literal for the '<em><b>Any Meta Def</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EATTRIBUTE__ANY_META_DEF = eINSTANCE.getHbAnnotatedEAttribute_AnyMetaDef();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl <em>Hb Annotated EClass</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEClass()
+ * @generated
+ */
+ EClass HB_ANNOTATED_ECLASS = eINSTANCE.getHbAnnotatedEClass();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Cache</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__HB_CACHE = eINSTANCE.getHbAnnotatedEClass_HbCache();
+
+ /**
+ * The meta object literal for the '<em><b>Hb On Delete</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__HB_ON_DELETE = eINSTANCE.getHbAnnotatedEClass_HbOnDelete();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Where</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__HB_WHERE = eINSTANCE.getHbAnnotatedEClass_HbWhere();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Proxy</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__HB_PROXY = eINSTANCE.getHbAnnotatedEClass_HbProxy();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Named Query</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__HB_NAMED_QUERY = eINSTANCE.getHbAnnotatedEClass_HbNamedQuery();
+
+ /**
+ * The meta object literal for the '<em><b>Filter Def</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__FILTER_DEF = eINSTANCE.getHbAnnotatedEClass_FilterDef();
+
+ /**
+ * The meta object literal for the '<em><b>Filter</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__FILTER = eINSTANCE.getHbAnnotatedEClass_Filter();
+
+ /**
+ * The meta object literal for the '<em><b>Discriminator Formula</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA = eINSTANCE.getHbAnnotatedEClass_DiscriminatorFormula();
+
+ /**
+ * The meta object literal for the '<em><b>Force Discriminator</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR = eINSTANCE.getHbAnnotatedEClass_ForceDiscriminator();
+
+ /**
+ * The meta object literal for the '<em><b>Immutable</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__IMMUTABLE = eINSTANCE.getHbAnnotatedEClass_Immutable();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Entity</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__HB_ENTITY = eINSTANCE.getHbAnnotatedEClass_HbEntity();
+
+ /**
+ * The meta object literal for the '<em><b>Batch Size</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_ECLASS__BATCH_SIZE = eINSTANCE.getHbAnnotatedEClass_BatchSize();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement <em>Hb Annotated EModel Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEModelElement()
+ * @generated
+ */
+ EClass HB_ANNOTATED_EMODEL_ELEMENT = eINSTANCE.getHbAnnotatedEModelElement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEPackageImpl <em>Hb Annotated EPackage</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEPackageImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEPackage()
+ * @generated
+ */
+ EClass HB_ANNOTATED_EPACKAGE = eINSTANCE.getHbAnnotatedEPackage();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Generic Generators</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EPACKAGE__HB_GENERIC_GENERATORS = eINSTANCE.getHbAnnotatedEPackage_HbGenericGenerators();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Type Def</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EPACKAGE__HB_TYPE_DEF = eINSTANCE.getHbAnnotatedEPackage_HbTypeDef();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Named Query</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EPACKAGE__HB_NAMED_QUERY = eINSTANCE.getHbAnnotatedEPackage_HbNamedQuery();
+
+ /**
+ * The meta object literal for the '<em><b>Filter Def</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EPACKAGE__FILTER_DEF = eINSTANCE.getHbAnnotatedEPackage_FilterDef();
+
+ /**
+ * The meta object literal for the '<em><b>Any Meta Def</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EPACKAGE__ANY_META_DEF = eINSTANCE.getHbAnnotatedEPackage_AnyMetaDef();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl <em>Hb Annotated EReference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEReference()
+ * @generated
+ */
+ EClass HB_ANNOTATED_EREFERENCE = eINSTANCE.getHbAnnotatedEReference();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Cache</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EREFERENCE__HB_CACHE = eINSTANCE.getHbAnnotatedEReference_HbCache();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Fetch</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EREFERENCE__HB_FETCH = eINSTANCE.getHbAnnotatedEReference_HbFetch();
+
+ /**
+ * The meta object literal for the '<em><b>Hb On Delete</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EREFERENCE__HB_ON_DELETE = eINSTANCE.getHbAnnotatedEReference_HbOnDelete();
+
+ /**
+ * The meta object literal for the '<em><b>Natural Id</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EREFERENCE__NATURAL_ID = eINSTANCE.getHbAnnotatedEReference_NaturalId();
+
+ /**
+ * The meta object literal for the '<em><b>Immutable</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EREFERENCE__IMMUTABLE = eINSTANCE.getHbAnnotatedEReference_Immutable();
+
+ /**
+ * The meta object literal for the '<em><b>Not Found</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EREFERENCE__NOT_FOUND = eINSTANCE.getHbAnnotatedEReference_NotFound();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EREFERENCE__HB_TYPE = eINSTANCE.getHbAnnotatedEReference_HbType();
+
+ /**
+ * The meta object literal for the '<em><b>Batch Size</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EREFERENCE__BATCH_SIZE = eINSTANCE.getHbAnnotatedEReference_BatchSize();
+
+ /**
+ * The meta object literal for the '<em><b>Any</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EREFERENCE__ANY = eINSTANCE.getHbAnnotatedEReference_Any();
+
+ /**
+ * The meta object literal for the '<em><b>Any Meta Def</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EREFERENCE__ANY_META_DEF = eINSTANCE.getHbAnnotatedEReference_AnyMetaDef();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEDataTypeImpl <em>Hb Annotated EData Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEDataTypeImpl
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbmodelPackageImpl#getHbAnnotatedEDataType()
+ * @generated
+ */
+ EClass HB_ANNOTATED_EDATA_TYPE = eINSTANCE.getHbAnnotatedEDataType();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Type Def</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF = eINSTANCE.getHbAnnotatedEDataType_HbTypeDef();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Where</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EDATA_TYPE__HB_WHERE = eINSTANCE.getHbAnnotatedEDataType_HbWhere();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Columns</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EDATA_TYPE__HB_COLUMNS = eINSTANCE.getHbAnnotatedEDataType_HbColumns();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Id Bag</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG = eINSTANCE.getHbAnnotatedEDataType_HbIdBag();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Index</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EDATA_TYPE__HB_INDEX = eINSTANCE.getHbAnnotatedEDataType_HbIndex();
+
+ /**
+ * The meta object literal for the '<em><b>Hb Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HB_ANNOTATED_EDATA_TYPE__HB_TYPE = eINSTANCE.getHbAnnotatedEDataType_HbType();
+
+ }
+
+} //HbmodelPackage
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEAttributeImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEAttributeImpl.java
new file mode 100755
index 000000000..4216139a0
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEAttributeImpl.java
@@ -0,0 +1,1070 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEAttributeImpl.java,v 1.14 2010/02/04 11:03:44 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.teneo.annotations.pamodel.impl.PAnnotatedEAttributeImpl;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Any;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Formula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Generated;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Hb Annotated EAttribute</b></em>'. <!--
+ * end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getHbWhere <em>Hb Where</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getHbCollectionOfElements <em>Hb Collection Of Elements</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getHbMapKey <em>Hb Map Key</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getHbColumns <em>Hb Columns</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getHbCascade <em>Hb Cascade</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getHbIdBag <em>Hb Id Bag</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getHbIndex <em>Hb Index</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getFilter <em>Filter</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getMapKeyManyToMany <em>Map Key Many To Many</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getFormula <em>Formula</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getHbType <em>Hb Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getGenerated <em>Generated</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getNaturalId <em>Natural Id</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getAny <em>Any</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEAttributeImpl#getAnyMetaDef <em>Any Meta Def</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class HbAnnotatedEAttributeImpl extends PAnnotatedEAttributeImpl implements HbAnnotatedEAttribute {
+ /**
+ * The cached value of the '{@link #getHbWhere() <em>Hb Where</em>}' containment reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @see #getHbWhere()
+ * @generated
+ * @ordered
+ */
+ protected Where hbWhere;
+
+ /**
+ * The cached value of the '{@link #getHbCollectionOfElements() <em>Hb Collection Of Elements</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getHbCollectionOfElements()
+ * @generated
+ * @ordered
+ */
+ protected CollectionOfElements hbCollectionOfElements;
+
+ /**
+ * The cached value of the '{@link #getHbMapKey() <em>Hb Map Key</em>}' containment reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @see #getHbMapKey()
+ * @generated
+ * @ordered
+ */
+ protected HbMapKey hbMapKey;
+
+ /**
+ * The cached value of the '{@link #getHbColumns() <em>Hb Columns</em>}' containment reference list. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getHbColumns()
+ * @generated
+ * @ordered
+ */
+ protected EList<Column> hbColumns;
+
+ /**
+ * The cached value of the '{@link #getHbCascade() <em>Hb Cascade</em>}' containment reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getHbCascade()
+ * @generated
+ * @ordered
+ */
+ protected Cascade hbCascade;
+
+ /**
+ * The cached value of the '{@link #getHbIdBag() <em>Hb Id Bag</em>}' containment reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @see #getHbIdBag()
+ * @generated
+ * @ordered
+ */
+ protected IdBag hbIdBag;
+
+ /**
+ * The cached value of the '{@link #getHbIndex() <em>Hb Index</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbIndex()
+ * @generated
+ * @ordered
+ */
+ protected Index hbIndex;
+
+ /**
+ * The cached value of the '{@link #getFilter() <em>Filter</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFilter()
+ * @generated
+ * @ordered
+ */
+ protected EList<Filter> filter;
+
+ /**
+ * The cached value of the '{@link #getMapKeyManyToMany() <em>Map Key Many To Many</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMapKeyManyToMany()
+ * @generated
+ * @ordered
+ */
+ protected MapKeyManyToMany mapKeyManyToMany;
+
+ /**
+ * The cached value of the '{@link #getFormula() <em>Formula</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFormula()
+ * @generated
+ * @ordered
+ */
+ protected Formula formula;
+
+ /**
+ * The cached value of the '{@link #getHbType() <em>Hb Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbType()
+ * @generated
+ * @ordered
+ */
+ protected Type hbType;
+
+ /**
+ * The cached value of the '{@link #getGenerated() <em>Generated</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenerated()
+ * @generated
+ * @ordered
+ */
+ protected Generated generated;
+
+ /**
+ * The cached value of the '{@link #getNaturalId() <em>Natural Id</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNaturalId()
+ * @generated
+ * @ordered
+ */
+ protected NaturalId naturalId;
+
+ /**
+ * The cached value of the '{@link #getAny() <em>Any</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAny()
+ * @generated
+ * @ordered
+ */
+ protected Any any;
+
+ /**
+ * The cached value of the '{@link #getAnyMetaDef() <em>Any Meta Def</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAnyMetaDef()
+ * @generated
+ * @ordered
+ */
+ protected AnyMetaDef anyMetaDef;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected HbAnnotatedEAttributeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbmodelPackage.Literals.HB_ANNOTATED_EATTRIBUTE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Where getHbWhere() {
+ return hbWhere;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbWhere(Where newHbWhere, NotificationChain msgs) {
+ Where oldHbWhere = hbWhere;
+ hbWhere = newHbWhere;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_WHERE, oldHbWhere, newHbWhere);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbWhere(Where newHbWhere) {
+ if (newHbWhere != hbWhere) {
+ NotificationChain msgs = null;
+ if (hbWhere != null)
+ msgs = ((InternalEObject)hbWhere).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_WHERE, null, msgs);
+ if (newHbWhere != null)
+ msgs = ((InternalEObject)newHbWhere).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_WHERE, null, msgs);
+ msgs = basicSetHbWhere(newHbWhere, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_WHERE, newHbWhere, newHbWhere));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public CollectionOfElements getHbCollectionOfElements() {
+ return hbCollectionOfElements;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbCollectionOfElements(CollectionOfElements newHbCollectionOfElements, NotificationChain msgs) {
+ CollectionOfElements oldHbCollectionOfElements = hbCollectionOfElements;
+ hbCollectionOfElements = newHbCollectionOfElements;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS, oldHbCollectionOfElements, newHbCollectionOfElements);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbCollectionOfElements(CollectionOfElements newHbCollectionOfElements) {
+ if (newHbCollectionOfElements != hbCollectionOfElements) {
+ NotificationChain msgs = null;
+ if (hbCollectionOfElements != null)
+ msgs = ((InternalEObject)hbCollectionOfElements).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS, null, msgs);
+ if (newHbCollectionOfElements != null)
+ msgs = ((InternalEObject)newHbCollectionOfElements).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS, null, msgs);
+ msgs = basicSetHbCollectionOfElements(newHbCollectionOfElements, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS, newHbCollectionOfElements, newHbCollectionOfElements));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HbMapKey getHbMapKey() {
+ return hbMapKey;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbMapKey(HbMapKey newHbMapKey, NotificationChain msgs) {
+ HbMapKey oldHbMapKey = hbMapKey;
+ hbMapKey = newHbMapKey;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY, oldHbMapKey, newHbMapKey);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbMapKey(HbMapKey newHbMapKey) {
+ if (newHbMapKey != hbMapKey) {
+ NotificationChain msgs = null;
+ if (hbMapKey != null)
+ msgs = ((InternalEObject)hbMapKey).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY, null, msgs);
+ if (newHbMapKey != null)
+ msgs = ((InternalEObject)newHbMapKey).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY, null, msgs);
+ msgs = basicSetHbMapKey(newHbMapKey, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY, newHbMapKey, newHbMapKey));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Column> getHbColumns() {
+ if (hbColumns == null) {
+ hbColumns = new EObjectContainmentEList<Column>(Column.class, this, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLUMNS);
+ }
+ return hbColumns;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Cascade getHbCascade() {
+ return hbCascade;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbCascade(Cascade newHbCascade, NotificationChain msgs) {
+ Cascade oldHbCascade = hbCascade;
+ hbCascade = newHbCascade;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_CASCADE, oldHbCascade, newHbCascade);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbCascade(Cascade newHbCascade) {
+ if (newHbCascade != hbCascade) {
+ NotificationChain msgs = null;
+ if (hbCascade != null)
+ msgs = ((InternalEObject)hbCascade).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_CASCADE, null, msgs);
+ if (newHbCascade != null)
+ msgs = ((InternalEObject)newHbCascade).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_CASCADE, null, msgs);
+ msgs = basicSetHbCascade(newHbCascade, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_CASCADE, newHbCascade, newHbCascade));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IdBag getHbIdBag() {
+ return hbIdBag;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbIdBag(IdBag newHbIdBag, NotificationChain msgs) {
+ IdBag oldHbIdBag = hbIdBag;
+ hbIdBag = newHbIdBag;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG, oldHbIdBag, newHbIdBag);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbIdBag(IdBag newHbIdBag) {
+ if (newHbIdBag != hbIdBag) {
+ NotificationChain msgs = null;
+ if (hbIdBag != null)
+ msgs = ((InternalEObject)hbIdBag).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG, null, msgs);
+ if (newHbIdBag != null)
+ msgs = ((InternalEObject)newHbIdBag).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG, null, msgs);
+ msgs = basicSetHbIdBag(newHbIdBag, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG, newHbIdBag, newHbIdBag));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Index getHbIndex() {
+ if (hbIndex != null && hbIndex.eIsProxy()) {
+ InternalEObject oldHbIndex = (InternalEObject)hbIndex;
+ hbIndex = (Index)eResolveProxy(oldHbIndex);
+ if (hbIndex != oldHbIndex) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_INDEX, oldHbIndex, hbIndex));
+ }
+ }
+ return hbIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Index basicGetHbIndex() {
+ return hbIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbIndex(Index newHbIndex) {
+ Index oldHbIndex = hbIndex;
+ hbIndex = newHbIndex;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_INDEX, oldHbIndex, hbIndex));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Filter> getFilter() {
+ if (filter == null) {
+ filter = new EObjectResolvingEList<Filter>(Filter.class, this, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FILTER);
+ }
+ return filter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MapKeyManyToMany getMapKeyManyToMany() {
+ return mapKeyManyToMany;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMapKeyManyToMany(MapKeyManyToMany newMapKeyManyToMany, NotificationChain msgs) {
+ MapKeyManyToMany oldMapKeyManyToMany = mapKeyManyToMany;
+ mapKeyManyToMany = newMapKeyManyToMany;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY, oldMapKeyManyToMany, newMapKeyManyToMany);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMapKeyManyToMany(MapKeyManyToMany newMapKeyManyToMany) {
+ if (newMapKeyManyToMany != mapKeyManyToMany) {
+ NotificationChain msgs = null;
+ if (mapKeyManyToMany != null)
+ msgs = ((InternalEObject)mapKeyManyToMany).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY, null, msgs);
+ if (newMapKeyManyToMany != null)
+ msgs = ((InternalEObject)newMapKeyManyToMany).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY, null, msgs);
+ msgs = basicSetMapKeyManyToMany(newMapKeyManyToMany, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY, newMapKeyManyToMany, newMapKeyManyToMany));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Formula getFormula() {
+ if (formula != null && formula.eIsProxy()) {
+ InternalEObject oldFormula = (InternalEObject)formula;
+ formula = (Formula)eResolveProxy(oldFormula);
+ if (formula != oldFormula) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FORMULA, oldFormula, formula));
+ }
+ }
+ return formula;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Formula basicGetFormula() {
+ return formula;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFormula(Formula newFormula) {
+ Formula oldFormula = formula;
+ formula = newFormula;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FORMULA, oldFormula, formula));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getHbType() {
+ return hbType;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbType(Type newHbType, NotificationChain msgs) {
+ Type oldHbType = hbType;
+ hbType = newHbType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_TYPE, oldHbType, newHbType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbType(Type newHbType) {
+ if (newHbType != hbType) {
+ NotificationChain msgs = null;
+ if (hbType != null)
+ msgs = ((InternalEObject)hbType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_TYPE, null, msgs);
+ if (newHbType != null)
+ msgs = ((InternalEObject)newHbType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_TYPE, null, msgs);
+ msgs = basicSetHbType(newHbType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_TYPE, newHbType, newHbType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Generated getGenerated() {
+ return generated;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetGenerated(Generated newGenerated, NotificationChain msgs) {
+ Generated oldGenerated = generated;
+ generated = newGenerated;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__GENERATED, oldGenerated, newGenerated);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGenerated(Generated newGenerated) {
+ if (newGenerated != generated) {
+ NotificationChain msgs = null;
+ if (generated != null)
+ msgs = ((InternalEObject)generated).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__GENERATED, null, msgs);
+ if (newGenerated != null)
+ msgs = ((InternalEObject)newGenerated).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__GENERATED, null, msgs);
+ msgs = basicSetGenerated(newGenerated, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__GENERATED, newGenerated, newGenerated));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NaturalId getNaturalId() {
+ return naturalId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetNaturalId(NaturalId newNaturalId, NotificationChain msgs) {
+ NaturalId oldNaturalId = naturalId;
+ naturalId = newNaturalId;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__NATURAL_ID, oldNaturalId, newNaturalId);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNaturalId(NaturalId newNaturalId) {
+ if (newNaturalId != naturalId) {
+ NotificationChain msgs = null;
+ if (naturalId != null)
+ msgs = ((InternalEObject)naturalId).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__NATURAL_ID, null, msgs);
+ if (newNaturalId != null)
+ msgs = ((InternalEObject)newNaturalId).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__NATURAL_ID, null, msgs);
+ msgs = basicSetNaturalId(newNaturalId, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__NATURAL_ID, newNaturalId, newNaturalId));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Any getAny() {
+ if (any != null && any.eIsProxy()) {
+ InternalEObject oldAny = (InternalEObject)any;
+ any = (Any)eResolveProxy(oldAny);
+ if (any != oldAny) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY, oldAny, any));
+ }
+ }
+ return any;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Any basicGetAny() {
+ return any;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAny(Any newAny) {
+ Any oldAny = any;
+ any = newAny;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY, oldAny, any));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnyMetaDef getAnyMetaDef() {
+ if (anyMetaDef != null && anyMetaDef.eIsProxy()) {
+ InternalEObject oldAnyMetaDef = (InternalEObject)anyMetaDef;
+ anyMetaDef = (AnyMetaDef)eResolveProxy(oldAnyMetaDef);
+ if (anyMetaDef != oldAnyMetaDef) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY_META_DEF, oldAnyMetaDef, anyMetaDef));
+ }
+ }
+ return anyMetaDef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnyMetaDef basicGetAnyMetaDef() {
+ return anyMetaDef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAnyMetaDef(AnyMetaDef newAnyMetaDef) {
+ AnyMetaDef oldAnyMetaDef = anyMetaDef;
+ anyMetaDef = newAnyMetaDef;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY_META_DEF, oldAnyMetaDef, anyMetaDef));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_WHERE:
+ return basicSetHbWhere(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS:
+ return basicSetHbCollectionOfElements(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY:
+ return basicSetHbMapKey(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLUMNS:
+ return ((InternalEList<?>)getHbColumns()).basicRemove(otherEnd, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_CASCADE:
+ return basicSetHbCascade(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG:
+ return basicSetHbIdBag(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY:
+ return basicSetMapKeyManyToMany(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_TYPE:
+ return basicSetHbType(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__GENERATED:
+ return basicSetGenerated(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__NATURAL_ID:
+ return basicSetNaturalId(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_WHERE:
+ return getHbWhere();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS:
+ return getHbCollectionOfElements();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY:
+ return getHbMapKey();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLUMNS:
+ return getHbColumns();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_CASCADE:
+ return getHbCascade();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG:
+ return getHbIdBag();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_INDEX:
+ if (resolve) return getHbIndex();
+ return basicGetHbIndex();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FILTER:
+ return getFilter();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY:
+ return getMapKeyManyToMany();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FORMULA:
+ if (resolve) return getFormula();
+ return basicGetFormula();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_TYPE:
+ return getHbType();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__GENERATED:
+ return getGenerated();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__NATURAL_ID:
+ return getNaturalId();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY:
+ if (resolve) return getAny();
+ return basicGetAny();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY_META_DEF:
+ if (resolve) return getAnyMetaDef();
+ return basicGetAnyMetaDef();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_WHERE:
+ setHbWhere((Where)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS:
+ setHbCollectionOfElements((CollectionOfElements)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY:
+ setHbMapKey((HbMapKey)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLUMNS:
+ getHbColumns().clear();
+ getHbColumns().addAll((Collection<? extends Column>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_CASCADE:
+ setHbCascade((Cascade)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG:
+ setHbIdBag((IdBag)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_INDEX:
+ setHbIndex((Index)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FILTER:
+ getFilter().clear();
+ getFilter().addAll((Collection<? extends Filter>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY:
+ setMapKeyManyToMany((MapKeyManyToMany)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FORMULA:
+ setFormula((Formula)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_TYPE:
+ setHbType((Type)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__GENERATED:
+ setGenerated((Generated)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__NATURAL_ID:
+ setNaturalId((NaturalId)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY:
+ setAny((Any)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY_META_DEF:
+ setAnyMetaDef((AnyMetaDef)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_WHERE:
+ setHbWhere((Where)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS:
+ setHbCollectionOfElements((CollectionOfElements)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY:
+ setHbMapKey((HbMapKey)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLUMNS:
+ getHbColumns().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_CASCADE:
+ setHbCascade((Cascade)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG:
+ setHbIdBag((IdBag)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_INDEX:
+ setHbIndex((Index)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FILTER:
+ getFilter().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY:
+ setMapKeyManyToMany((MapKeyManyToMany)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FORMULA:
+ setFormula((Formula)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_TYPE:
+ setHbType((Type)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__GENERATED:
+ setGenerated((Generated)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__NATURAL_ID:
+ setNaturalId((NaturalId)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY:
+ setAny((Any)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY_META_DEF:
+ setAnyMetaDef((AnyMetaDef)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_WHERE:
+ return hbWhere != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS:
+ return hbCollectionOfElements != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY:
+ return hbMapKey != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLUMNS:
+ return hbColumns != null && !hbColumns.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_CASCADE:
+ return hbCascade != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG:
+ return hbIdBag != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_INDEX:
+ return hbIndex != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FILTER:
+ return filter != null && !filter.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY:
+ return mapKeyManyToMany != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FORMULA:
+ return formula != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_TYPE:
+ return hbType != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__GENERATED:
+ return generated != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__NATURAL_ID:
+ return naturalId != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY:
+ return any != null;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__ANY_META_DEF:
+ return anyMetaDef != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == HbAnnotatedEModelElement.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == HbAnnotatedETypeElement.class) {
+ switch (derivedFeatureID) {
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_WHERE: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_WHERE;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_COLLECTION_OF_ELEMENTS;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_MAP_KEY;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLUMNS: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_COLUMNS;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_CASCADE: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_CASCADE;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_ID_BAG;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_INDEX: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_INDEX;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FILTER: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__FILTER;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__MAP_KEY_MANY_TO_MANY;
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FORMULA: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__FORMULA;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == HbAnnotatedEModelElement.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == HbAnnotatedETypeElement.class) {
+ switch (baseFeatureID) {
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_WHERE: return HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_WHERE;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_COLLECTION_OF_ELEMENTS: return HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLLECTION_OF_ELEMENTS;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_MAP_KEY: return HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_MAP_KEY;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_COLUMNS: return HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_COLUMNS;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_CASCADE: return HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_CASCADE;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_ID_BAG: return HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_ID_BAG;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_INDEX: return HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__HB_INDEX;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__FILTER: return HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FILTER;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__MAP_KEY_MANY_TO_MANY: return HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__MAP_KEY_MANY_TO_MANY;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__FORMULA: return HbmodelPackage.HB_ANNOTATED_EATTRIBUTE__FORMULA;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+} // HbAnnotatedEAttributeImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEClassImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEClassImpl.java
new file mode 100755
index 000000000..7ed3ce056
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEClassImpl.java
@@ -0,0 +1,788 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEClassImpl.java,v 1.17 2010/02/04 11:03:43 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.teneo.annotations.pamodel.impl.PAnnotatedEClassImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ForceDiscriminator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Immutable;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Proxy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Hb Annotated EClass</b></em>'. <!--
+ * end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getHbCache <em>Hb Cache</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getHbOnDelete <em>Hb On Delete</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getHbWhere <em>Hb Where</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getHbProxy <em>Hb Proxy</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getHbNamedQuery <em>Hb Named Query</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getFilterDef <em>Filter Def</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getFilter <em>Filter</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getDiscriminatorFormula <em>Discriminator Formula</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getForceDiscriminator <em>Force Discriminator</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getImmutable <em>Immutable</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getHbEntity <em>Hb Entity</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEClassImpl#getBatchSize <em>Batch Size</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class HbAnnotatedEClassImpl extends PAnnotatedEClassImpl implements HbAnnotatedEClass {
+ /**
+ * The cached value of the '{@link #getHbCache() <em>Hb Cache</em>}' containment reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @see #getHbCache()
+ * @generated
+ * @ordered
+ */
+ protected Cache hbCache;
+
+ /**
+ * The cached value of the '{@link #getHbOnDelete() <em>Hb On Delete</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbOnDelete()
+ * @generated
+ * @ordered
+ */
+ protected OnDelete hbOnDelete;
+
+ /**
+ * The cached value of the '{@link #getHbWhere() <em>Hb Where</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbWhere()
+ * @generated
+ * @ordered
+ */
+ protected Where hbWhere;
+
+ /**
+ * The cached value of the '{@link #getHbProxy() <em>Hb Proxy</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbProxy()
+ * @generated
+ * @ordered
+ */
+ protected Proxy hbProxy;
+
+ /**
+ * The cached value of the '{@link #getHbNamedQuery() <em>Hb Named Query</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbNamedQuery()
+ * @generated
+ * @ordered
+ */
+ protected EList<NamedQuery> hbNamedQuery;
+
+ /**
+ * The cached value of the '{@link #getFilterDef() <em>Filter Def</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFilterDef()
+ * @generated
+ * @ordered
+ */
+ protected EList<FilterDef> filterDef;
+
+ /**
+ * The cached value of the '{@link #getFilter() <em>Filter</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFilter()
+ * @generated
+ * @ordered
+ */
+ protected EList<Filter> filter;
+
+ /**
+ * The cached value of the '{@link #getDiscriminatorFormula() <em>Discriminator Formula</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDiscriminatorFormula()
+ * @generated
+ * @ordered
+ */
+ protected DiscriminatorFormula discriminatorFormula;
+
+ /**
+ * The cached value of the '{@link #getForceDiscriminator() <em>Force Discriminator</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getForceDiscriminator()
+ * @generated
+ * @ordered
+ */
+ protected ForceDiscriminator forceDiscriminator;
+
+ /**
+ * The cached value of the '{@link #getImmutable() <em>Immutable</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImmutable()
+ * @generated
+ * @ordered
+ */
+ protected Immutable immutable;
+
+ /**
+ * The cached value of the '{@link #getHbEntity() <em>Hb Entity</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbEntity()
+ * @generated
+ * @ordered
+ */
+ protected HbEntity hbEntity;
+
+ /**
+ * The cached value of the '{@link #getBatchSize() <em>Batch Size</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBatchSize()
+ * @generated
+ * @ordered
+ */
+ protected BatchSize batchSize;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected HbAnnotatedEClassImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbmodelPackage.Literals.HB_ANNOTATED_ECLASS;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Cache getHbCache() {
+ return hbCache;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbCache(Cache newHbCache, NotificationChain msgs) {
+ Cache oldHbCache = hbCache;
+ hbCache = newHbCache;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__HB_CACHE, oldHbCache, newHbCache);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbCache(Cache newHbCache) {
+ if (newHbCache != hbCache) {
+ NotificationChain msgs = null;
+ if (hbCache != null)
+ msgs = ((InternalEObject)hbCache).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_ECLASS__HB_CACHE, null, msgs);
+ if (newHbCache != null)
+ msgs = ((InternalEObject)newHbCache).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_ECLASS__HB_CACHE, null, msgs);
+ msgs = basicSetHbCache(newHbCache, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__HB_CACHE, newHbCache, newHbCache));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OnDelete getHbOnDelete() {
+ if (hbOnDelete != null && hbOnDelete.eIsProxy()) {
+ InternalEObject oldHbOnDelete = (InternalEObject)hbOnDelete;
+ hbOnDelete = (OnDelete)eResolveProxy(oldHbOnDelete);
+ if (hbOnDelete != oldHbOnDelete) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ON_DELETE, oldHbOnDelete, hbOnDelete));
+ }
+ }
+ return hbOnDelete;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OnDelete basicGetHbOnDelete() {
+ return hbOnDelete;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbOnDelete(OnDelete newHbOnDelete) {
+ OnDelete oldHbOnDelete = hbOnDelete;
+ hbOnDelete = newHbOnDelete;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ON_DELETE, oldHbOnDelete, hbOnDelete));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Where getHbWhere() {
+ return hbWhere;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbWhere(Where newHbWhere, NotificationChain msgs) {
+ Where oldHbWhere = hbWhere;
+ hbWhere = newHbWhere;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__HB_WHERE, oldHbWhere, newHbWhere);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbWhere(Where newHbWhere) {
+ if (newHbWhere != hbWhere) {
+ NotificationChain msgs = null;
+ if (hbWhere != null)
+ msgs = ((InternalEObject)hbWhere).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_ECLASS__HB_WHERE, null, msgs);
+ if (newHbWhere != null)
+ msgs = ((InternalEObject)newHbWhere).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_ECLASS__HB_WHERE, null, msgs);
+ msgs = basicSetHbWhere(newHbWhere, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__HB_WHERE, newHbWhere, newHbWhere));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Proxy getHbProxy() {
+ if (hbProxy != null && hbProxy.eIsProxy()) {
+ InternalEObject oldHbProxy = (InternalEObject)hbProxy;
+ hbProxy = (Proxy)eResolveProxy(oldHbProxy);
+ if (hbProxy != oldHbProxy) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_ECLASS__HB_PROXY, oldHbProxy, hbProxy));
+ }
+ }
+ return hbProxy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Proxy basicGetHbProxy() {
+ return hbProxy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbProxy(Proxy newHbProxy) {
+ Proxy oldHbProxy = hbProxy;
+ hbProxy = newHbProxy;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__HB_PROXY, oldHbProxy, hbProxy));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<NamedQuery> getHbNamedQuery() {
+ if (hbNamedQuery == null) {
+ hbNamedQuery = new EObjectResolvingEList<NamedQuery>(NamedQuery.class, this, HbmodelPackage.HB_ANNOTATED_ECLASS__HB_NAMED_QUERY);
+ }
+ return hbNamedQuery;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<FilterDef> getFilterDef() {
+ if (filterDef == null) {
+ filterDef = new EObjectResolvingEList<FilterDef>(FilterDef.class, this, HbmodelPackage.HB_ANNOTATED_ECLASS__FILTER_DEF);
+ }
+ return filterDef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Filter> getFilter() {
+ if (filter == null) {
+ filter = new EObjectResolvingEList<Filter>(Filter.class, this, HbmodelPackage.HB_ANNOTATED_ECLASS__FILTER);
+ }
+ return filter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DiscriminatorFormula getDiscriminatorFormula() {
+ return discriminatorFormula;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetDiscriminatorFormula(DiscriminatorFormula newDiscriminatorFormula, NotificationChain msgs) {
+ DiscriminatorFormula oldDiscriminatorFormula = discriminatorFormula;
+ discriminatorFormula = newDiscriminatorFormula;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA, oldDiscriminatorFormula, newDiscriminatorFormula);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDiscriminatorFormula(DiscriminatorFormula newDiscriminatorFormula) {
+ if (newDiscriminatorFormula != discriminatorFormula) {
+ NotificationChain msgs = null;
+ if (discriminatorFormula != null)
+ msgs = ((InternalEObject)discriminatorFormula).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA, null, msgs);
+ if (newDiscriminatorFormula != null)
+ msgs = ((InternalEObject)newDiscriminatorFormula).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA, null, msgs);
+ msgs = basicSetDiscriminatorFormula(newDiscriminatorFormula, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA, newDiscriminatorFormula, newDiscriminatorFormula));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ForceDiscriminator getForceDiscriminator() {
+ return forceDiscriminator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetForceDiscriminator(ForceDiscriminator newForceDiscriminator, NotificationChain msgs) {
+ ForceDiscriminator oldForceDiscriminator = forceDiscriminator;
+ forceDiscriminator = newForceDiscriminator;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR, oldForceDiscriminator, newForceDiscriminator);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setForceDiscriminator(ForceDiscriminator newForceDiscriminator) {
+ if (newForceDiscriminator != forceDiscriminator) {
+ NotificationChain msgs = null;
+ if (forceDiscriminator != null)
+ msgs = ((InternalEObject)forceDiscriminator).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR, null, msgs);
+ if (newForceDiscriminator != null)
+ msgs = ((InternalEObject)newForceDiscriminator).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR, null, msgs);
+ msgs = basicSetForceDiscriminator(newForceDiscriminator, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR, newForceDiscriminator, newForceDiscriminator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Immutable getImmutable() {
+ return immutable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetImmutable(Immutable newImmutable, NotificationChain msgs) {
+ Immutable oldImmutable = immutable;
+ immutable = newImmutable;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__IMMUTABLE, oldImmutable, newImmutable);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImmutable(Immutable newImmutable) {
+ if (newImmutable != immutable) {
+ NotificationChain msgs = null;
+ if (immutable != null)
+ msgs = ((InternalEObject)immutable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_ECLASS__IMMUTABLE, null, msgs);
+ if (newImmutable != null)
+ msgs = ((InternalEObject)newImmutable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_ECLASS__IMMUTABLE, null, msgs);
+ msgs = basicSetImmutable(newImmutable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__IMMUTABLE, newImmutable, newImmutable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbEntity getHbEntity() {
+ if (hbEntity != null && hbEntity.eIsProxy()) {
+ InternalEObject oldHbEntity = (InternalEObject)hbEntity;
+ hbEntity = (HbEntity)eResolveProxy(oldHbEntity);
+ if (hbEntity != oldHbEntity) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ENTITY, oldHbEntity, hbEntity));
+ }
+ }
+ return hbEntity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbEntity basicGetHbEntity() {
+ return hbEntity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbEntity(HbEntity newHbEntity) {
+ HbEntity oldHbEntity = hbEntity;
+ hbEntity = newHbEntity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ENTITY, oldHbEntity, hbEntity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BatchSize getBatchSize() {
+ if (batchSize != null && batchSize.eIsProxy()) {
+ InternalEObject oldBatchSize = (InternalEObject)batchSize;
+ batchSize = (BatchSize)eResolveProxy(oldBatchSize);
+ if (batchSize != oldBatchSize) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_ECLASS__BATCH_SIZE, oldBatchSize, batchSize));
+ }
+ }
+ return batchSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BatchSize basicGetBatchSize() {
+ return batchSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBatchSize(BatchSize newBatchSize) {
+ BatchSize oldBatchSize = batchSize;
+ batchSize = newBatchSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_ECLASS__BATCH_SIZE, oldBatchSize, batchSize));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_CACHE:
+ return basicSetHbCache(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_WHERE:
+ return basicSetHbWhere(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA:
+ return basicSetDiscriminatorFormula(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR:
+ return basicSetForceDiscriminator(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__IMMUTABLE:
+ return basicSetImmutable(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_CACHE:
+ return getHbCache();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ON_DELETE:
+ if (resolve) return getHbOnDelete();
+ return basicGetHbOnDelete();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_WHERE:
+ return getHbWhere();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_PROXY:
+ if (resolve) return getHbProxy();
+ return basicGetHbProxy();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_NAMED_QUERY:
+ return getHbNamedQuery();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FILTER_DEF:
+ return getFilterDef();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FILTER:
+ return getFilter();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA:
+ return getDiscriminatorFormula();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR:
+ return getForceDiscriminator();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__IMMUTABLE:
+ return getImmutable();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ENTITY:
+ if (resolve) return getHbEntity();
+ return basicGetHbEntity();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__BATCH_SIZE:
+ if (resolve) return getBatchSize();
+ return basicGetBatchSize();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_CACHE:
+ setHbCache((Cache)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ON_DELETE:
+ setHbOnDelete((OnDelete)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_WHERE:
+ setHbWhere((Where)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_PROXY:
+ setHbProxy((Proxy)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_NAMED_QUERY:
+ getHbNamedQuery().clear();
+ getHbNamedQuery().addAll((Collection<? extends NamedQuery>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FILTER_DEF:
+ getFilterDef().clear();
+ getFilterDef().addAll((Collection<? extends FilterDef>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FILTER:
+ getFilter().clear();
+ getFilter().addAll((Collection<? extends Filter>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA:
+ setDiscriminatorFormula((DiscriminatorFormula)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR:
+ setForceDiscriminator((ForceDiscriminator)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__IMMUTABLE:
+ setImmutable((Immutable)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ENTITY:
+ setHbEntity((HbEntity)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__BATCH_SIZE:
+ setBatchSize((BatchSize)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_CACHE:
+ setHbCache((Cache)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ON_DELETE:
+ setHbOnDelete((OnDelete)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_WHERE:
+ setHbWhere((Where)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_PROXY:
+ setHbProxy((Proxy)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_NAMED_QUERY:
+ getHbNamedQuery().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FILTER_DEF:
+ getFilterDef().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FILTER:
+ getFilter().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA:
+ setDiscriminatorFormula((DiscriminatorFormula)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR:
+ setForceDiscriminator((ForceDiscriminator)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__IMMUTABLE:
+ setImmutable((Immutable)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ENTITY:
+ setHbEntity((HbEntity)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__BATCH_SIZE:
+ setBatchSize((BatchSize)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_CACHE:
+ return hbCache != null;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ON_DELETE:
+ return hbOnDelete != null;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_WHERE:
+ return hbWhere != null;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_PROXY:
+ return hbProxy != null;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_NAMED_QUERY:
+ return hbNamedQuery != null && !hbNamedQuery.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FILTER_DEF:
+ return filterDef != null && !filterDef.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FILTER:
+ return filter != null && !filter.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA:
+ return discriminatorFormula != null;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR:
+ return forceDiscriminator != null;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__IMMUTABLE:
+ return immutable != null;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__HB_ENTITY:
+ return hbEntity != null;
+ case HbmodelPackage.HB_ANNOTATED_ECLASS__BATCH_SIZE:
+ return batchSize != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // HbAnnotatedEClassImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEDataTypeImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEDataTypeImpl.java
new file mode 100755
index 000000000..dc866dbac
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEDataTypeImpl.java
@@ -0,0 +1,519 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEDataTypeImpl.java,v 1.12 2009/06/11 04:59:20 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.teneo.annotations.pamodel.impl.PAnnotatedEDataTypeImpl;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.annotations.pannotation.ForeignKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Hb Annotated EData Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEDataTypeImpl#getHbTypeDef <em>Hb Type Def</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEDataTypeImpl#getHbWhere <em>Hb Where</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEDataTypeImpl#getHbColumns <em>Hb Columns</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEDataTypeImpl#getHbIdBag <em>Hb Id Bag</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEDataTypeImpl#getHbIndex <em>Hb Index</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEDataTypeImpl#getHbType <em>Hb Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class HbAnnotatedEDataTypeImpl extends PAnnotatedEDataTypeImpl implements HbAnnotatedEDataType {
+
+ private ForeignKey foreignKey = null;
+
+ /**
+ * The cached value of the '{@link #getHbTypeDef() <em>Hb Type Def</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getHbTypeDef()
+ * @generated
+ * @ordered
+ */
+ protected TypeDef hbTypeDef;
+
+ /**
+ * The cached value of the '{@link #getHbWhere() <em>Hb Where</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbWhere()
+ * @generated
+ * @ordered
+ */
+ protected Where hbWhere;
+
+ /**
+ * The cached value of the '{@link #getHbColumns() <em>Hb Columns</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbColumns()
+ * @generated
+ * @ordered
+ */
+ protected EList<Column> hbColumns;
+
+ /**
+ * The cached value of the '{@link #getHbIdBag() <em>Hb Id Bag</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbIdBag()
+ * @generated
+ * @ordered
+ */
+ protected IdBag hbIdBag;
+
+ /**
+ * The cached value of the '{@link #getHbIndex() <em>Hb Index</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbIndex()
+ * @generated
+ * @ordered
+ */
+ protected Index hbIndex;
+
+ /**
+ * The cached value of the '{@link #getHbType() <em>Hb Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbType()
+ * @generated
+ * @ordered
+ */
+ protected Type hbType;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected HbAnnotatedEDataTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbmodelPackage.Literals.HB_ANNOTATED_EDATA_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public EStructuralFeature getAnnotatedEStructuralFeature() {
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public EStructuralFeature basicGetAnnotatedEStructuralFeature() {
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public void setAnnotatedEStructuralFeature(EStructuralFeature newAnnotatedEStructuralFeature) {
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public TypeDef getHbTypeDef() {
+ return hbTypeDef;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbTypeDef(TypeDef newHbTypeDef, NotificationChain msgs) {
+ TypeDef oldHbTypeDef = hbTypeDef;
+ hbTypeDef = newHbTypeDef;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF, oldHbTypeDef, newHbTypeDef);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbTypeDef(TypeDef newHbTypeDef) {
+ if (newHbTypeDef != hbTypeDef) {
+ NotificationChain msgs = null;
+ if (hbTypeDef != null)
+ msgs = ((InternalEObject)hbTypeDef).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF, null, msgs);
+ if (newHbTypeDef != null)
+ msgs = ((InternalEObject)newHbTypeDef).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF, null, msgs);
+ msgs = basicSetHbTypeDef(newHbTypeDef, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF, newHbTypeDef, newHbTypeDef));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Where getHbWhere() {
+ return hbWhere;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbWhere(Where newHbWhere, NotificationChain msgs) {
+ Where oldHbWhere = hbWhere;
+ hbWhere = newHbWhere;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_WHERE, oldHbWhere, newHbWhere);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbWhere(Where newHbWhere) {
+ if (newHbWhere != hbWhere) {
+ NotificationChain msgs = null;
+ if (hbWhere != null)
+ msgs = ((InternalEObject)hbWhere).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_WHERE, null, msgs);
+ if (newHbWhere != null)
+ msgs = ((InternalEObject)newHbWhere).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_WHERE, null, msgs);
+ msgs = basicSetHbWhere(newHbWhere, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_WHERE, newHbWhere, newHbWhere));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Column> getHbColumns() {
+ if (hbColumns == null) {
+ hbColumns = new EObjectContainmentEList<Column>(Column.class, this, HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_COLUMNS);
+ }
+ return hbColumns;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IdBag getHbIdBag() {
+ return hbIdBag;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbIdBag(IdBag newHbIdBag, NotificationChain msgs) {
+ IdBag oldHbIdBag = hbIdBag;
+ hbIdBag = newHbIdBag;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG, oldHbIdBag, newHbIdBag);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbIdBag(IdBag newHbIdBag) {
+ if (newHbIdBag != hbIdBag) {
+ NotificationChain msgs = null;
+ if (hbIdBag != null)
+ msgs = ((InternalEObject)hbIdBag).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG, null, msgs);
+ if (newHbIdBag != null)
+ msgs = ((InternalEObject)newHbIdBag).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG, null, msgs);
+ msgs = basicSetHbIdBag(newHbIdBag, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG, newHbIdBag, newHbIdBag));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Index getHbIndex() {
+ if (hbIndex != null && hbIndex.eIsProxy()) {
+ InternalEObject oldHbIndex = (InternalEObject)hbIndex;
+ hbIndex = (Index)eResolveProxy(oldHbIndex);
+ if (hbIndex != oldHbIndex) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_INDEX, oldHbIndex, hbIndex));
+ }
+ }
+ return hbIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Index basicGetHbIndex() {
+ return hbIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbIndex(Index newHbIndex) {
+ Index oldHbIndex = hbIndex;
+ hbIndex = newHbIndex;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_INDEX, oldHbIndex, hbIndex));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getHbType() {
+ return hbType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbType(Type newHbType, NotificationChain msgs) {
+ Type oldHbType = hbType;
+ hbType = newHbType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE, oldHbType, newHbType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbType(Type newHbType) {
+ if (newHbType != hbType) {
+ NotificationChain msgs = null;
+ if (hbType != null)
+ msgs = ((InternalEObject)hbType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE, null, msgs);
+ if (newHbType != null)
+ msgs = ((InternalEObject)newHbType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE, null, msgs);
+ msgs = basicSetHbType(newHbType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE, newHbType, newHbType));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF:
+ return basicSetHbTypeDef(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_WHERE:
+ return basicSetHbWhere(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_COLUMNS:
+ return ((InternalEList<?>)getHbColumns()).basicRemove(otherEnd, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG:
+ return basicSetHbIdBag(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE:
+ return basicSetHbType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF:
+ return getHbTypeDef();
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_WHERE:
+ return getHbWhere();
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_COLUMNS:
+ return getHbColumns();
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG:
+ return getHbIdBag();
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_INDEX:
+ if (resolve) return getHbIndex();
+ return basicGetHbIndex();
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE:
+ return getHbType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF:
+ setHbTypeDef((TypeDef)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_WHERE:
+ setHbWhere((Where)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_COLUMNS:
+ getHbColumns().clear();
+ getHbColumns().addAll((Collection<? extends Column>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG:
+ setHbIdBag((IdBag)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_INDEX:
+ setHbIndex((Index)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE:
+ setHbType((Type)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF:
+ setHbTypeDef((TypeDef)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_WHERE:
+ setHbWhere((Where)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_COLUMNS:
+ getHbColumns().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG:
+ setHbIdBag((IdBag)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_INDEX:
+ setHbIndex((Index)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE:
+ setHbType((Type)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF:
+ return hbTypeDef != null;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_WHERE:
+ return hbWhere != null;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_COLUMNS:
+ return hbColumns != null && !hbColumns.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG:
+ return hbIdBag != null;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_INDEX:
+ return hbIndex != null;
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE__HB_TYPE:
+ return hbType != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature#getForeignKey()
+ */
+ public ForeignKey getForeignKey() {
+ return foreignKey;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature#setForeignKey(org.eclipse.emf.teneo.annotations.pannotation.ForeignKey)
+ */
+ public void setForeignKey(ForeignKey value) {
+ foreignKey = value;
+ }
+
+} // HbAnnotatedEDataTypeImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEPackageImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEPackageImpl.java
new file mode 100755
index 000000000..1ec70de22
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEPackageImpl.java
@@ -0,0 +1,283 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEPackageImpl.java,v 1.10 2009/06/28 02:05:07 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.teneo.annotations.pamodel.impl.PAnnotatedEPackageImpl;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Hb Annotated EPackage</b></em>'. <!--
+ * end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEPackageImpl#getHbGenericGenerators <em>Hb Generic Generators</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEPackageImpl#getHbTypeDef <em>Hb Type Def</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEPackageImpl#getHbNamedQuery <em>Hb Named Query</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEPackageImpl#getFilterDef <em>Filter Def</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEPackageImpl#getAnyMetaDef <em>Any Meta Def</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class HbAnnotatedEPackageImpl extends PAnnotatedEPackageImpl implements HbAnnotatedEPackage {
+ /**
+ * The cached value of the '{@link #getHbGenericGenerators() <em>Hb Generic Generators</em>}' containment reference list.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getHbGenericGenerators()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenericGenerator> hbGenericGenerators;
+
+ /**
+ * The cached value of the '{@link #getHbTypeDef() <em>Hb Type Def</em>}' containment reference list. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getHbTypeDef()
+ * @generated
+ * @ordered
+ */
+ protected EList<TypeDef> hbTypeDef;
+
+ /**
+ * The cached value of the '{@link #getHbNamedQuery() <em>Hb Named Query</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbNamedQuery()
+ * @generated
+ * @ordered
+ */
+ protected EList<NamedQuery> hbNamedQuery;
+
+ /**
+ * The cached value of the '{@link #getFilterDef() <em>Filter Def</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFilterDef()
+ * @generated
+ * @ordered
+ */
+ protected EList<FilterDef> filterDef;
+
+ /**
+ * The cached value of the '{@link #getAnyMetaDef() <em>Any Meta Def</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAnyMetaDef()
+ * @generated
+ * @ordered
+ */
+ protected EList<AnyMetaDef> anyMetaDef;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected HbAnnotatedEPackageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbmodelPackage.Literals.HB_ANNOTATED_EPACKAGE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenericGenerator> getHbGenericGenerators() {
+ if (hbGenericGenerators == null) {
+ hbGenericGenerators = new EObjectContainmentEList<GenericGenerator>(GenericGenerator.class, this, HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_GENERIC_GENERATORS);
+ }
+ return hbGenericGenerators;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<TypeDef> getHbTypeDef() {
+ if (hbTypeDef == null) {
+ hbTypeDef = new EObjectContainmentEList<TypeDef>(TypeDef.class, this, HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_TYPE_DEF);
+ }
+ return hbTypeDef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<NamedQuery> getHbNamedQuery() {
+ if (hbNamedQuery == null) {
+ hbNamedQuery = new EObjectResolvingEList<NamedQuery>(NamedQuery.class, this, HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_NAMED_QUERY);
+ }
+ return hbNamedQuery;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<FilterDef> getFilterDef() {
+ if (filterDef == null) {
+ filterDef = new EObjectResolvingEList<FilterDef>(FilterDef.class, this, HbmodelPackage.HB_ANNOTATED_EPACKAGE__FILTER_DEF);
+ }
+ return filterDef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AnyMetaDef> getAnyMetaDef() {
+ if (anyMetaDef == null) {
+ anyMetaDef = new EObjectResolvingEList<AnyMetaDef>(AnyMetaDef.class, this, HbmodelPackage.HB_ANNOTATED_EPACKAGE__ANY_META_DEF);
+ }
+ return anyMetaDef;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_GENERIC_GENERATORS:
+ return ((InternalEList<?>)getHbGenericGenerators()).basicRemove(otherEnd, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_TYPE_DEF:
+ return ((InternalEList<?>)getHbTypeDef()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_GENERIC_GENERATORS:
+ return getHbGenericGenerators();
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_TYPE_DEF:
+ return getHbTypeDef();
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_NAMED_QUERY:
+ return getHbNamedQuery();
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__FILTER_DEF:
+ return getFilterDef();
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__ANY_META_DEF:
+ return getAnyMetaDef();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_GENERIC_GENERATORS:
+ getHbGenericGenerators().clear();
+ getHbGenericGenerators().addAll((Collection<? extends GenericGenerator>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_TYPE_DEF:
+ getHbTypeDef().clear();
+ getHbTypeDef().addAll((Collection<? extends TypeDef>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_NAMED_QUERY:
+ getHbNamedQuery().clear();
+ getHbNamedQuery().addAll((Collection<? extends NamedQuery>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__FILTER_DEF:
+ getFilterDef().clear();
+ getFilterDef().addAll((Collection<? extends FilterDef>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__ANY_META_DEF:
+ getAnyMetaDef().clear();
+ getAnyMetaDef().addAll((Collection<? extends AnyMetaDef>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_GENERIC_GENERATORS:
+ getHbGenericGenerators().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_TYPE_DEF:
+ getHbTypeDef().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_NAMED_QUERY:
+ getHbNamedQuery().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__FILTER_DEF:
+ getFilterDef().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__ANY_META_DEF:
+ getAnyMetaDef().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_GENERIC_GENERATORS:
+ return hbGenericGenerators != null && !hbGenericGenerators.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_TYPE_DEF:
+ return hbTypeDef != null && !hbTypeDef.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__HB_NAMED_QUERY:
+ return hbNamedQuery != null && !hbNamedQuery.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__FILTER_DEF:
+ return filterDef != null && !filterDef.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE__ANY_META_DEF:
+ return anyMetaDef != null && !anyMetaDef.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // HbAnnotatedEPackageImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEReferenceImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEReferenceImpl.java
new file mode 100755
index 000000000..182406c3f
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbAnnotatedEReferenceImpl.java
@@ -0,0 +1,1387 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEReferenceImpl.java,v 1.18 2010/02/04 11:03:44 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.teneo.annotations.pamodel.impl.PAnnotatedEReferenceImpl;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Any;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.BatchSize;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Fetch;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Formula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Immutable;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NaturalId;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NotFound;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Hb Annotated EReference</b></em>'. <!--
+ * end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getHbWhere <em>Hb Where</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getHbCollectionOfElements <em>Hb Collection Of Elements</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getHbMapKey <em>Hb Map Key</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getHbColumns <em>Hb Columns</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getHbCascade <em>Hb Cascade</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getHbIdBag <em>Hb Id Bag</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getHbIndex <em>Hb Index</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getFilter <em>Filter</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getMapKeyManyToMany <em>Map Key Many To Many</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getFormula <em>Formula</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getHbCache <em>Hb Cache</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getHbFetch <em>Hb Fetch</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getHbOnDelete <em>Hb On Delete</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getNaturalId <em>Natural Id</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getImmutable <em>Immutable</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getNotFound <em>Not Found</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getHbType <em>Hb Type</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getBatchSize <em>Batch Size</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getAny <em>Any</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.hibernate.hbmodel.impl.HbAnnotatedEReferenceImpl#getAnyMetaDef <em>Any Meta Def</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class HbAnnotatedEReferenceImpl extends PAnnotatedEReferenceImpl implements HbAnnotatedEReference {
+ /**
+ * The cached value of the '{@link #getHbWhere() <em>Hb Where</em>}' containment reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @see #getHbWhere()
+ * @generated
+ * @ordered
+ */
+ protected Where hbWhere;
+
+ /**
+ * The cached value of the '{@link #getHbCollectionOfElements() <em>Hb Collection Of Elements</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getHbCollectionOfElements()
+ * @generated
+ * @ordered
+ */
+ protected CollectionOfElements hbCollectionOfElements;
+
+ /**
+ * The cached value of the '{@link #getHbMapKey() <em>Hb Map Key</em>}' containment reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @see #getHbMapKey()
+ * @generated
+ * @ordered
+ */
+ protected HbMapKey hbMapKey;
+
+ /**
+ * The cached value of the '{@link #getHbColumns() <em>Hb Columns</em>}' containment reference list. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getHbColumns()
+ * @generated
+ * @ordered
+ */
+ protected EList<Column> hbColumns;
+
+ /**
+ * The cached value of the '{@link #getHbCascade() <em>Hb Cascade</em>}' containment reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getHbCascade()
+ * @generated
+ * @ordered
+ */
+ protected Cascade hbCascade;
+
+ /**
+ * The cached value of the '{@link #getHbIdBag() <em>Hb Id Bag</em>}' containment reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @see #getHbIdBag()
+ * @generated
+ * @ordered
+ */
+ protected IdBag hbIdBag;
+
+ /**
+ * The cached value of the '{@link #getHbIndex() <em>Hb Index</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbIndex()
+ * @generated
+ * @ordered
+ */
+ protected Index hbIndex;
+
+ /**
+ * The cached value of the '{@link #getFilter() <em>Filter</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFilter()
+ * @generated
+ * @ordered
+ */
+ protected EList<Filter> filter;
+
+ /**
+ * The cached value of the '{@link #getMapKeyManyToMany() <em>Map Key Many To Many</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMapKeyManyToMany()
+ * @generated
+ * @ordered
+ */
+ protected MapKeyManyToMany mapKeyManyToMany;
+
+ /**
+ * The cached value of the '{@link #getFormula() <em>Formula</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFormula()
+ * @generated
+ * @ordered
+ */
+ protected Formula formula;
+
+ /**
+ * The cached value of the '{@link #getHbCache() <em>Hb Cache</em>}' containment reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @see #getHbCache()
+ * @generated
+ * @ordered
+ */
+ protected Cache hbCache;
+
+ /**
+ * The cached value of the '{@link #getHbFetch() <em>Hb Fetch</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbFetch()
+ * @generated
+ * @ordered
+ */
+ protected Fetch hbFetch;
+
+ /**
+ * The cached value of the '{@link #getHbOnDelete() <em>Hb On Delete</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbOnDelete()
+ * @generated
+ * @ordered
+ */
+ protected OnDelete hbOnDelete;
+
+ /**
+ * The cached value of the '{@link #getNaturalId() <em>Natural Id</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNaturalId()
+ * @generated
+ * @ordered
+ */
+ protected NaturalId naturalId;
+
+ /**
+ * The cached value of the '{@link #getImmutable() <em>Immutable</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImmutable()
+ * @generated
+ * @ordered
+ */
+ protected Immutable immutable;
+
+ /**
+ * The cached value of the '{@link #getNotFound() <em>Not Found</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNotFound()
+ * @generated
+ * @ordered
+ */
+ protected NotFound notFound;
+
+ /**
+ * The cached value of the '{@link #getHbType() <em>Hb Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHbType()
+ * @generated
+ * @ordered
+ */
+ protected Type hbType;
+
+ /**
+ * The cached value of the '{@link #getBatchSize() <em>Batch Size</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBatchSize()
+ * @generated
+ * @ordered
+ */
+ protected BatchSize batchSize;
+
+ /**
+ * The cached value of the '{@link #getAny() <em>Any</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAny()
+ * @generated
+ * @ordered
+ */
+ protected Any any;
+
+ /**
+ * The cached value of the '{@link #getAnyMetaDef() <em>Any Meta Def</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAnyMetaDef()
+ * @generated
+ * @ordered
+ */
+ protected AnyMetaDef anyMetaDef;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected HbAnnotatedEReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return HbmodelPackage.Literals.HB_ANNOTATED_EREFERENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Where getHbWhere() {
+ return hbWhere;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbWhere(Where newHbWhere, NotificationChain msgs) {
+ Where oldHbWhere = hbWhere;
+ hbWhere = newHbWhere;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_WHERE, oldHbWhere, newHbWhere);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbWhere(Where newHbWhere) {
+ if (newHbWhere != hbWhere) {
+ NotificationChain msgs = null;
+ if (hbWhere != null)
+ msgs = ((InternalEObject)hbWhere).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_WHERE, null, msgs);
+ if (newHbWhere != null)
+ msgs = ((InternalEObject)newHbWhere).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_WHERE, null, msgs);
+ msgs = basicSetHbWhere(newHbWhere, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_WHERE, newHbWhere, newHbWhere));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public CollectionOfElements getHbCollectionOfElements() {
+ return hbCollectionOfElements;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbCollectionOfElements(CollectionOfElements newHbCollectionOfElements, NotificationChain msgs) {
+ CollectionOfElements oldHbCollectionOfElements = hbCollectionOfElements;
+ hbCollectionOfElements = newHbCollectionOfElements;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS, oldHbCollectionOfElements, newHbCollectionOfElements);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbCollectionOfElements(CollectionOfElements newHbCollectionOfElements) {
+ if (newHbCollectionOfElements != hbCollectionOfElements) {
+ NotificationChain msgs = null;
+ if (hbCollectionOfElements != null)
+ msgs = ((InternalEObject)hbCollectionOfElements).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS, null, msgs);
+ if (newHbCollectionOfElements != null)
+ msgs = ((InternalEObject)newHbCollectionOfElements).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS, null, msgs);
+ msgs = basicSetHbCollectionOfElements(newHbCollectionOfElements, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS, newHbCollectionOfElements, newHbCollectionOfElements));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HbMapKey getHbMapKey() {
+ return hbMapKey;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbMapKey(HbMapKey newHbMapKey, NotificationChain msgs) {
+ HbMapKey oldHbMapKey = hbMapKey;
+ hbMapKey = newHbMapKey;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_MAP_KEY, oldHbMapKey, newHbMapKey);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbMapKey(HbMapKey newHbMapKey) {
+ if (newHbMapKey != hbMapKey) {
+ NotificationChain msgs = null;
+ if (hbMapKey != null)
+ msgs = ((InternalEObject)hbMapKey).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_MAP_KEY, null, msgs);
+ if (newHbMapKey != null)
+ msgs = ((InternalEObject)newHbMapKey).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_MAP_KEY, null, msgs);
+ msgs = basicSetHbMapKey(newHbMapKey, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_MAP_KEY, newHbMapKey, newHbMapKey));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Column> getHbColumns() {
+ if (hbColumns == null) {
+ hbColumns = new EObjectContainmentEList<Column>(Column.class, this, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLUMNS);
+ }
+ return hbColumns;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Cascade getHbCascade() {
+ return hbCascade;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbCascade(Cascade newHbCascade, NotificationChain msgs) {
+ Cascade oldHbCascade = hbCascade;
+ hbCascade = newHbCascade;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CASCADE, oldHbCascade, newHbCascade);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbCascade(Cascade newHbCascade) {
+ if (newHbCascade != hbCascade) {
+ NotificationChain msgs = null;
+ if (hbCascade != null)
+ msgs = ((InternalEObject)hbCascade).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CASCADE, null, msgs);
+ if (newHbCascade != null)
+ msgs = ((InternalEObject)newHbCascade).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CASCADE, null, msgs);
+ msgs = basicSetHbCascade(newHbCascade, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CASCADE, newHbCascade, newHbCascade));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IdBag getHbIdBag() {
+ return hbIdBag;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbIdBag(IdBag newHbIdBag, NotificationChain msgs) {
+ IdBag oldHbIdBag = hbIdBag;
+ hbIdBag = newHbIdBag;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ID_BAG, oldHbIdBag, newHbIdBag);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbIdBag(IdBag newHbIdBag) {
+ if (newHbIdBag != hbIdBag) {
+ NotificationChain msgs = null;
+ if (hbIdBag != null)
+ msgs = ((InternalEObject)hbIdBag).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ID_BAG, null, msgs);
+ if (newHbIdBag != null)
+ msgs = ((InternalEObject)newHbIdBag).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ID_BAG, null, msgs);
+ msgs = basicSetHbIdBag(newHbIdBag, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ID_BAG, newHbIdBag, newHbIdBag));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Index getHbIndex() {
+ if (hbIndex != null && hbIndex.eIsProxy()) {
+ InternalEObject oldHbIndex = (InternalEObject)hbIndex;
+ hbIndex = (Index)eResolveProxy(oldHbIndex);
+ if (hbIndex != oldHbIndex) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_INDEX, oldHbIndex, hbIndex));
+ }
+ }
+ return hbIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Index basicGetHbIndex() {
+ return hbIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbIndex(Index newHbIndex) {
+ Index oldHbIndex = hbIndex;
+ hbIndex = newHbIndex;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_INDEX, oldHbIndex, hbIndex));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Filter> getFilter() {
+ if (filter == null) {
+ filter = new EObjectResolvingEList<Filter>(Filter.class, this, HbmodelPackage.HB_ANNOTATED_EREFERENCE__FILTER);
+ }
+ return filter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MapKeyManyToMany getMapKeyManyToMany() {
+ return mapKeyManyToMany;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMapKeyManyToMany(MapKeyManyToMany newMapKeyManyToMany, NotificationChain msgs) {
+ MapKeyManyToMany oldMapKeyManyToMany = mapKeyManyToMany;
+ mapKeyManyToMany = newMapKeyManyToMany;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY, oldMapKeyManyToMany, newMapKeyManyToMany);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMapKeyManyToMany(MapKeyManyToMany newMapKeyManyToMany) {
+ if (newMapKeyManyToMany != mapKeyManyToMany) {
+ NotificationChain msgs = null;
+ if (mapKeyManyToMany != null)
+ msgs = ((InternalEObject)mapKeyManyToMany).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY, null, msgs);
+ if (newMapKeyManyToMany != null)
+ msgs = ((InternalEObject)newMapKeyManyToMany).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY, null, msgs);
+ msgs = basicSetMapKeyManyToMany(newMapKeyManyToMany, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY, newMapKeyManyToMany, newMapKeyManyToMany));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Formula getFormula() {
+ if (formula != null && formula.eIsProxy()) {
+ InternalEObject oldFormula = (InternalEObject)formula;
+ formula = (Formula)eResolveProxy(oldFormula);
+ if (formula != oldFormula) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EREFERENCE__FORMULA, oldFormula, formula));
+ }
+ }
+ return formula;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Formula basicGetFormula() {
+ return formula;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFormula(Formula newFormula) {
+ Formula oldFormula = formula;
+ formula = newFormula;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__FORMULA, oldFormula, formula));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Cache getHbCache() {
+ return hbCache;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbCache(Cache newHbCache, NotificationChain msgs) {
+ Cache oldHbCache = hbCache;
+ hbCache = newHbCache;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CACHE, oldHbCache, newHbCache);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbCache(Cache newHbCache) {
+ if (newHbCache != hbCache) {
+ NotificationChain msgs = null;
+ if (hbCache != null)
+ msgs = ((InternalEObject)hbCache).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CACHE, null, msgs);
+ if (newHbCache != null)
+ msgs = ((InternalEObject)newHbCache).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CACHE, null, msgs);
+ msgs = basicSetHbCache(newHbCache, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CACHE, newHbCache, newHbCache));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Fetch getHbFetch() {
+ if (hbFetch != null && hbFetch.eIsProxy()) {
+ InternalEObject oldHbFetch = (InternalEObject)hbFetch;
+ hbFetch = (Fetch)eResolveProxy(oldHbFetch);
+ if (hbFetch != oldHbFetch) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_FETCH, oldHbFetch, hbFetch));
+ }
+ }
+ return hbFetch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Fetch basicGetHbFetch() {
+ return hbFetch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbFetch(Fetch newHbFetch) {
+ Fetch oldHbFetch = hbFetch;
+ hbFetch = newHbFetch;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_FETCH, oldHbFetch, hbFetch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OnDelete getHbOnDelete() {
+ if (hbOnDelete != null && hbOnDelete.eIsProxy()) {
+ InternalEObject oldHbOnDelete = (InternalEObject)hbOnDelete;
+ hbOnDelete = (OnDelete)eResolveProxy(oldHbOnDelete);
+ if (hbOnDelete != oldHbOnDelete) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ON_DELETE, oldHbOnDelete, hbOnDelete));
+ }
+ }
+ return hbOnDelete;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OnDelete basicGetHbOnDelete() {
+ return hbOnDelete;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbOnDelete(OnDelete newHbOnDelete) {
+ OnDelete oldHbOnDelete = hbOnDelete;
+ hbOnDelete = newHbOnDelete;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ON_DELETE, oldHbOnDelete, hbOnDelete));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NaturalId getNaturalId() {
+ return naturalId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetNaturalId(NaturalId newNaturalId, NotificationChain msgs) {
+ NaturalId oldNaturalId = naturalId;
+ naturalId = newNaturalId;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__NATURAL_ID, oldNaturalId, newNaturalId);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNaturalId(NaturalId newNaturalId) {
+ if (newNaturalId != naturalId) {
+ NotificationChain msgs = null;
+ if (naturalId != null)
+ msgs = ((InternalEObject)naturalId).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__NATURAL_ID, null, msgs);
+ if (newNaturalId != null)
+ msgs = ((InternalEObject)newNaturalId).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__NATURAL_ID, null, msgs);
+ msgs = basicSetNaturalId(newNaturalId, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__NATURAL_ID, newNaturalId, newNaturalId));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Immutable getImmutable() {
+ return immutable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetImmutable(Immutable newImmutable, NotificationChain msgs) {
+ Immutable oldImmutable = immutable;
+ immutable = newImmutable;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__IMMUTABLE, oldImmutable, newImmutable);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImmutable(Immutable newImmutable) {
+ if (newImmutable != immutable) {
+ NotificationChain msgs = null;
+ if (immutable != null)
+ msgs = ((InternalEObject)immutable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__IMMUTABLE, null, msgs);
+ if (newImmutable != null)
+ msgs = ((InternalEObject)newImmutable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__IMMUTABLE, null, msgs);
+ msgs = basicSetImmutable(newImmutable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__IMMUTABLE, newImmutable, newImmutable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotFound getNotFound() {
+ return notFound;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetNotFound(NotFound newNotFound, NotificationChain msgs) {
+ NotFound oldNotFound = notFound;
+ notFound = newNotFound;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__NOT_FOUND, oldNotFound, newNotFound);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNotFound(NotFound newNotFound) {
+ if (newNotFound != notFound) {
+ NotificationChain msgs = null;
+ if (notFound != null)
+ msgs = ((InternalEObject)notFound).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__NOT_FOUND, null, msgs);
+ if (newNotFound != null)
+ msgs = ((InternalEObject)newNotFound).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__NOT_FOUND, null, msgs);
+ msgs = basicSetNotFound(newNotFound, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__NOT_FOUND, newNotFound, newNotFound));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getHbType() {
+ return hbType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHbType(Type newHbType, NotificationChain msgs) {
+ Type oldHbType = hbType;
+ hbType = newHbType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_TYPE, oldHbType, newHbType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHbType(Type newHbType) {
+ if (newHbType != hbType) {
+ NotificationChain msgs = null;
+ if (hbType != null)
+ msgs = ((InternalEObject)hbType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_TYPE, null, msgs);
+ if (newHbType != null)
+ msgs = ((InternalEObject)newHbType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_TYPE, null, msgs);
+ msgs = basicSetHbType(newHbType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_TYPE, newHbType, newHbType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BatchSize getBatchSize() {
+ if (batchSize != null && batchSize.eIsProxy()) {
+ InternalEObject oldBatchSize = (InternalEObject)batchSize;
+ batchSize = (BatchSize)eResolveProxy(oldBatchSize);
+ if (batchSize != oldBatchSize) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EREFERENCE__BATCH_SIZE, oldBatchSize, batchSize));
+ }
+ }
+ return batchSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BatchSize basicGetBatchSize() {
+ return batchSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBatchSize(BatchSize newBatchSize) {
+ BatchSize oldBatchSize = batchSize;
+ batchSize = newBatchSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__BATCH_SIZE, oldBatchSize, batchSize));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Any getAny() {
+ if (any != null && any.eIsProxy()) {
+ InternalEObject oldAny = (InternalEObject)any;
+ any = (Any)eResolveProxy(oldAny);
+ if (any != oldAny) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY, oldAny, any));
+ }
+ }
+ return any;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Any basicGetAny() {
+ return any;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAny(Any newAny) {
+ Any oldAny = any;
+ any = newAny;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY, oldAny, any));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnyMetaDef getAnyMetaDef() {
+ if (anyMetaDef != null && anyMetaDef.eIsProxy()) {
+ InternalEObject oldAnyMetaDef = (InternalEObject)anyMetaDef;
+ anyMetaDef = (AnyMetaDef)eResolveProxy(oldAnyMetaDef);
+ if (anyMetaDef != oldAnyMetaDef) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY_META_DEF, oldAnyMetaDef, anyMetaDef));
+ }
+ }
+ return anyMetaDef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnyMetaDef basicGetAnyMetaDef() {
+ return anyMetaDef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAnyMetaDef(AnyMetaDef newAnyMetaDef) {
+ AnyMetaDef oldAnyMetaDef = anyMetaDef;
+ anyMetaDef = newAnyMetaDef;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY_META_DEF, oldAnyMetaDef, anyMetaDef));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_WHERE:
+ return basicSetHbWhere(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS:
+ return basicSetHbCollectionOfElements(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_MAP_KEY:
+ return basicSetHbMapKey(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLUMNS:
+ return ((InternalEList<?>)getHbColumns()).basicRemove(otherEnd, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CASCADE:
+ return basicSetHbCascade(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ID_BAG:
+ return basicSetHbIdBag(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY:
+ return basicSetMapKeyManyToMany(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CACHE:
+ return basicSetHbCache(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__NATURAL_ID:
+ return basicSetNaturalId(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__IMMUTABLE:
+ return basicSetImmutable(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__NOT_FOUND:
+ return basicSetNotFound(null, msgs);
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_TYPE:
+ return basicSetHbType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_WHERE:
+ return getHbWhere();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS:
+ return getHbCollectionOfElements();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_MAP_KEY:
+ return getHbMapKey();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLUMNS:
+ return getHbColumns();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CASCADE:
+ return getHbCascade();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ID_BAG:
+ return getHbIdBag();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_INDEX:
+ if (resolve) return getHbIndex();
+ return basicGetHbIndex();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__FILTER:
+ return getFilter();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY:
+ return getMapKeyManyToMany();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__FORMULA:
+ if (resolve) return getFormula();
+ return basicGetFormula();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CACHE:
+ return getHbCache();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_FETCH:
+ if (resolve) return getHbFetch();
+ return basicGetHbFetch();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ON_DELETE:
+ if (resolve) return getHbOnDelete();
+ return basicGetHbOnDelete();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__NATURAL_ID:
+ return getNaturalId();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__IMMUTABLE:
+ return getImmutable();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__NOT_FOUND:
+ return getNotFound();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_TYPE:
+ return getHbType();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__BATCH_SIZE:
+ if (resolve) return getBatchSize();
+ return basicGetBatchSize();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY:
+ if (resolve) return getAny();
+ return basicGetAny();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY_META_DEF:
+ if (resolve) return getAnyMetaDef();
+ return basicGetAnyMetaDef();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_WHERE:
+ setHbWhere((Where)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS:
+ setHbCollectionOfElements((CollectionOfElements)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_MAP_KEY:
+ setHbMapKey((HbMapKey)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLUMNS:
+ getHbColumns().clear();
+ getHbColumns().addAll((Collection<? extends Column>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CASCADE:
+ setHbCascade((Cascade)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ID_BAG:
+ setHbIdBag((IdBag)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_INDEX:
+ setHbIndex((Index)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__FILTER:
+ getFilter().clear();
+ getFilter().addAll((Collection<? extends Filter>)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY:
+ setMapKeyManyToMany((MapKeyManyToMany)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__FORMULA:
+ setFormula((Formula)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CACHE:
+ setHbCache((Cache)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_FETCH:
+ setHbFetch((Fetch)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ON_DELETE:
+ setHbOnDelete((OnDelete)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__NATURAL_ID:
+ setNaturalId((NaturalId)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__IMMUTABLE:
+ setImmutable((Immutable)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__NOT_FOUND:
+ setNotFound((NotFound)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_TYPE:
+ setHbType((Type)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__BATCH_SIZE:
+ setBatchSize((BatchSize)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY:
+ setAny((Any)newValue);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY_META_DEF:
+ setAnyMetaDef((AnyMetaDef)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_WHERE:
+ setHbWhere((Where)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS:
+ setHbCollectionOfElements((CollectionOfElements)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_MAP_KEY:
+ setHbMapKey((HbMapKey)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLUMNS:
+ getHbColumns().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CASCADE:
+ setHbCascade((Cascade)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ID_BAG:
+ setHbIdBag((IdBag)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_INDEX:
+ setHbIndex((Index)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__FILTER:
+ getFilter().clear();
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY:
+ setMapKeyManyToMany((MapKeyManyToMany)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__FORMULA:
+ setFormula((Formula)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CACHE:
+ setHbCache((Cache)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_FETCH:
+ setHbFetch((Fetch)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ON_DELETE:
+ setHbOnDelete((OnDelete)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__NATURAL_ID:
+ setNaturalId((NaturalId)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__IMMUTABLE:
+ setImmutable((Immutable)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__NOT_FOUND:
+ setNotFound((NotFound)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_TYPE:
+ setHbType((Type)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__BATCH_SIZE:
+ setBatchSize((BatchSize)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY:
+ setAny((Any)null);
+ return;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY_META_DEF:
+ setAnyMetaDef((AnyMetaDef)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_WHERE:
+ return hbWhere != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS:
+ return hbCollectionOfElements != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_MAP_KEY:
+ return hbMapKey != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLUMNS:
+ return hbColumns != null && !hbColumns.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CASCADE:
+ return hbCascade != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ID_BAG:
+ return hbIdBag != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_INDEX:
+ return hbIndex != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__FILTER:
+ return filter != null && !filter.isEmpty();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY:
+ return mapKeyManyToMany != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__FORMULA:
+ return formula != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CACHE:
+ return hbCache != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_FETCH:
+ return hbFetch != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ON_DELETE:
+ return hbOnDelete != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__NATURAL_ID:
+ return naturalId != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__IMMUTABLE:
+ return immutable != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__NOT_FOUND:
+ return notFound != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_TYPE:
+ return hbType != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__BATCH_SIZE:
+ return batchSize != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY:
+ return any != null;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__ANY_META_DEF:
+ return anyMetaDef != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == HbAnnotatedEModelElement.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == HbAnnotatedETypeElement.class) {
+ switch (derivedFeatureID) {
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_WHERE: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_WHERE;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_COLLECTION_OF_ELEMENTS;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_MAP_KEY: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_MAP_KEY;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLUMNS: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_COLUMNS;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CASCADE: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_CASCADE;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ID_BAG: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_ID_BAG;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_INDEX: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_INDEX;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__FILTER: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__FILTER;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__MAP_KEY_MANY_TO_MANY;
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE__FORMULA: return HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__FORMULA;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == HbAnnotatedEModelElement.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == HbAnnotatedETypeElement.class) {
+ switch (baseFeatureID) {
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_WHERE: return HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_WHERE;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_COLLECTION_OF_ELEMENTS: return HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLLECTION_OF_ELEMENTS;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_MAP_KEY: return HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_MAP_KEY;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_COLUMNS: return HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_COLUMNS;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_CASCADE: return HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_CASCADE;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_ID_BAG: return HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_ID_BAG;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__HB_INDEX: return HbmodelPackage.HB_ANNOTATED_EREFERENCE__HB_INDEX;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__FILTER: return HbmodelPackage.HB_ANNOTATED_EREFERENCE__FILTER;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__MAP_KEY_MANY_TO_MANY: return HbmodelPackage.HB_ANNOTATED_EREFERENCE__MAP_KEY_MANY_TO_MANY;
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT__FORMULA: return HbmodelPackage.HB_ANNOTATED_EREFERENCE__FORMULA;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+} // HbAnnotatedEReferenceImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbmodelFactoryImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbmodelFactoryImpl.java
new file mode 100755
index 000000000..57d286a71
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbmodelFactoryImpl.java
@@ -0,0 +1,146 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbmodelFactoryImpl.java,v 1.7 2010/02/04 11:03:44 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelFactory;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class HbmodelFactoryImpl extends EFactoryImpl implements HbmodelFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HbmodelFactory init() {
+ try {
+ HbmodelFactory theHbmodelFactory = (HbmodelFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/teneo/2006/HbModel");
+ if (theHbmodelFactory != null) {
+ return theHbmodelFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new HbmodelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbmodelFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE: return createHbAnnotatedEAttribute();
+ case HbmodelPackage.HB_ANNOTATED_ECLASS: return createHbAnnotatedEClass();
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE: return createHbAnnotatedEPackage();
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE: return createHbAnnotatedEReference();
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE: return createHbAnnotatedEDataType();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbAnnotatedEAttribute createHbAnnotatedEAttribute() {
+ HbAnnotatedEAttributeImpl hbAnnotatedEAttribute = new HbAnnotatedEAttributeImpl();
+ return hbAnnotatedEAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbAnnotatedEClass createHbAnnotatedEClass() {
+ HbAnnotatedEClassImpl hbAnnotatedEClass = new HbAnnotatedEClassImpl();
+ return hbAnnotatedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbAnnotatedEPackage createHbAnnotatedEPackage() {
+ HbAnnotatedEPackageImpl hbAnnotatedEPackage = new HbAnnotatedEPackageImpl();
+ return hbAnnotatedEPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbAnnotatedEReference createHbAnnotatedEReference() {
+ HbAnnotatedEReferenceImpl hbAnnotatedEReference = new HbAnnotatedEReferenceImpl();
+ return hbAnnotatedEReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbAnnotatedEDataType createHbAnnotatedEDataType() {
+ HbAnnotatedEDataTypeImpl hbAnnotatedEDataType = new HbAnnotatedEDataTypeImpl();
+ return hbAnnotatedEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbmodelPackage getHbmodelPackage() {
+ return (HbmodelPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static HbmodelPackage getPackage() {
+ return HbmodelPackage.eINSTANCE;
+ }
+
+} //HbmodelFactoryImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbmodelPackageImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbmodelPackageImpl.java
new file mode 100755
index 000000000..48f4adf5b
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/impl/HbmodelPackageImpl.java
@@ -0,0 +1,884 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbmodelPackageImpl.java,v 1.17 2010/02/04 11:03:44 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.teneo.annotations.pamodel.PamodelPackage;
+import org.eclipse.emf.teneo.annotations.pannotation.PannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationPackage;
+import org.eclipse.emf.teneo.hibernate.hbannotation.impl.HbannotationPackageImpl;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelFactory;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class HbmodelPackageImpl extends EPackageImpl implements HbmodelPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hbAnnotatedETypeElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hbAnnotatedEAttributeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hbAnnotatedEClassEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hbAnnotatedEModelElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hbAnnotatedEPackageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hbAnnotatedEReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hbAnnotatedEDataTypeEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private HbmodelPackageImpl() {
+ super(eNS_URI, HbmodelFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ * <p>Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static HbmodelPackage init() {
+ if (isInited) return (HbmodelPackage)EPackage.Registry.INSTANCE.getEPackage(HbmodelPackage.eNS_URI);
+
+ // Obtain or create and register package
+ HbmodelPackageImpl theHbmodelPackage = (HbmodelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof HbmodelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new HbmodelPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ PamodelPackage.eINSTANCE.eClass();
+ PannotationPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ HbannotationPackageImpl theHbannotationPackage = (HbannotationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HbannotationPackage.eNS_URI) instanceof HbannotationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HbannotationPackage.eNS_URI) : HbannotationPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theHbmodelPackage.createPackageContents();
+ theHbannotationPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theHbmodelPackage.initializePackageContents();
+ theHbannotationPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theHbmodelPackage.freeze();
+
+ return theHbmodelPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHbAnnotatedETypeElement() {
+ return hbAnnotatedETypeElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedETypeElement_HbWhere() {
+ return (EReference)hbAnnotatedETypeElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedETypeElement_HbCollectionOfElements() {
+ return (EReference)hbAnnotatedETypeElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedETypeElement_HbMapKey() {
+ return (EReference)hbAnnotatedETypeElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedETypeElement_HbColumns() {
+ return (EReference)hbAnnotatedETypeElementEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedETypeElement_HbCascade() {
+ return (EReference)hbAnnotatedETypeElementEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedETypeElement_HbIdBag() {
+ return (EReference)hbAnnotatedETypeElementEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedETypeElement_HbIndex() {
+ return (EReference)hbAnnotatedETypeElementEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedETypeElement_Filter() {
+ return (EReference)hbAnnotatedETypeElementEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedETypeElement_MapKeyManyToMany() {
+ return (EReference)hbAnnotatedETypeElementEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedETypeElement_Formula() {
+ return (EReference)hbAnnotatedETypeElementEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHbAnnotatedEAttribute() {
+ return hbAnnotatedEAttributeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEAttribute_HbType() {
+ return (EReference)hbAnnotatedEAttributeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEAttribute_Generated() {
+ return (EReference)hbAnnotatedEAttributeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEAttribute_NaturalId() {
+ return (EReference)hbAnnotatedEAttributeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEAttribute_Any() {
+ return (EReference)hbAnnotatedEAttributeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEAttribute_AnyMetaDef() {
+ return (EReference)hbAnnotatedEAttributeEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHbAnnotatedEClass() {
+ return hbAnnotatedEClassEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_HbCache() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_HbOnDelete() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_HbWhere() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_HbProxy() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_HbNamedQuery() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_FilterDef() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_Filter() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_DiscriminatorFormula() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_ForceDiscriminator() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_Immutable() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_HbEntity() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEClass_BatchSize() {
+ return (EReference)hbAnnotatedEClassEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHbAnnotatedEModelElement() {
+ return hbAnnotatedEModelElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHbAnnotatedEPackage() {
+ return hbAnnotatedEPackageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEPackage_HbGenericGenerators() {
+ return (EReference)hbAnnotatedEPackageEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEPackage_HbTypeDef() {
+ return (EReference)hbAnnotatedEPackageEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEPackage_HbNamedQuery() {
+ return (EReference)hbAnnotatedEPackageEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEPackage_FilterDef() {
+ return (EReference)hbAnnotatedEPackageEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEPackage_AnyMetaDef() {
+ return (EReference)hbAnnotatedEPackageEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHbAnnotatedEReference() {
+ return hbAnnotatedEReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEReference_HbCache() {
+ return (EReference)hbAnnotatedEReferenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEReference_HbFetch() {
+ return (EReference)hbAnnotatedEReferenceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEReference_HbOnDelete() {
+ return (EReference)hbAnnotatedEReferenceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEReference_NaturalId() {
+ return (EReference)hbAnnotatedEReferenceEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEReference_Immutable() {
+ return (EReference)hbAnnotatedEReferenceEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEReference_NotFound() {
+ return (EReference)hbAnnotatedEReferenceEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEReference_HbType() {
+ return (EReference)hbAnnotatedEReferenceEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEReference_BatchSize() {
+ return (EReference)hbAnnotatedEReferenceEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEReference_Any() {
+ return (EReference)hbAnnotatedEReferenceEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEReference_AnyMetaDef() {
+ return (EReference)hbAnnotatedEReferenceEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHbAnnotatedEDataType() {
+ return hbAnnotatedEDataTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEDataType_HbTypeDef() {
+ return (EReference)hbAnnotatedEDataTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEDataType_HbWhere() {
+ return (EReference)hbAnnotatedEDataTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEDataType_HbColumns() {
+ return (EReference)hbAnnotatedEDataTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEDataType_HbIdBag() {
+ return (EReference)hbAnnotatedEDataTypeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEDataType_HbIndex() {
+ return (EReference)hbAnnotatedEDataTypeEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHbAnnotatedEDataType_HbType() {
+ return (EReference)hbAnnotatedEDataTypeEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbmodelFactory getHbmodelFactory() {
+ return (HbmodelFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ hbAnnotatedETypeElementEClass = createEClass(HB_ANNOTATED_ETYPE_ELEMENT);
+ createEReference(hbAnnotatedETypeElementEClass, HB_ANNOTATED_ETYPE_ELEMENT__HB_WHERE);
+ createEReference(hbAnnotatedETypeElementEClass, HB_ANNOTATED_ETYPE_ELEMENT__HB_COLLECTION_OF_ELEMENTS);
+ createEReference(hbAnnotatedETypeElementEClass, HB_ANNOTATED_ETYPE_ELEMENT__HB_MAP_KEY);
+ createEReference(hbAnnotatedETypeElementEClass, HB_ANNOTATED_ETYPE_ELEMENT__HB_COLUMNS);
+ createEReference(hbAnnotatedETypeElementEClass, HB_ANNOTATED_ETYPE_ELEMENT__HB_CASCADE);
+ createEReference(hbAnnotatedETypeElementEClass, HB_ANNOTATED_ETYPE_ELEMENT__HB_ID_BAG);
+ createEReference(hbAnnotatedETypeElementEClass, HB_ANNOTATED_ETYPE_ELEMENT__HB_INDEX);
+ createEReference(hbAnnotatedETypeElementEClass, HB_ANNOTATED_ETYPE_ELEMENT__FILTER);
+ createEReference(hbAnnotatedETypeElementEClass, HB_ANNOTATED_ETYPE_ELEMENT__MAP_KEY_MANY_TO_MANY);
+ createEReference(hbAnnotatedETypeElementEClass, HB_ANNOTATED_ETYPE_ELEMENT__FORMULA);
+
+ hbAnnotatedEAttributeEClass = createEClass(HB_ANNOTATED_EATTRIBUTE);
+ createEReference(hbAnnotatedEAttributeEClass, HB_ANNOTATED_EATTRIBUTE__HB_TYPE);
+ createEReference(hbAnnotatedEAttributeEClass, HB_ANNOTATED_EATTRIBUTE__GENERATED);
+ createEReference(hbAnnotatedEAttributeEClass, HB_ANNOTATED_EATTRIBUTE__NATURAL_ID);
+ createEReference(hbAnnotatedEAttributeEClass, HB_ANNOTATED_EATTRIBUTE__ANY);
+ createEReference(hbAnnotatedEAttributeEClass, HB_ANNOTATED_EATTRIBUTE__ANY_META_DEF);
+
+ hbAnnotatedEClassEClass = createEClass(HB_ANNOTATED_ECLASS);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__HB_CACHE);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__HB_ON_DELETE);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__HB_WHERE);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__HB_PROXY);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__HB_NAMED_QUERY);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__FILTER_DEF);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__FILTER);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__DISCRIMINATOR_FORMULA);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__FORCE_DISCRIMINATOR);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__IMMUTABLE);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__HB_ENTITY);
+ createEReference(hbAnnotatedEClassEClass, HB_ANNOTATED_ECLASS__BATCH_SIZE);
+
+ hbAnnotatedEModelElementEClass = createEClass(HB_ANNOTATED_EMODEL_ELEMENT);
+
+ hbAnnotatedEPackageEClass = createEClass(HB_ANNOTATED_EPACKAGE);
+ createEReference(hbAnnotatedEPackageEClass, HB_ANNOTATED_EPACKAGE__HB_GENERIC_GENERATORS);
+ createEReference(hbAnnotatedEPackageEClass, HB_ANNOTATED_EPACKAGE__HB_TYPE_DEF);
+ createEReference(hbAnnotatedEPackageEClass, HB_ANNOTATED_EPACKAGE__HB_NAMED_QUERY);
+ createEReference(hbAnnotatedEPackageEClass, HB_ANNOTATED_EPACKAGE__FILTER_DEF);
+ createEReference(hbAnnotatedEPackageEClass, HB_ANNOTATED_EPACKAGE__ANY_META_DEF);
+
+ hbAnnotatedEReferenceEClass = createEClass(HB_ANNOTATED_EREFERENCE);
+ createEReference(hbAnnotatedEReferenceEClass, HB_ANNOTATED_EREFERENCE__HB_CACHE);
+ createEReference(hbAnnotatedEReferenceEClass, HB_ANNOTATED_EREFERENCE__HB_FETCH);
+ createEReference(hbAnnotatedEReferenceEClass, HB_ANNOTATED_EREFERENCE__HB_ON_DELETE);
+ createEReference(hbAnnotatedEReferenceEClass, HB_ANNOTATED_EREFERENCE__NATURAL_ID);
+ createEReference(hbAnnotatedEReferenceEClass, HB_ANNOTATED_EREFERENCE__IMMUTABLE);
+ createEReference(hbAnnotatedEReferenceEClass, HB_ANNOTATED_EREFERENCE__NOT_FOUND);
+ createEReference(hbAnnotatedEReferenceEClass, HB_ANNOTATED_EREFERENCE__HB_TYPE);
+ createEReference(hbAnnotatedEReferenceEClass, HB_ANNOTATED_EREFERENCE__BATCH_SIZE);
+ createEReference(hbAnnotatedEReferenceEClass, HB_ANNOTATED_EREFERENCE__ANY);
+ createEReference(hbAnnotatedEReferenceEClass, HB_ANNOTATED_EREFERENCE__ANY_META_DEF);
+
+ hbAnnotatedEDataTypeEClass = createEClass(HB_ANNOTATED_EDATA_TYPE);
+ createEReference(hbAnnotatedEDataTypeEClass, HB_ANNOTATED_EDATA_TYPE__HB_TYPE_DEF);
+ createEReference(hbAnnotatedEDataTypeEClass, HB_ANNOTATED_EDATA_TYPE__HB_WHERE);
+ createEReference(hbAnnotatedEDataTypeEClass, HB_ANNOTATED_EDATA_TYPE__HB_COLUMNS);
+ createEReference(hbAnnotatedEDataTypeEClass, HB_ANNOTATED_EDATA_TYPE__HB_ID_BAG);
+ createEReference(hbAnnotatedEDataTypeEClass, HB_ANNOTATED_EDATA_TYPE__HB_INDEX);
+ createEReference(hbAnnotatedEDataTypeEClass, HB_ANNOTATED_EDATA_TYPE__HB_TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ PamodelPackage thePamodelPackage = (PamodelPackage)EPackage.Registry.INSTANCE.getEPackage(PamodelPackage.eNS_URI);
+ HbannotationPackage theHbannotationPackage = (HbannotationPackage)EPackage.Registry.INSTANCE.getEPackage(HbannotationPackage.eNS_URI);
+ PannotationPackage thePannotationPackage = (PannotationPackage)EPackage.Registry.INSTANCE.getEPackage(PannotationPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ hbAnnotatedETypeElementEClass.getESuperTypes().add(thePamodelPackage.getPAnnotatedEStructuralFeature());
+ hbAnnotatedETypeElementEClass.getESuperTypes().add(this.getHbAnnotatedEModelElement());
+ hbAnnotatedEAttributeEClass.getESuperTypes().add(thePamodelPackage.getPAnnotatedEAttribute());
+ hbAnnotatedEAttributeEClass.getESuperTypes().add(this.getHbAnnotatedETypeElement());
+ hbAnnotatedEClassEClass.getESuperTypes().add(thePamodelPackage.getPAnnotatedEClass());
+ hbAnnotatedEModelElementEClass.getESuperTypes().add(thePamodelPackage.getPAnnotatedEModelElement());
+ hbAnnotatedEPackageEClass.getESuperTypes().add(thePamodelPackage.getPAnnotatedEPackage());
+ hbAnnotatedEReferenceEClass.getESuperTypes().add(thePamodelPackage.getPAnnotatedEReference());
+ hbAnnotatedEReferenceEClass.getESuperTypes().add(this.getHbAnnotatedETypeElement());
+ hbAnnotatedEDataTypeEClass.getESuperTypes().add(thePamodelPackage.getPAnnotatedEDataType());
+ hbAnnotatedEDataTypeEClass.getESuperTypes().add(this.getHbAnnotatedEModelElement());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(hbAnnotatedETypeElementEClass, HbAnnotatedETypeElement.class, "HbAnnotatedETypeElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHbAnnotatedETypeElement_HbWhere(), theHbannotationPackage.getWhere(), null, "hbWhere", null, 0, 1, HbAnnotatedETypeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedETypeElement_HbCollectionOfElements(), theHbannotationPackage.getCollectionOfElements(), null, "hbCollectionOfElements", null, 0, 1, HbAnnotatedETypeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedETypeElement_HbMapKey(), theHbannotationPackage.getHbMapKey(), null, "hbMapKey", null, 0, 1, HbAnnotatedETypeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedETypeElement_HbColumns(), thePannotationPackage.getColumn(), null, "hbColumns", null, 0, -1, HbAnnotatedETypeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedETypeElement_HbCascade(), theHbannotationPackage.getCascade(), null, "hbCascade", null, 0, 1, HbAnnotatedETypeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedETypeElement_HbIdBag(), theHbannotationPackage.getIdBag(), null, "hbIdBag", null, 0, 1, HbAnnotatedETypeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedETypeElement_HbIndex(), theHbannotationPackage.getIndex(), null, "hbIndex", null, 0, 1, HbAnnotatedETypeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedETypeElement_Filter(), theHbannotationPackage.getFilter(), null, "Filter", null, 0, -1, HbAnnotatedETypeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedETypeElement_MapKeyManyToMany(), theHbannotationPackage.getMapKeyManyToMany(), null, "mapKeyManyToMany", null, 0, 1, HbAnnotatedETypeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedETypeElement_Formula(), theHbannotationPackage.getFormula(), null, "formula", null, 0, 1, HbAnnotatedETypeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(hbAnnotatedEAttributeEClass, HbAnnotatedEAttribute.class, "HbAnnotatedEAttribute", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHbAnnotatedEAttribute_HbType(), theHbannotationPackage.getType(), null, "hbType", null, 0, 1, HbAnnotatedEAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEAttribute_Generated(), theHbannotationPackage.getGenerated(), null, "generated", null, 0, 1, HbAnnotatedEAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEAttribute_NaturalId(), theHbannotationPackage.getNaturalId(), null, "naturalId", null, 0, 1, HbAnnotatedEAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEAttribute_Any(), theHbannotationPackage.getAny(), null, "any", null, 0, 1, HbAnnotatedEAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEAttribute_AnyMetaDef(), theHbannotationPackage.getAnyMetaDef(), null, "anyMetaDef", null, 0, 1, HbAnnotatedEAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(hbAnnotatedEClassEClass, HbAnnotatedEClass.class, "HbAnnotatedEClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHbAnnotatedEClass_HbCache(), theHbannotationPackage.getCache(), null, "hbCache", null, 0, 1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEClass_HbOnDelete(), theHbannotationPackage.getOnDelete(), null, "hbOnDelete", null, 0, 1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEClass_HbWhere(), theHbannotationPackage.getWhere(), null, "hbWhere", null, 0, 1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEClass_HbProxy(), theHbannotationPackage.getProxy(), null, "hbProxy", null, 0, 1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEClass_HbNamedQuery(), theHbannotationPackage.getNamedQuery(), null, "hbNamedQuery", null, 0, -1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEClass_FilterDef(), theHbannotationPackage.getFilterDef(), null, "FilterDef", null, 0, -1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEClass_Filter(), theHbannotationPackage.getFilter(), null, "Filter", null, 0, -1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEClass_DiscriminatorFormula(), theHbannotationPackage.getDiscriminatorFormula(), null, "discriminatorFormula", null, 0, 1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEClass_ForceDiscriminator(), theHbannotationPackage.getForceDiscriminator(), null, "forceDiscriminator", null, 0, 1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEClass_Immutable(), theHbannotationPackage.getImmutable(), null, "immutable", null, 0, 1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEClass_HbEntity(), theHbannotationPackage.getHbEntity(), null, "hbEntity", null, 0, 1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEClass_BatchSize(), theHbannotationPackage.getBatchSize(), null, "batchSize", null, 0, 1, HbAnnotatedEClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(hbAnnotatedEModelElementEClass, HbAnnotatedEModelElement.class, "HbAnnotatedEModelElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(hbAnnotatedEPackageEClass, HbAnnotatedEPackage.class, "HbAnnotatedEPackage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHbAnnotatedEPackage_HbGenericGenerators(), theHbannotationPackage.getGenericGenerator(), null, "hbGenericGenerators", null, 0, -1, HbAnnotatedEPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEPackage_HbTypeDef(), theHbannotationPackage.getTypeDef(), null, "hbTypeDef", null, 0, -1, HbAnnotatedEPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEPackage_HbNamedQuery(), theHbannotationPackage.getNamedQuery(), null, "hbNamedQuery", null, 0, -1, HbAnnotatedEPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEPackage_FilterDef(), theHbannotationPackage.getFilterDef(), null, "FilterDef", null, 0, -1, HbAnnotatedEPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEPackage_AnyMetaDef(), theHbannotationPackage.getAnyMetaDef(), null, "anyMetaDef", null, 0, -1, HbAnnotatedEPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(hbAnnotatedEReferenceEClass, HbAnnotatedEReference.class, "HbAnnotatedEReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHbAnnotatedEReference_HbCache(), theHbannotationPackage.getCache(), null, "hbCache", null, 0, 1, HbAnnotatedEReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEReference_HbFetch(), theHbannotationPackage.getFetch(), null, "hbFetch", null, 0, 1, HbAnnotatedEReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEReference_HbOnDelete(), theHbannotationPackage.getOnDelete(), null, "hbOnDelete", null, 0, 1, HbAnnotatedEReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEReference_NaturalId(), theHbannotationPackage.getNaturalId(), null, "naturalId", null, 0, 1, HbAnnotatedEReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEReference_Immutable(), theHbannotationPackage.getImmutable(), null, "immutable", null, 0, 1, HbAnnotatedEReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEReference_NotFound(), theHbannotationPackage.getNotFound(), null, "notFound", null, 0, 1, HbAnnotatedEReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEReference_HbType(), theHbannotationPackage.getType(), null, "hbType", null, 0, 1, HbAnnotatedEReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEReference_BatchSize(), theHbannotationPackage.getBatchSize(), null, "batchSize", null, 0, 1, HbAnnotatedEReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEReference_Any(), theHbannotationPackage.getAny(), null, "any", null, 0, 1, HbAnnotatedEReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEReference_AnyMetaDef(), theHbannotationPackage.getAnyMetaDef(), null, "anyMetaDef", null, 0, 1, HbAnnotatedEReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(hbAnnotatedEDataTypeEClass, HbAnnotatedEDataType.class, "HbAnnotatedEDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHbAnnotatedEDataType_HbTypeDef(), theHbannotationPackage.getTypeDef(), null, "hbTypeDef", null, 0, 1, HbAnnotatedEDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEDataType_HbWhere(), theHbannotationPackage.getWhere(), null, "hbWhere", null, 0, 1, HbAnnotatedEDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEDataType_HbColumns(), thePannotationPackage.getColumn(), null, "hbColumns", null, 0, -1, HbAnnotatedEDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEDataType_HbIdBag(), theHbannotationPackage.getIdBag(), null, "hbIdBag", null, 0, 1, HbAnnotatedEDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEDataType_HbIndex(), theHbannotationPackage.getIndex(), null, "hbIndex", null, 0, 1, HbAnnotatedEDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHbAnnotatedEDataType_HbType(), theHbannotationPackage.getType(), null, "hbType", null, 0, 1, HbAnnotatedEDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // teneo/internal/PersistenceMapping
+ createPersistenceMappingAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>teneo/internal/PersistenceMapping</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createPersistenceMappingAnnotations() {
+ String source = "teneo/internal/PersistenceMapping";
+ addAnnotation
+ (getHbAnnotatedETypeElement_HbMapKey(),
+ source,
+ new String[] {
+ "elementName", "hb-map-key"
+ });
+ addAnnotation
+ (getHbAnnotatedETypeElement_MapKeyManyToMany(),
+ source,
+ new String[] {
+ "elementName", "hb-map-key"
+ });
+ }
+
+} //HbmodelPackageImpl
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/util/HbmodelAdapterFactory.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/util/HbmodelAdapterFactory.java
new file mode 100755
index 000000000..dc61036c9
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/util/HbmodelAdapterFactory.java
@@ -0,0 +1,385 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbmodelAdapterFactory.java,v 1.4 2008/06/10 08:24:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEDataType;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEModelElement;
+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.PAnnotatedETypedElement;
+
+import org.eclipse.emf.teneo.hibernate.hbmodel.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage
+ * @generated
+ */
+public class HbmodelAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static HbmodelPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbmodelAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = HbmodelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HbmodelSwitch<Adapter> modelSwitch =
+ new HbmodelSwitch<Adapter>() {
+ @Override
+ public Adapter caseHbAnnotatedETypeElement(HbAnnotatedETypeElement object) {
+ return createHbAnnotatedETypeElementAdapter();
+ }
+ @Override
+ public Adapter caseHbAnnotatedEAttribute(HbAnnotatedEAttribute object) {
+ return createHbAnnotatedEAttributeAdapter();
+ }
+ @Override
+ public Adapter caseHbAnnotatedEClass(HbAnnotatedEClass object) {
+ return createHbAnnotatedEClassAdapter();
+ }
+ @Override
+ public Adapter caseHbAnnotatedEModelElement(HbAnnotatedEModelElement object) {
+ return createHbAnnotatedEModelElementAdapter();
+ }
+ @Override
+ public Adapter caseHbAnnotatedEPackage(HbAnnotatedEPackage object) {
+ return createHbAnnotatedEPackageAdapter();
+ }
+ @Override
+ public Adapter caseHbAnnotatedEReference(HbAnnotatedEReference object) {
+ return createHbAnnotatedEReferenceAdapter();
+ }
+ @Override
+ public Adapter caseHbAnnotatedEDataType(HbAnnotatedEDataType object) {
+ return createHbAnnotatedEDataTypeAdapter();
+ }
+ @Override
+ public Adapter casePAnnotatedEModelElement(PAnnotatedEModelElement object) {
+ return createPAnnotatedEModelElementAdapter();
+ }
+ @Override
+ public Adapter casePAnnotatedETypedElement(PAnnotatedETypedElement object) {
+ return createPAnnotatedETypedElementAdapter();
+ }
+ @Override
+ public Adapter casePAnnotatedEStructuralFeature(PAnnotatedEStructuralFeature object) {
+ return createPAnnotatedEStructuralFeatureAdapter();
+ }
+ @Override
+ public Adapter casePAnnotatedEAttribute(PAnnotatedEAttribute object) {
+ return createPAnnotatedEAttributeAdapter();
+ }
+ @Override
+ public Adapter casePAnnotatedEClass(PAnnotatedEClass object) {
+ return createPAnnotatedEClassAdapter();
+ }
+ @Override
+ public Adapter casePAnnotatedEPackage(PAnnotatedEPackage object) {
+ return createPAnnotatedEPackageAdapter();
+ }
+ @Override
+ public Adapter casePAnnotatedEReference(PAnnotatedEReference object) {
+ return createPAnnotatedEReferenceAdapter();
+ }
+ @Override
+ public Adapter casePAnnotatedEDataType(PAnnotatedEDataType object) {
+ return createPAnnotatedEDataTypeAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement <em>Hb Annotated EType Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement
+ * @generated
+ */
+ public Adapter createHbAnnotatedETypeElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute <em>Hb Annotated EAttribute</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute
+ * @generated
+ */
+ public Adapter createHbAnnotatedEAttributeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass <em>Hb Annotated EClass</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass
+ * @generated
+ */
+ public Adapter createHbAnnotatedEClassAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement <em>Hb Annotated EModel Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement
+ * @generated
+ */
+ public Adapter createHbAnnotatedEModelElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage <em>Hb Annotated EPackage</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage
+ * @generated
+ */
+ public Adapter createHbAnnotatedEPackageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference <em>Hb Annotated EReference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference
+ * @generated
+ */
+ public Adapter createHbAnnotatedEReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType <em>Hb Annotated EData Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType
+ * @generated
+ */
+ public Adapter createHbAnnotatedEDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEModelElement <em>PAnnotated EModel Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEModelElement
+ * @generated
+ */
+ public Adapter createPAnnotatedEModelElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedETypedElement <em>PAnnotated ETyped Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedETypedElement
+ * @generated
+ */
+ public Adapter createPAnnotatedETypedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature <em>PAnnotated EStructural Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature
+ * @generated
+ */
+ public Adapter createPAnnotatedEStructuralFeatureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute <em>PAnnotated EAttribute</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute
+ * @generated
+ */
+ public Adapter createPAnnotatedEAttributeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass <em>PAnnotated EClass</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass
+ * @generated
+ */
+ public Adapter createPAnnotatedEClassAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEPackage <em>PAnnotated EPackage</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEPackage
+ * @generated
+ */
+ public Adapter createPAnnotatedEPackageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference <em>PAnnotated EReference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference
+ * @generated
+ */
+ public Adapter createPAnnotatedEReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEDataType <em>PAnnotated EData Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEDataType
+ * @generated
+ */
+ public Adapter createPAnnotatedEDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //HbmodelAdapterFactory
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/util/HbmodelSwitch.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/util/HbmodelSwitch.java
new file mode 100755
index 000000000..886c9f058
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/util/HbmodelSwitch.java
@@ -0,0 +1,409 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbmodelSwitch.java,v 1.2 2007/11/14 16:38:34 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEDataType;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEModelElement;
+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.PAnnotatedETypedElement;
+
+import org.eclipse.emf.teneo.hibernate.hbmodel.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelPackage
+ * @generated
+ */
+public class HbmodelSwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static HbmodelPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HbmodelSwitch() {
+ if (modelPackage == null) {
+ modelPackage = HbmodelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case HbmodelPackage.HB_ANNOTATED_ETYPE_ELEMENT: {
+ HbAnnotatedETypeElement hbAnnotatedETypeElement = (HbAnnotatedETypeElement)theEObject;
+ T result = caseHbAnnotatedETypeElement(hbAnnotatedETypeElement);
+ if (result == null) result = casePAnnotatedEStructuralFeature(hbAnnotatedETypeElement);
+ if (result == null) result = caseHbAnnotatedEModelElement(hbAnnotatedETypeElement);
+ if (result == null) result = casePAnnotatedETypedElement(hbAnnotatedETypeElement);
+ if (result == null) result = casePAnnotatedEModelElement(hbAnnotatedETypeElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbmodelPackage.HB_ANNOTATED_EATTRIBUTE: {
+ HbAnnotatedEAttribute hbAnnotatedEAttribute = (HbAnnotatedEAttribute)theEObject;
+ T result = caseHbAnnotatedEAttribute(hbAnnotatedEAttribute);
+ if (result == null) result = casePAnnotatedEAttribute(hbAnnotatedEAttribute);
+ if (result == null) result = caseHbAnnotatedETypeElement(hbAnnotatedEAttribute);
+ if (result == null) result = casePAnnotatedEStructuralFeature(hbAnnotatedEAttribute);
+ if (result == null) result = caseHbAnnotatedEModelElement(hbAnnotatedEAttribute);
+ if (result == null) result = casePAnnotatedETypedElement(hbAnnotatedEAttribute);
+ if (result == null) result = casePAnnotatedEModelElement(hbAnnotatedEAttribute);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbmodelPackage.HB_ANNOTATED_ECLASS: {
+ HbAnnotatedEClass hbAnnotatedEClass = (HbAnnotatedEClass)theEObject;
+ T result = caseHbAnnotatedEClass(hbAnnotatedEClass);
+ if (result == null) result = casePAnnotatedEClass(hbAnnotatedEClass);
+ if (result == null) result = casePAnnotatedEModelElement(hbAnnotatedEClass);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbmodelPackage.HB_ANNOTATED_EMODEL_ELEMENT: {
+ HbAnnotatedEModelElement hbAnnotatedEModelElement = (HbAnnotatedEModelElement)theEObject;
+ T result = caseHbAnnotatedEModelElement(hbAnnotatedEModelElement);
+ if (result == null) result = casePAnnotatedEModelElement(hbAnnotatedEModelElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbmodelPackage.HB_ANNOTATED_EPACKAGE: {
+ HbAnnotatedEPackage hbAnnotatedEPackage = (HbAnnotatedEPackage)theEObject;
+ T result = caseHbAnnotatedEPackage(hbAnnotatedEPackage);
+ if (result == null) result = casePAnnotatedEPackage(hbAnnotatedEPackage);
+ if (result == null) result = casePAnnotatedEModelElement(hbAnnotatedEPackage);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbmodelPackage.HB_ANNOTATED_EREFERENCE: {
+ HbAnnotatedEReference hbAnnotatedEReference = (HbAnnotatedEReference)theEObject;
+ T result = caseHbAnnotatedEReference(hbAnnotatedEReference);
+ if (result == null) result = casePAnnotatedEReference(hbAnnotatedEReference);
+ if (result == null) result = caseHbAnnotatedETypeElement(hbAnnotatedEReference);
+ if (result == null) result = casePAnnotatedEStructuralFeature(hbAnnotatedEReference);
+ if (result == null) result = caseHbAnnotatedEModelElement(hbAnnotatedEReference);
+ if (result == null) result = casePAnnotatedETypedElement(hbAnnotatedEReference);
+ if (result == null) result = casePAnnotatedEModelElement(hbAnnotatedEReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case HbmodelPackage.HB_ANNOTATED_EDATA_TYPE: {
+ HbAnnotatedEDataType hbAnnotatedEDataType = (HbAnnotatedEDataType)theEObject;
+ T result = caseHbAnnotatedEDataType(hbAnnotatedEDataType);
+ if (result == null) result = casePAnnotatedEDataType(hbAnnotatedEDataType);
+ if (result == null) result = caseHbAnnotatedEModelElement(hbAnnotatedEDataType);
+ if (result == null) result = casePAnnotatedEModelElement(hbAnnotatedEDataType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hb Annotated EType Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hb Annotated EType Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHbAnnotatedETypeElement(HbAnnotatedETypeElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hb Annotated EAttribute</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hb Annotated EAttribute</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHbAnnotatedEAttribute(HbAnnotatedEAttribute object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hb Annotated EClass</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hb Annotated EClass</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHbAnnotatedEClass(HbAnnotatedEClass object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hb Annotated EModel Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hb Annotated EModel Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHbAnnotatedEModelElement(HbAnnotatedEModelElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hb Annotated EPackage</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hb Annotated EPackage</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHbAnnotatedEPackage(HbAnnotatedEPackage object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hb Annotated EReference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hb Annotated EReference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHbAnnotatedEReference(HbAnnotatedEReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hb Annotated EData Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hb Annotated EData Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHbAnnotatedEDataType(HbAnnotatedEDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PAnnotated EModel Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PAnnotated EModel Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePAnnotatedEModelElement(PAnnotatedEModelElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PAnnotated ETyped Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PAnnotated ETyped Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePAnnotatedETypedElement(PAnnotatedETypedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PAnnotated EStructural Feature</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PAnnotated EStructural Feature</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePAnnotatedEStructuralFeature(PAnnotatedEStructuralFeature object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PAnnotated EAttribute</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PAnnotated EAttribute</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePAnnotatedEAttribute(PAnnotatedEAttribute object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PAnnotated EClass</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PAnnotated EClass</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePAnnotatedEClass(PAnnotatedEClass object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PAnnotated EPackage</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PAnnotated EPackage</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePAnnotatedEPackage(PAnnotatedEPackage object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PAnnotated EReference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PAnnotated EReference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePAnnotatedEReference(PAnnotatedEReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PAnnotated EData Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PAnnotated EData Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePAnnotatedEDataType(PAnnotatedEDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //HbmodelSwitch
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEAttributeValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEAttributeValidator.java
new file mode 100755
index 000000000..8732c548e
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEAttributeValidator.java
@@ -0,0 +1,24 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEAttributeValidator.java,v 1.2 2007/07/11 17:35:11 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.validation;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.Generated;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface HbAnnotatedEAttributeValidator {
+ boolean validate();
+
+ boolean validateHbType(Type value);
+
+ boolean validateGenerated(Generated value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEClassValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEClassValidator.java
new file mode 100755
index 000000000..0b30e73fd
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEClassValidator.java
@@ -0,0 +1,40 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEClassValidator.java,v 1.6 2008/04/23 15:44:25 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.validation;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Proxy;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface HbAnnotatedEClassValidator {
+ boolean validate();
+
+ boolean validateHbCache(Cache value);
+
+ boolean validateHbOnDelete(OnDelete value);
+
+ boolean validateHbWhere(Where value);
+
+ boolean validateHbProxy(Proxy value);
+
+ boolean validateHbNamedQuery(EList<NamedQuery> value);
+
+ boolean validateFilterDef(EList<FilterDef> value);
+
+ boolean validateFilter(EList<Filter> value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEDataTypeValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEDataTypeValidator.java
new file mode 100755
index 000000000..e95432706
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEDataTypeValidator.java
@@ -0,0 +1,34 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEDataTypeValidator.java,v 1.2 2007/11/14 16:38:34 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.validation;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface HbAnnotatedEDataTypeValidator {
+ boolean validate();
+
+ boolean validateHbTypeDef(TypeDef value);
+
+ boolean validateHbWhere(Where value);
+
+ boolean validateHbColumns(EList<Column> value);
+
+ boolean validateHbIdBag(IdBag value);
+
+ boolean validateHbIndex(Index value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEModelElementValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEModelElementValidator.java
new file mode 100755
index 000000000..6ec7d6ab4
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEModelElementValidator.java
@@ -0,0 +1,19 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEModelElementValidator.java,v 1.1 2007/02/08 23:13:13 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEModelElement}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface HbAnnotatedEModelElementValidator {
+ boolean validate();
+
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEPackageValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEPackageValidator.java
new file mode 100755
index 000000000..f1cc0b51f
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEPackageValidator.java
@@ -0,0 +1,31 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEPackageValidator.java,v 1.3 2008/04/23 15:44:25 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface HbAnnotatedEPackageValidator {
+ boolean validate();
+
+ boolean validateHbGenericGenerators(EList<GenericGenerator> value);
+ boolean validateHbTypeDef(EList<TypeDef> value);
+
+ boolean validateHbNamedQuery(EList<NamedQuery> value);
+
+ boolean validateFilterDef(EList<FilterDef> value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEReferenceValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEReferenceValidator.java
new file mode 100755
index 000000000..35bfe78df
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedEReferenceValidator.java
@@ -0,0 +1,26 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedEReferenceValidator.java,v 1.2 2007/03/04 21:18:07 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.validation;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Fetch;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface HbAnnotatedEReferenceValidator {
+ boolean validate();
+
+ boolean validateHbCache(Cache value);
+ boolean validateHbFetch(Fetch value);
+
+ boolean validateHbOnDelete(OnDelete value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedETypeElementValidator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedETypeElementValidator.java
new file mode 100755
index 000000000..2f699db16
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/hbmodel/validation/HbAnnotatedETypeElementValidator.java
@@ -0,0 +1,40 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: HbAnnotatedETypeElementValidator.java,v 1.3 2008/04/23 15:44:25 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.hibernate.hbmodel.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MapKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Where;
+
+/**
+ * A sample validator interface for {@link org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface HbAnnotatedETypeElementValidator {
+ boolean validate();
+
+ boolean validateHbWhere(Where value);
+ boolean validateHbCollectionOfElements(CollectionOfElements value);
+ boolean validateHbMapKey(MapKey value);
+ boolean validateHbColumns(EList<Column> value);
+ boolean validateHbCascade(Cascade value);
+ boolean validateHbIdBag(IdBag value);
+
+ boolean validateHbIndex(Index value);
+
+ boolean validateFilter(EList<Filter> value);
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/AbstractAssociationMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/AbstractAssociationMapper.java
new file mode 100755
index 000000000..685675f29
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/AbstractAssociationMapper.java
@@ -0,0 +1,962 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal </copyright> $Id:
+ * AbstractAssociationMapper.java,v 1.17 2007/04/17 15:49:50 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pannotation.CascadeType;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.annotations.pannotation.FetchType;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinTable;
+import org.eclipse.emf.teneo.annotations.pannotation.MapKey;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cascade;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.IdBag;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.MapKeyManyToMany;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Type;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+import org.eclipse.emf.teneo.mapping.strategy.SQLNameStrategy;
+import org.eclipse.emf.teneo.mapping.strategy.impl.ClassicSQLNameStrategy;
+import org.eclipse.emf.teneo.simpledom.Element;
+import org.eclipse.emf.teneo.util.StoreUtil;
+
+/**
+ * Class contains different convenience methods which are of use for association
+ * mapping.
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public abstract class AbstractAssociationMapper extends AbstractMapper {
+
+ /** Logger */
+ private static final Log log = LogFactory
+ .getLog(AbstractAssociationMapper.class);
+
+ /**
+ * @return
+ */
+ protected Element addOneToOne(PAnnotatedEReference aReference,
+ String assocName, String targetEntity) {
+ final PAnnotatedEClass referedToAClass = aReference.getAReferenceType();
+ final Element element;
+ if (referedToAClass.isOnlyMapAsEntity()
+ || !getHbmContext().forceUseOfInstance(referedToAClass)) {
+ element = getHbmContext().getCurrent().addElement("one-to-one")
+ .addAttribute("name", assocName)
+ .addAttribute("entity-name", targetEntity);
+ } else {
+ element = getHbmContext()
+ .getCurrent()
+ .addElement("one-to-one")
+ .addAttribute("name", assocName)
+ .addAttribute(
+ "class",
+ getHbmContext().getInstanceClassName(
+ referedToAClass.getModelEClass()));
+ }
+
+ if (aReference instanceof HbAnnotatedEReference) {
+ final HbAnnotatedEReference hae = (HbAnnotatedEReference) aReference;
+ if (hae.getHbFetch() != null) {
+ element.addAttribute("fetch", hae.getHbFetch().getValue()
+ .getName().toLowerCase());
+ }
+ }
+ return element;
+ }
+
+ // translates jpa CascadeType to HbCascadeType
+ protected List<HbCascadeType> getCascades(Cascade cascade,
+ List<CascadeType> cascades) {
+ if (cascade != null) {
+ return cascade.getValue();
+ }
+ return convertCascade(cascades);
+ }
+
+ protected List<HbCascadeType> convertCascade(List<CascadeType> cascades) {
+ final List<HbCascadeType> res = new ArrayList<HbCascadeType>();
+ for (CascadeType ct : cascades) {
+ if (ct == CascadeType.ALL) {
+ res.add(HbCascadeType.ALL);
+ } else if (ct == CascadeType.MERGE) {
+ res.add(HbCascadeType.MERGE);
+ } else if (ct == CascadeType.PERSIST) {
+ res.add(HbCascadeType.PERSIST);
+ res.add(HbCascadeType.SAVE_UPDATE);
+ res.add(HbCascadeType.LOCK);
+ } else if (ct == CascadeType.REFRESH) {
+ res.add(HbCascadeType.REFRESH);
+ } else if (ct == CascadeType.REMOVE) {
+ res.add(HbCascadeType.REMOVE);
+ } else if (ct == CascadeType.NONE) {
+ return new ArrayList<HbCascadeType>();
+ }
+ }
+ return res;
+ }
+
+ /** Adds a manytoone tag to the current element of the hbmcontext */
+ protected Element addManyToOne(Element currentParent,
+ PAnnotatedEReference aReference, String referedTo,
+ boolean isPartOfKey) {
+ final String assocName = getHbmContext().getPropertyName(
+ aReference.getModelEReference());
+ log.debug("addManyToOne " + assocName + "/" + referedTo);
+
+ final String tagName;
+ if (((HbAnnotatedEReference) aReference).getHbType() != null) {
+ tagName = "property";
+ final Element element = currentParent.addElement(tagName)
+ .addAttribute("name", assocName);
+ final Type hbType = ((HbAnnotatedEReference) aReference)
+ .getHbType();
+ final List<Parameter> params = hbType.getParameters();
+ if (params == null || params.isEmpty()) {
+ element.addAttribute("type", hbType.getType());
+ } else {
+ final Element typeElement = element.addElement("type")
+ .addAttribute("name", hbType.getType());
+ for (Parameter param : params) {
+ typeElement.addElement("param")
+ .addAttribute("name", param.getName())
+ .addText(param.getValue());
+ }
+ }
+ return element;
+ } else if (isPartOfKey) {
+ tagName = "key-many-to-one";
+ } else {
+ tagName = "many-to-one";
+ }
+
+ final EClass referedToEClass = aReference.getModelEReference()
+ .getEReferenceType();
+ final PAnnotatedEClass referedToAClass = aReference.getPaModel()
+ .getPAnnotated(referedToEClass);
+ final Element element;
+ if (referedToAClass.isOnlyMapAsEntity()
+ || !getHbmContext().forceUseOfInstance(referedToAClass)) {
+ element = currentParent.addElement(tagName)
+ .addAttribute("name", assocName)
+ .addAttribute("entity-name", referedTo);
+ } else {
+ element = currentParent
+ .addElement(tagName)
+ .addAttribute("name", assocName)
+ .addAttribute(
+ "class",
+ getHbmContext().getInstanceClassName(
+ referedToEClass));
+ }
+
+ if (aReference instanceof HbAnnotatedEReference) {
+ final HbAnnotatedEReference hae = (HbAnnotatedEReference) aReference;
+ if (hae.getHbFetch() != null) {
+ element.addAttribute("fetch", hae.getHbFetch().getValue()
+ .getName().toLowerCase());
+ }
+ }
+
+ return element;
+ }
+
+ /**
+ * Adds joincolumns to the associationElement, sets the insert and update
+ * attributes of the associationElement on the basis of the
+ * insertable/updatable attributes of the joinColumns. Note that the
+ * joinColumns list can be empty. forcenullable is set to true when a
+ * feature map entry is being processed.
+ */
+ protected void addJoinColumns(PAnnotatedEReference per,
+ Element associationElement, List<JoinColumn> joinColumns,
+ boolean forceNullable) {
+ log.debug("addJoinColumns " + associationElement.getName()
+ + "/ no of joincolumns" + joinColumns.size());
+
+ // assumption is that if one column is not insertable then the
+ // association is
+ // not insertable, same for updatable
+ boolean insertable = true;
+ boolean updatable = true;
+
+ for (JoinColumn joinColumn : joinColumns) {
+ log.debug("JoinColumn " + joinColumn.getName());
+
+ Element columnElement = associationElement
+ .addElement("column")
+ .addAttribute(
+ "not-null",
+ (joinColumn.isNullable() && joinColumn
+ .isSetNullable()) || forceNullable ? "false"
+ : "true")
+ .addAttribute("unique",
+ joinColumn.isUnique() ? "true" : "false");
+ if (joinColumn.getName() != null) {
+
+ columnElement
+ .addAttribute(
+ "name",
+ getHbmContext().trunc(joinColumn,
+ joinColumn.getName()));
+ final String uc = getHbmContext().getUniqueConstraintKey(
+ joinColumn.getName());
+ if (uc != null) {
+ columnElement.addAttribute("unique-key", uc);
+ }
+ }
+
+ final Index index = ((HbAnnotatedETypeElement) per).getHbIndex();
+ if (index != null) {
+ columnElement.addAttribute("index", index.getName());
+ }
+
+ // keep track if all joinColumns are insertable/updatable for in
+ // that case the
+ // associationElement is also insertable/updatable or not
+ insertable &= joinColumn.isInsertable();
+ updatable &= joinColumn.isUpdatable();
+
+ // disabled this because not-null is specified as optional on the
+ // many-to-one tag
+ // also unique is more difficult
+ // associationElement.addAttribute("not-null",
+ // !joinColumn.isNullable() ? "true" : "false");
+ // associationElement.addAttribute("unique", joinColumn.isUnique() ?
+ // "true" : "false");
+ // if
+ // (joinColumn.eIsSet(PannotationPackage.eINSTANCE.getJoinColumn_ReferencedColumnName()))
+ // TODO is this foreign key ?
+ // MT: see the property-ref in hibernate, is used when the reference
+ // is not on the primary key
+ // of the target table but on some other column
+
+ // MT: TODO add check on not insertable/updatable which is strange
+ // for a joincolumn, this check
+ // is present in onetomany mapper
+
+ // --- JJH
+ addCommentElement(per.getModelEReference(), columnElement);
+ // --- JJH
+
+ if (joinColumn.getReferencedColumnName() != null) {
+ String propName = null;
+ final String colName = joinColumn.getReferencedColumnName();
+ for (PAnnotatedEStructuralFeature pef : per.getPaEClass()
+ .getPaEStructuralFeatures()) {
+ if (pef instanceof PAnnotatedEReference) {
+ final PAnnotatedEReference paEreference = (PAnnotatedEReference) pef;
+ // set a default, by looking for the efeature name
+ if (pef.getModelElement().getName().equals(colName)
+ && propName == null) {
+ propName = getHbmContext().getPropertyName(
+ paEreference.getModelEReference());
+ }
+ // use the columnname, that's according to the standard
+ if (paEreference.getColumn() != null
+ && paEreference.getColumn().getName()
+ .equals(colName)) {
+ propName = getHbmContext().getPropertyName(
+ paEreference.getModelEReference());
+ }
+ }
+ }
+ if (propName != null) {
+ associationElement.addAttribute("property-ref", propName);
+ } else {
+ log.warn("No property found for the referencedColumnName "
+ + colName + " and EReference "
+ + per.getModelElement().getName());
+ }
+ }
+
+ }
+ // ugly but effective
+ if (associationElement.getName().compareTo("map-key-many-to-many") != 0
+ && associationElement.getName().compareTo("join") != 0
+ && associationElement.getName().compareTo("key-many-to-one") != 0) {
+ associationElement.addAttribute("insert",
+ Boolean.toString(insertable));
+ associationElement.addAttribute("update",
+ Boolean.toString(updatable));
+ }
+ }
+
+ /**
+ * Creates cascades for onetoone/manytoone, they differ from many relations
+ * because no delete-orphan is supported.
+ *
+ * @param associationElement
+ * : the element to which the cascades are added.
+ * @param cascade
+ * : list of cascade annotation types
+ */
+ protected void addCascadesForSingle(Element associationElement,
+ List<HbCascadeType> cascades) {
+ addCascades(associationElement, cascades, false);
+ }
+
+ /**
+ * Adds a foreign key attribute to the collection element, if the aFeature
+ * has a foreign key
+ */
+ protected void addForeignKeyAttribute(Element manyElement,
+ PAnnotatedEStructuralFeature aFeature) {
+ if (aFeature.getForeignKey() != null) {
+ manyElement.addAttribute("foreign-key", aFeature.getForeignKey()
+ .getName());
+ }
+ }
+
+ /**
+ * Creates cascades for onetomany, it differs from single relations because
+ * delete-orphan is supported when cascade=all
+ *
+ * @param associationElement
+ * : the element to which the cascades are added.
+ * @param cascade
+ * : list of cascade annotation types
+ */
+ protected void addCascadesForMany(Element associationElement,
+ List<HbCascadeType> cascades) {
+ addCascades(associationElement, cascades, true);
+ }
+
+ /**
+ * Sets the lazy attribute of the associationElement based on the fetchtype.
+ */
+ protected void addFetchType(Element associationElement, FetchType fetch) {
+ if (fetch == null) {
+ return;
+ }
+ // TODO: when proxies are supported the below should be changed!
+ if (FetchType.EXTRA.equals(fetch)) {
+ associationElement.addAttribute("lazy", "extra");
+ } else {
+ associationElement.addAttribute("lazy",
+ FetchType.LAZY.equals(fetch) ? "true" : "false");
+ }
+ }
+
+ protected void addLazyProxy(Element element, FetchType fetch,
+ PAnnotatedEReference paReference) {
+ final HbAnnotatedEClass haClass = (HbAnnotatedEClass) paReference
+ .getAReferenceType();
+
+ boolean lazyFetch = fetch == null || fetch == FetchType.LAZY;
+ boolean doProxy = lazyFetch
+ && (haClass.getHbProxy() != null && haClass.getHbProxy()
+ .isLazy());
+ if (doProxy && lazyFetch) {
+ element.addAttribute("lazy", "proxy");
+ } else {
+ element.addAttribute("lazy", "false");
+ }
+ }
+
+ /**
+ * Adds a listindex element with the column name set to the give collection
+ * element.
+ */
+ protected void addListIndex(Element collElement,
+ PAnnotatedEStructuralFeature aFeature) {
+ // TODO use column name generator
+ String name = getIndexColumnName(aFeature);
+
+ log.debug("Add list index " + name + " to "
+ + aFeature.getModelEStructuralFeature().getName());
+
+ collElement.addElement("list-index").addAttribute("column",
+ getHbmContext().trunc(aFeature.getListIndexColumn(), name));
+ }
+
+ protected String getIndexColumnName(PAnnotatedEStructuralFeature aFeature) {
+ final SQLNameStrategy sqlNameStrategy = getHbmContext()
+ .getExtensionManager().getExtension(SQLNameStrategy.class);
+ if (aFeature.getListIndexColumn() != null) {
+ return aFeature.getListIndexColumn().getName();
+ }
+ if (sqlNameStrategy instanceof ClassicSQLNameStrategy) {
+ return ((ClassicSQLNameStrategy) sqlNameStrategy)
+ .getIndexColumnName(aFeature);
+ } else {
+ return getHbmContext().getPersistenceOptions()
+ .getSQLColumnNamePrefix()
+ + (aFeature.getPaEClass().getModelEClass().getName() + "_"
+ + aFeature.getModelEStructuralFeature().getName() + "_IDX")
+ .toUpperCase();
+ }
+ }
+
+ /**
+ * Adds a map-key element with the column name set to the give selected
+ * column element.
+ */
+ // bugzilla 238515
+ // protected void addMapKey(Element collElement,
+ // PAnnotatedEStructuralFeature aFeature, MapKey
+ // mapKey) {
+ //
+ // log.debug("Add map key " + mapKey.getName() + " to " +
+ // aFeature.getModelEStructuralFeature().getName());
+ //
+ // // now, we add the column type. this is a required field
+ // final EStructuralFeature keyFeature =
+ // ((EReference)
+ // aFeature.getModelElement()).getEReferenceType().getEStructuralFeature("key");
+ // if (keyFeature instanceof EReference) {
+ // final PAnnotatedEClass referedAClass =
+ // aFeature.getPaModel().getPAnnotated(((EReference)
+ // keyFeature).getEReferenceType());
+ // if (referedAClass.isOnlyMapAsEntity() ||
+ // !getHbmContext().forceUseOfInstance(referedAClass)) {
+ // final String entityName = hbmContext.getEntityName(((EReference)
+ // keyFeature).getEReferenceType());
+ // collElement.addElement("map-key-many-to-many").addAttribute("entity-name",
+ // entityName);
+ // } else {
+ // collElement.addElement("map-key-many-to-many").addAttribute("class",
+ // getHbmContext().getInstanceClassName(referedAClass.getModelEClass()));
+ // }
+ // } else {
+ // final PAnnotatedEAttribute paAttribute =
+ // (PAnnotatedEAttribute) aFeature.getPaModel().getPAnnotated(keyFeature);
+ // final Element mapKeyElement =
+ // collElement.addElement("map-key").addAttribute("column",
+ // getHbmContext().trunc(mapKey.getName()));
+ // setType(paAttribute, mapKeyElement);
+ // }
+ // // "type", attr.getEType().getInstanceClassName());
+ // }
+ /**
+ * Add a mapkey taking into account if the key is an entity or a simple type
+ */
+ protected void addMapKey(Element collElement, PAnnotatedEReference aref) {
+ final EReference eref = aref.getModelEReference();
+ final HbAnnotatedEReference hbRef = (HbAnnotatedEReference) aref;
+ final EStructuralFeature keyFeature = eref.getEReferenceType()
+ .getEStructuralFeature("key");
+
+ if (hbRef.getHbMapKey() != null && hbRef.getMapKey() != null) {
+ log.warn("The EReference "
+ + aref.getModelElement().getName()
+ + " has both a javax.persistence.MapKey as well as a hibernate MapKey annotation this is not correct, only one of the two should be used.");
+ }
+
+ if (keyFeature == null) {
+ throw new IllegalArgumentException("The EFeature " + eref.getName()
+ + " of EClass " + eref.getEContainingClass().getName()
+ + " does not have a keyfeature. "
+ + "Are you sure that this feature is an EMap");
+ }
+
+ if (hbRef.getHbMapKey() != null) {
+ final org.eclipse.emf.teneo.hibernate.hbannotation.HbMapKey mapKey = hbRef
+ .getHbMapKey();
+ final PAnnotatedEAttribute paAttribute = (PAnnotatedEAttribute) aref
+ .getPaModel().getPAnnotated(keyFeature);
+ final Element mapKeyElement = collElement.addElement("map-key");
+ if (mapKey.getColumns() != null && mapKey.getColumns().size() > 0) {
+ addColumnsAndFormula(mapKeyElement, aref, mapKey.getColumns(),
+ false, false, false, false);
+ }
+ setType(paAttribute, mapKeyElement);
+ } else if (hbRef.getMapKey() != null) {
+ final MapKey mapKey = hbRef.getMapKey();
+ final PAnnotatedEAttribute paAttribute = (PAnnotatedEAttribute) aref
+ .getPaModel().getPAnnotated(keyFeature);
+ final Element mapKeyElement = collElement.addElement("map-key")
+ .addAttribute(
+ "column",
+ getHbmContext().trunc(hbRef.getMapKey(),
+ mapKey.getName()));
+ setType(paAttribute, mapKeyElement);
+ } else if (hbRef.getMapKeyManyToMany() != null) {
+ final MapKeyManyToMany mkm = hbRef.getMapKeyManyToMany();
+ final PAnnotatedEClass referedAClass = aref.getPaModel()
+ .getPAnnotated(
+ ((EReference) keyFeature).getEReferenceType());
+ final Element mkmElement = collElement
+ .addElement("map-key-many-to-many");
+ if (referedAClass.isOnlyMapAsEntity()
+ || !getHbmContext().forceUseOfInstance(referedAClass)) {
+ final String entityName = mkm.getTargetEntity() != null ? mkm
+ .getTargetEntity() : hbmContext
+ .getEntityName(((EReference) keyFeature)
+ .getEReferenceType());
+ mkmElement.addAttribute("entity-name", entityName);
+ } else {
+ mkmElement.addAttribute("class", getHbmContext()
+ .getInstanceClassName(referedAClass.getModelEClass()));
+ }
+ if (mkm.getJoinColumns() != null && mkm.getJoinColumns().size() > 0) {
+ addJoinColumns(hbRef, mkmElement, mkm.getJoinColumns(), false);
+ }
+ } else if (keyFeature instanceof EReference) {
+ final PAnnotatedEClass referedAClass = aref.getPaModel()
+ .getPAnnotated(
+ ((EReference) keyFeature).getEReferenceType());
+ if (referedAClass.isOnlyMapAsEntity()
+ || !getHbmContext().forceUseOfInstance(referedAClass)) {
+ final String entityName = hbmContext
+ .getEntityName(((EReference) keyFeature)
+ .getEReferenceType());
+ collElement.addElement("map-key-many-to-many").addAttribute(
+ "entity-name", entityName);
+ } else {
+ collElement.addElement("map-key-many-to-many").addAttribute(
+ "class",
+ getHbmContext().getInstanceClassName(
+ referedAClass.getModelEClass()));
+ }
+ } else {
+ // final String type =
+ // hbType(aref.getPaModel().getPAnnotated((EAttribute) feature));
+ final Element mapKey = collElement.addElement("map-key"); // .addAttribute("type",
+ // type);
+ final PAnnotatedEAttribute paAttribute = aref.getPaModel()
+ .getPAnnotated((EAttribute) keyFeature);
+ setType(paAttribute, mapKey);
+ }
+ }
+
+ /**
+ * @return a newly added hibernate for given collection
+ * @deprecated use addCollectionElement(PAnnotatedEStructuralFeature)
+ * instead. protected Element addCollectionElement(String name,
+ * boolean isIndexed) { return
+ * getHbmContext().getCurrent().addElement(isIndexed ? "list" :
+ * "bag").addAttribute("name", name); // .addAttribute("access",
+ * "org.eclipse.emf.teneo.hibernate.mapping.elist.EListPropertyAccessor"
+ * ); }
+ */
+
+ /**
+ * Creates a Hibernate collection element:
+ * <ul>
+ * <li>"&lt;list&gt;" if the collection is indexed.
+ * <li>"&lt;bag&gt;" if the collection is not indexed.
+ * <li>"&lt;idbag&gt;" if the collection is not indexed and has an IdBag
+ * annotation.
+ * </ul>
+ *
+ * @param hbFeature
+ * The structural feature for which to create collection.
+ * @return The collection element.
+ */
+ protected Element addCollectionElement(
+ PAnnotatedEStructuralFeature paFeature) {
+ final Element collectionElement;
+ HbAnnotatedETypeElement hbFeature = (HbAnnotatedETypeElement) paFeature;
+ final IdBag idBag = hbFeature.getHbIdBag();
+
+ final EStructuralFeature estruct = paFeature
+ .getModelEStructuralFeature();
+ final boolean isArray = estruct instanceof EAttribute
+ && estruct.getEType().getInstanceClass() != null
+ && estruct.getEType().getInstanceClass().isArray();
+ final boolean isMap = StoreUtil.isMap(estruct)
+ && getHbmContext().isMapEMapAsTrueMap();
+
+ // disabled following check because it also failed for many eattribute
+ // which even with a onetomany
+ // do not create a onetomany tag
+ // if (paFeature.getOneToMany() != null && paFeature.getJoinTable() ==
+ // null && idBag != null) {
+ // throw new MappingException("Cannot use one-to-many attribute mapping
+ // without jointable in combination with
+ // IdBag.");
+ // }
+ final boolean hasOrderBy = paFeature instanceof PAnnotatedEReference
+ && ((PAnnotatedEReference) paFeature).getOrderBy() != null;
+ final boolean hasWhereClause = paFeature instanceof PAnnotatedEReference
+ && ((HbAnnotatedEReference) paFeature).getHbWhere() != null;
+
+ if (isArray) { // array type
+ collectionElement = getHbmContext().getCurrent()
+ .addElement("array");
+ } else if (isMap) {
+ collectionElement = getHbmContext().getCurrent().addElement("map");
+ } else if (idBag != null) {
+ collectionElement = getHbmContext().getCurrent()
+ .addElement("idbag");
+ } else if (getHbmContext().isGeneratedByEMF()
+ && hbFeature.getOneToMany() != null
+ && hbFeature.getOneToMany().isList()) {
+ if (hasOrderBy && hbFeature.getOneToMany().isIndexed()) {
+ log.warn("One to many ereference has indexed=true and has orderby set. Ignoring indexed and using orderby, assuming set "
+ + hbFeature);
+ }
+
+ if (hasOrderBy || !hbFeature.getOneToMany().isIndexed()) {
+ collectionElement = getHbmContext().getCurrent().addElement(
+ "bag");
+ } else {
+ collectionElement = getHbmContext().getCurrent().addElement(
+ "list");
+ }
+ } else if (!getHbmContext().isGeneratedByEMF()
+ && hbFeature.getOneToMany() != null) {
+ if (hasOrderBy && hbFeature.getOneToMany().isIndexed()) {
+ log.warn("One to many ereference has indexed=true and has orderby set. "
+ + "Ignoring indexed and using orderby, assuming set "
+ + hbFeature);
+ }
+
+ if (!hbFeature.getOneToMany().isList() || hasOrderBy) {
+ collectionElement = getHbmContext().getCurrent().addElement(
+ "set");
+ } else if (hbFeature.getOneToMany().isList()
+ && !hbFeature.getOneToMany().isIndexed()) {
+ collectionElement = getHbmContext().getCurrent().addElement(
+ "bag");
+ } else {
+ collectionElement = getHbmContext().getCurrent().addElement(
+ "list");
+ }
+ } else if (hbFeature instanceof PAnnotatedEReference
+ && ((PAnnotatedEReference) hbFeature).getManyToMany() != null
+ && ((PAnnotatedEReference) hbFeature).getManyToMany().isList()) {
+ collectionElement = getHbmContext().getCurrent().addElement("list");
+ } else {
+ collectionElement = getHbmContext().getCurrent().addElement("bag");
+ }
+
+ collectionElement.addAttribute(
+ "name",
+ getHbmContext().getPropertyName(
+ hbFeature.getModelEStructuralFeature()));
+ if (idBag != null) {
+ final String generator = (idBag.getGenerator() == null ? "increment"
+ : idBag.getGenerator());
+ final String type = (idBag.getType() == null ? "long" : idBag
+ .getType());
+ // if (false && idBag.getTable() != null) {
+ // collectionElement.addAttribute("table", idBag.getTable());
+ // }
+ final Element collectionIdElement = collectionElement
+ .addElement("collection-id");
+ collectionIdElement.addAttribute("column",
+ hbmContext.getIdbagIDColumnName());
+ collectionIdElement.addAttribute("type", type);
+
+ collectionIdElement.addElement("generator").addAttribute("class",
+ generator);
+ }
+
+ if (hbFeature instanceof HbAnnotatedEReference) {
+ final HbAnnotatedEReference hae = (HbAnnotatedEReference) hbFeature;
+ if (hae.getHbFetch() != null) {
+ collectionElement.addAttribute("fetch", hae.getHbFetch()
+ .getValue().getName().toLowerCase());
+ }
+ }
+
+ if (hasOrderBy) {
+ final PAnnotatedEClass aClass = ((PAnnotatedEReference) paFeature)
+ .getAReferenceType();
+ final String orderByValue = ((PAnnotatedEReference) paFeature)
+ .getOrderBy().getValue();
+ final String name;
+ if (orderByValue != null && orderByValue.contains("(")) {
+ // a sql function, just copy it completely
+ name = orderByValue;
+ } else {
+ name = getColumnNameForOrderBy(aClass,
+ ((PAnnotatedEReference) paFeature).getOrderBy()
+ .getValue());
+ }
+ collectionElement.addAttribute("order-by", name);
+ }
+
+ if (hasWhereClause) {
+ collectionElement.addAttribute("where",
+ ((HbAnnotatedEReference) paFeature).getHbWhere()
+ .getClause());
+ }
+
+ final boolean hasBatchSize = paFeature instanceof HbAnnotatedEReference
+ && ((HbAnnotatedEReference) paFeature).getBatchSize() != null;
+
+ if (hasBatchSize) {
+ collectionElement.addAttribute("batch-size", ""
+ + ((HbAnnotatedEReference) paFeature).getBatchSize()
+ .getSize());
+ }
+
+ return collectionElement;
+ }
+
+ // returns the column name of a certain feature in the target entity
+ protected String getColumnNameForOrderBy(PAnnotatedEClass aClass,
+ String orderBy) {
+ // handle the case of multiple features separated by commas
+ final StringBuilder sb = new StringBuilder();
+ String[] orderBys = null;
+ if (orderBy != null) {
+ orderBys = orderBy.split(",");
+ } else {
+ // empty orderBy, get an efeature with the id annotation and use
+ // that
+ for (PAnnotatedEStructuralFeature aFeature : getAllFeatures(aClass)) {
+ if (aFeature instanceof PAnnotatedEAttribute) {
+ final PAnnotatedEAttribute aAttribute = (PAnnotatedEAttribute) aFeature;
+ if (aAttribute.getId() != null) {
+ orderBys = new String[1];
+ orderBys[0] = aAttribute.getModelEAttribute().getName();
+ break;
+ }
+ }
+ }
+ if (orderBys == null) {
+ throw new MappingException(
+ "Orderby column can not be determined for association with elements of aClass "
+ + aClass);
+ }
+ }
+ for (String ob : orderBys) {
+ // handle direction asc/desc
+ ob = ob.trim();
+ String direction = " asc";
+ if (ob.indexOf(" ") != -1) {
+ final int index = ob.lastIndexOf(" ");
+ direction = ob.substring(index);
+ ob = ob.substring(0, index).trim();
+ if (ob.trim().startsWith(getHbmContext().getEscapeCharacter())) {
+ ob = ob.trim().substring(
+ getHbmContext().getEscapeCharacter().length());
+ }
+ if (ob.trim().endsWith(getHbmContext().getEscapeCharacter())) {
+ ob = ob.trim().substring(
+ 0,
+ ob.trim().length()
+ - getHbmContext().getEscapeCharacter()
+ .length());
+ }
+ }
+ boolean found = false;
+ for (PAnnotatedEStructuralFeature aFeature : getAllFeatures(aClass)) {
+ if (aFeature.getModelElement().getName().compareTo(ob) == 0) {
+ if (aFeature instanceof PAnnotatedEReference) {
+ throw new MappingException(
+ "Feature "
+ + ob
+ + " is an ereference, onle eattribute is supported");
+ }
+ found = true;
+ final PAnnotatedEAttribute attr = (PAnnotatedEAttribute) aFeature;
+ final List<Column> cs = getColumns(attr);
+ if (cs.isEmpty()) {
+ if (sb.length() > 0) {
+ sb.append(",");
+ }
+ sb.append(escapeName(getColumnName(attr)) + direction);
+ } else {
+ for (Column c : cs) {
+ if (sb.length() > 0) {
+ sb.append(",");
+ }
+ sb.append(escapeName(c.getName()) + direction);
+ }
+ }
+ }
+ }
+ if (!found) {
+ throw new MappingException("Feature " + ob
+ + " not found in eclass "
+ + aClass.getModelEClass().getName());
+ }
+ }
+ return sb.toString();
+ }
+
+ private String escapeName(String name) {
+ // assume it also ends with it...
+ if (name.startsWith(getHbmContext().getEscapeCharacter())) {
+ return name;
+ }
+ return getHbmContext().getEscapeCharacter() + name
+ + getHbmContext().getEscapeCharacter();
+ }
+
+ /**
+ * Add Element element in given collection element.
+ */
+ protected Element addElementElement(Element collElement,
+ PAnnotatedEStructuralFeature paFeature, List<Column> columns,
+ String targetEntity) {
+ final Element elElement;
+ // if (targetEntity == null || paAttribute.getEnumerated() != null ||
+ // StoreUtil.isQName(paAttribute.getModelEAttribute())) {
+ // MT: the target type name is ignored for a many element, it is always
+ // recomputed
+ elElement = collElement.addElement("element");
+ setType(paFeature, elElement);
+ // } else { // in this case the defaultannotator has set the
+ // targetentity!
+ // elElement = collElement.addElement("element").addAttribute("type",
+ // targetEntity);
+ // }
+ if (columns != null && columns.size() > 0) {
+ addColumnsAndFormula(elElement, paFeature, columns, getHbmContext()
+ .isCurrentElementFeatureMap(), true);
+ }
+ return elElement;
+ }
+
+ /**
+ * Adds columns to a key element. Also sets update on the key element based
+ * on the values in the columns.
+ */
+ protected void addKeyColumns(HbAnnotatedETypeElement per,
+ Element keyElement, List<JoinColumn> joinColumns) {
+ log.debug("Adding key columns");
+ boolean setUpdatable = false;
+ boolean isUpdatable = false;
+ for (JoinColumn joinColumn : joinColumns) {
+ log.debug("Column " + joinColumn.getName());
+
+ if (!setUpdatable && keyElement.getName().compareTo("key") == 0) {
+ isUpdatable = joinColumn.isUpdatable();
+ keyElement.addAttribute("update", isUpdatable ? "true"
+ : "false");
+ setUpdatable = true;
+ }
+
+ // these checks are disabled because they do not apply in case the
+ // join column
+ // is added to a join table
+ if (!joinColumn.isInsertable()) {
+ log.error("Unsupported non insertable join column in "
+ + joinColumn);
+ throw new MappingException(
+ "Unsupported non insertable join column", joinColumn);
+ }
+ if (setUpdatable && joinColumn.isUpdatable() != isUpdatable) {
+ log.error("Unsupported join column updatable in " + joinColumn);
+ throw new MappingException("Unsupported join column updatable",
+ joinColumn);
+ }
+
+ final Element ce = keyElement
+ .addElement("column")
+ .addAttribute(
+ "name",
+ getHbmContext().trunc(joinColumn,
+ joinColumn.getName()))
+ .addAttribute("not-null",
+ joinColumn.isNullable() ? "false" : "true")
+ .addAttribute("unique",
+ joinColumn.isUnique() ? "true" : "false");
+
+ // --- JJH, adapted by Martin Taal
+ addCommentElement(per.getModelElement(), ce);
+ // --- JJH
+
+ if (per != null) { // is null in case of jointables
+ final Index index = (per).getHbIndex();
+ if (index != null) {
+ ce.addAttribute("index", index.getName());
+ }
+ }
+
+ if (joinColumn.getReferencedColumnName() != null) {
+ String propName = null;
+ final String colName = joinColumn.getReferencedColumnName();
+ for (PAnnotatedEStructuralFeature pef : per.getPaEClass()
+ .getPaEStructuralFeatures()) {
+ // set a default, by looking for the efeature name
+ if (pef.getModelElement().getName().equals(colName)
+ && propName == null) {
+ propName = getHbmContext().getPropertyName(
+ pef.getModelEStructuralFeature());
+ }
+ // use the columnname, that's according to the standard
+ if (pef.getColumn() != null
+ && pef.getColumn().getName().equals(colName)) {
+ propName = getHbmContext().getPropertyName(
+ pef.getModelEStructuralFeature());
+ }
+ }
+ if (propName != null) {
+ keyElement.addAttribute("property-ref", propName);
+ } else {
+ log.warn("No property found for the referencedColumnName "
+ + colName + " and EReference "
+ + per.getModelElement().getName());
+ }
+ }
+
+ // bz247939, after disabling these lines it all seemed to work fine
+ // if (joinColumn.getTable() != null) {
+ // log.error("Unsupported secondary table in " + joinColumn);
+ // throw new MappingException("Unsupported secondary table",
+ // joinColumn);
+ // }
+
+ if (joinColumn.getColumnDefinition() != null) {
+ log.error("Unsupported column definition in " + joinColumn);
+ throw new MappingException("Unsupported column definition",
+ joinColumn);
+ }
+ }
+ // TODO jc.getReferencedColumnName();
+ }
+
+ /**
+ * Adds a jointable and possible joincolumns to the passed key element.
+ *
+ * @param collElement
+ * @param joinTable
+ */
+ protected void addJoinTable(HbAnnotatedETypeElement hbAnnotatedElement,
+ Element collElement, Element keyElement, JoinTable joinTable) {
+ if (joinTable == null) {
+ log.debug("No joinTable");
+ return;
+ }
+ if (joinTable.getCatalog() != null) {
+ collElement.addAttribute("catalog", joinTable.getCatalog());
+ }
+ if (joinTable.getSchema() != null) {
+ collElement.addAttribute("schema", joinTable.getSchema());
+ }
+ if (joinTable.getName() != null) {
+ collElement.addAttribute("table",
+ getHbmContext().trunc(joinTable, joinTable.getName()));
+ }
+ if (joinTable.getUniqueConstraints().size() > 0) {
+ log.error("Unsupported unique constraints in " + joinTable);
+ throw new MappingException("Unsupported unique constraints",
+ joinTable);
+ }
+ addKeyColumns(hbAnnotatedElement, keyElement,
+ joinTable.getJoinColumns()/*
+ * == null ? new ArrayList() :
+ * (List)joinTable. getJoinColumns
+ * ().getValue()
+ */);
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/AbstractMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/AbstractMapper.java
new file mode 100755
index 000000000..37f536660
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/AbstractMapper.java
@@ -0,0 +1,971 @@
+/**
+ * <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 Brian
+ * Vetter </copyright> $Id: AbstractMapper.java,v 1.55 2011/03/17 09:21:35 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.annotations.pannotation.EnumType;
+import org.eclipse.emf.teneo.annotations.pannotation.Enumerated;
+import org.eclipse.emf.teneo.annotations.pannotation.External;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.PannotationFactory;
+import org.eclipse.emf.teneo.annotations.pannotation.TemporalType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Any;
+import org.eclipse.emf.teneo.hibernate.hbannotation.AnyMetaDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Cache;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Filter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenerationTime;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbCascadeType;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbannotationFactory;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OnDelete;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+import org.eclipse.emf.teneo.mapping.strategy.EntityNameStrategy;
+import org.eclipse.emf.teneo.simpledom.Element;
+import org.eclipse.emf.teneo.util.EcoreDataTypes;
+import org.eclipse.emf.teneo.util.StoreUtil;
+
+/**
+ * Base class for all mapping classes. Provides access to the hbmcontext.
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public abstract class AbstractMapper {
+ /** The list of types which translate to a hibernate types */
+ private static final String[] TEMPORAL_TYPE_NAMES;
+
+ /** Initialize TEMPORAL_TYPE_NAMES */
+ static {
+ TEMPORAL_TYPE_NAMES = new String[TemporalType.VALUES.size()];
+ TEMPORAL_TYPE_NAMES[TemporalType.DATE.getValue()] = "date";
+ TEMPORAL_TYPE_NAMES[TemporalType.TIME.getValue()] = "time";
+ TEMPORAL_TYPE_NAMES[TemporalType.TIMESTAMP.getValue()] = "timestamp";
+ }
+
+ /** Returns the correct temporal type for hibernate */
+ private static String hbType(TemporalType temporalType) {
+ return TEMPORAL_TYPE_NAMES[temporalType != null ? temporalType
+ .getValue() : TemporalType.TIMESTAMP.getValue()];
+ }
+
+ /** logs it all */
+ // private static final Log log = LogFactory.getLog(AbstractMapper.class);
+ /** return the opposite of an association */
+ protected PAnnotatedEReference getOtherSide(PAnnotatedEReference paReference) {
+ // TODO assuming that mappedBy coincide with opposite, check in
+ // validation
+ if (paReference.getModelEReference().getEOpposite() == null) {
+ return null;
+ }
+ return paReference.getPaModel().getPAnnotated(
+ paReference.getModelEReference().getEOpposite());
+ }
+
+ /** The mapping context of this mapping action */
+ protected MappingContext hbmContext;
+
+ /**
+ * @return The mapping context used by this mapper
+ */
+ protected MappingContext getHbmContext() {
+ return hbmContext;
+ }
+
+ /** Set the hbm context */
+ protected void setHbmContext(MappingContext hbmContext) {
+ this.hbmContext = hbmContext;
+ }
+
+ protected void addAccessor(Element element, String propertyHandler) {
+ if (propertyHandler != null && propertyHandler.length() > 0) {
+ element.addAttribute("access", hbmContext.getPropertyHandlerName());
+ }
+ }
+
+ protected void addAccessor(Element element) {
+ addAccessor(element, hbmContext.getPropertyHandlerName());
+ }
+
+ protected void setType(PAnnotatedEStructuralFeature paFeature,
+ Element propElement) {
+ if (paFeature instanceof PAnnotatedEAttribute) {
+ setType((PAnnotatedEAttribute) paFeature, propElement);
+ } else {
+ setType((PAnnotatedEReference) paFeature, propElement);
+ }
+ }
+
+ /** Handles the External annotation */
+ protected void setType(PAnnotatedEReference paReference, Element propElement) {
+ final External external = paReference.getExternal();
+ if (external == null) {
+ throw new MappingException(
+ "External annotation not set on eReference "
+ + StoreUtil.toString(paReference
+ .getModelEReference()));
+ }
+
+ final Element typeElement = propElement.addElement("type");
+ if (external.getType() == null) { // standard external
+ typeElement.addAttribute("name", getHbmContext()
+ .getExternalUserType());
+ } else {
+ typeElement.addAttribute("name", external.getType());
+ }
+ typeElement
+ .addElement("param")
+ .addAttribute("name", HbMapperConstants.ECLASS_NAME_META)
+ .addText(
+ paReference.getModelEReference().getEReferenceType()
+ .getName());
+ typeElement
+ .addElement("param")
+ .addAttribute("name", HbMapperConstants.EPACKAGE_PARAM)
+ .addText(
+ paReference.getModelEReference().getEReferenceType()
+ .getEPackage().getNsURI());
+
+ }
+
+ /** Handles the type or typedef annotations */
+ protected void setType(PAnnotatedEAttribute paAttribute, Element propElement) {
+
+ // handle the type annotation
+ final HbAnnotatedEAttribute hea = (HbAnnotatedEAttribute) paAttribute;
+ final EDataType ed = (EDataType) hea.getModelEAttribute().getEType();
+ final HbAnnotatedEDataType hed = (HbAnnotatedEDataType) hea
+ .getPaModel().getPAnnotated(ed);
+
+ final String name;
+ final List<Parameter> params;
+ if (hea.getHbType() != null) {
+ name = hea.getHbType().getType();
+ params = hea.getHbType().getParameters();
+ } else if (hed != null && hed.getHbType() != null) {
+ name = hed.getHbType().getType();
+ params = hed.getHbType().getParameters();
+ } else if (hed != null && hed.getHbTypeDef() != null) {
+ name = hed.getHbTypeDef().getName();
+ params = null;
+ } else {
+ name = null;
+ params = null;
+ }
+ if (name != null) {
+ if (params == null || params.isEmpty()) {
+ // simple
+ propElement.addAttribute("type", name);
+ } else {
+ final Element typeElement = propElement.addElement("type")
+ .addAttribute("name", name);
+ for (Parameter param : params) {
+ typeElement.addElement("param")
+ .addAttribute("name", param.getName())
+ .addText(param.getValue());
+ }
+ }
+ } else if (paAttribute.getEnumerated() != null) {
+ handleEnumType(paAttribute, propElement);
+ } else if (StoreUtil.isQName(paAttribute.getModelEAttribute())) {
+ propElement.addAttribute("type",
+ "org.eclipse.emf.teneo.hibernate.mapping.QNameUserType");
+ } else {
+ final String hType = hbType(paAttribute);
+ if (hType != null) {
+ propElement.addAttribute("type", hType);
+ } else {
+ final Element typeElement = propElement.addElement("type")
+ .addAttribute("name", hbmContext.getDefaultUserType());
+ typeElement
+ .addElement("param")
+ .addAttribute("name", HbMapperConstants.EDATATYPE_PARAM)
+ .addText(
+ paAttribute.getModelEAttribute()
+ .getEAttributeType().getName());
+ typeElement
+ .addElement("param")
+ .addAttribute("name", HbMapperConstants.EPACKAGE_PARAM)
+ .addText(
+ paAttribute.getModelEAttribute().getEType()
+ .getEPackage().getNsURI());
+ }
+ }
+ }
+
+ /** Handle the enum type */
+ private void handleEnumType(PAnnotatedEAttribute paAttribute,
+ Element propElement) {
+ final Enumerated enumerated = paAttribute.getEnumerated();
+ assert (enumerated != null);
+ final EAttribute eattr = paAttribute.getModelEAttribute();
+ final EClassifier eclassifier = eattr.getEType();
+ if (!getHbmContext().isGeneratedByEMF()
+ && getHbmContext().getInstanceClass(eclassifier) != null) {
+ final Class<?> instanceClass = getHbmContext().getInstanceClass(
+ eclassifier);
+ final Element typeElement = propElement.addElement("type")
+ .addAttribute("name", getEnumUserType(enumerated));
+ typeElement.addElement("param")
+ .addAttribute("name", HbMapperConstants.ENUM_CLASS_PARAM)
+ .addText(instanceClass.getName());
+ typeElement.addElement("param")
+ .addAttribute("name", HbMapperConstants.ECLASSIFIER_PARAM)
+ .addText(eclassifier.getName());
+ typeElement.addElement("param")
+ .addAttribute("name", HbMapperConstants.EPACKAGE_PARAM)
+ .addText(eclassifier.getEPackage().getNsURI());
+ } else if (getHbmContext().isGeneratedByEMF()
+ && eclassifier.getInstanceClass() != null) {
+ final Element typeElement = propElement.addElement("type")
+ .addAttribute("name", getEnumUserType(enumerated));
+ typeElement.addElement("param")
+ .addAttribute("name", HbMapperConstants.ENUM_CLASS_PARAM)
+ .addText(eclassifier.getInstanceClass().getName());
+ typeElement.addElement("param")
+ .addAttribute("name", HbMapperConstants.ECLASSIFIER_PARAM)
+ .addText(eclassifier.getName());
+ typeElement.addElement("param")
+ .addAttribute("name", HbMapperConstants.EPACKAGE_PARAM)
+ .addText(eclassifier.getEPackage().getNsURI());
+ } else { // must be emf dynamic
+ final Element typeElement = propElement.addElement("type")
+ .addAttribute("name", hbDynamicEnumType(enumerated));
+ typeElement.addElement("param")
+ .addAttribute("name", HbMapperConstants.ECLASSIFIER_PARAM)
+ .addText(eclassifier.getName());
+ typeElement.addElement("param")
+ .addAttribute("name", HbMapperConstants.EPACKAGE_PARAM)
+ .addText(eclassifier.getEPackage().getNsURI());
+ }
+ }
+
+ // gather the pafeatures of the supertypes also
+ protected List<PAnnotatedEStructuralFeature> getAllFeatures(
+ PAnnotatedEClass componentAClass) {
+ final ArrayList<PAnnotatedEStructuralFeature> result = new ArrayList<PAnnotatedEStructuralFeature>();
+ result.addAll(componentAClass.getPaEStructuralFeatures());
+ for (EClass eClass : componentAClass.getModelEClass().getESuperTypes()) {
+ final PAnnotatedEClass aSuperClass = componentAClass.getPaModel()
+ .getPAnnotated(eClass);
+ if (aSuperClass != null) {
+ result.addAll(getAllFeatures(aSuperClass));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @return Returns the hibernate name for the given Ecore data type.
+ * @throws MappingException
+ * if no corresponding hb type is defined.
+ */
+ protected String hbType(PAnnotatedEAttribute paAttribute) {
+ final EAttribute eAttribute = paAttribute.getModelEAttribute();
+ final HbAnnotatedEDataType hed = (HbAnnotatedEDataType) paAttribute
+ .getPaModel().getPAnnotated(eAttribute.getEAttributeType());
+ final EDataType eDataType = paAttribute.getModelEAttribute()
+ .getEAttributeType();
+ if (hed != null && hed.getHbTypeDef() != null) {
+ return hed.getHbTypeDef().getName();
+ } else if (paAttribute.getLob() != null) {
+ if (EcoreDataTypes.INSTANCE.isByteArray(eDataType)) {
+ return "binary";
+ } else if (EcoreDataTypes.INSTANCE.isEString(eDataType)) {
+ return "text";
+ } else {
+ throw new MappingException(
+ "Lob annotations can only be used with Strings or byte arrays. "
+ + "Attribute is of type: " + eDataType);
+ }
+ } else if (EcoreDataTypes.INSTANCE.isEWrapper(eDataType)
+ || EcoreDataTypes.INSTANCE.isEPrimitive(eDataType)) {
+ return eDataType.getInstanceClassName();
+ } else if (EcoreDataTypes.INSTANCE.isEString(eDataType)) {
+ return eDataType.getInstanceClassName();
+ } else if (EcoreDataTypes.INSTANCE.isEDateTime(eDataType)
+ || (paAttribute.getTemporal() != null && paAttribute
+ .getTemporal().getValue().getValue() == TemporalType.TIMESTAMP_VALUE)) {
+ return getEDateTimeClass(paAttribute);
+ } else if (EcoreDataTypes.INSTANCE.isETime(eDataType)
+ || (paAttribute.getTemporal() != null && paAttribute
+ .getTemporal().getValue().getValue() == TemporalType.TIME_VALUE)) {
+ return getETimeClass(paAttribute);
+ } else if (EcoreDataTypes.INSTANCE.isEDuration(eDataType)) {
+ return hbmContext.getDurationType();
+ } else if (EcoreDataTypes.INSTANCE.isEDate(eDataType, getHbmContext()
+ .getPersistenceOptions())
+ || (paAttribute.getTemporal() != null && paAttribute
+ .getTemporal().getValue().getValue() == TemporalType.DATE_VALUE)) {
+ return getEDateClass(paAttribute);
+ } else if (eDataType.getInstanceClass() != null
+ && eDataType.getInstanceClass() == Object.class) {
+ // null forces caller to use usertype
+ return null; // "org.eclipse.emf.teneo.hibernate.mapping.DefaultToStringUserType";
+ // } else if (eDataType.getInstanceClass() != null) {
+ // return eDataType.getInstanceClassName();
+ } else {
+ final String result = EcoreDataTypes.INSTANCE
+ .getTargetTypeName(paAttribute);
+ if (result.compareTo(Object.class.getName()) == 0) {
+ // all edatatypes are translatable to a string, done by caller
+ return null; // "org.eclipse.emf.teneo.hibernate.mapping.DefaultToStringUserType";
+ }
+ return result;
+ }
+ }
+
+ /** Returns the type name of a many attribute */
+ protected String getTargetTypeName(PAnnotatedEAttribute aAttribute) {
+ final EAttribute eAttribute = aAttribute.getModelEAttribute();
+ // check on equality on object.class is used for listunion simpleunions
+ final Class<?> instanceClass = eAttribute.getEAttributeType()
+ .getInstanceClass();
+ if (instanceClass != null && !Object.class.equals(instanceClass)
+ && !List.class.equals(instanceClass)) {
+ if (instanceClass.isArray()) {
+ // get rid of the [] at the end
+ return eAttribute
+ .getEType()
+ .getInstanceClassName()
+ .substring(
+ 0,
+ eAttribute.getEType().getInstanceClassName()
+ .length() - 2);
+ }
+ return instanceClass.getName();
+ } else {
+ // the type is hidden somewhere deep get it
+ // the edatatype is the java.util.list
+ // it has an itemType which is the name of the element edatatype
+ // which contains the instanceclass
+ // takes also into account inheritance between datatypes
+ // NOTE the otm.targetentity can consist of a comma delimited list
+ // of target
+ // entities this is required for listunion types but is not
+ // according to the ejb3 spec!
+ ArrayList<EClassifier> eclassifiers = EcoreDataTypes.INSTANCE
+ .getItemTypes((EDataType) eAttribute.getEType());
+ if (eclassifiers.size() > 0) {
+ StringBuffer result = new StringBuffer();
+ for (int i = 0; i < eclassifiers.size(); i++) {
+ final EClassifier eclassifier = eclassifiers.get(i);
+ if (i > 0) {
+ result.append(",");
+ }
+ result.append(eclassifier.getInstanceClassName());
+ }
+ return result.toString();
+ } else {
+ return Object.class.getName();
+ }
+ }
+ }
+
+ /**
+ * Returns the correct enum primitive hibernate type, for Elver this is a
+ * hibernate user type.
+ */
+ public String getEnumUserType(Enumerated enumerated) {
+ if (EnumType.STRING == enumerated.getValue()) {
+ return getHbmContext().getEnumUserType();
+ } else {
+ return getHbmContext().getEnumIntegerUserType();
+ }
+ }
+
+ /**
+ * Returns the correct enum primitive hibernate type, for Elver this is a
+ * hibernate user type.
+ */
+ protected String hbDynamicEnumType(Enumerated enumerated) {
+ if (EnumType.STRING == enumerated.getValue()) {
+ return getHbmContext().getDynamicEnumUserType();
+ } else {
+ return getHbmContext().getDynamicEnumIntegerUserType();
+ }
+ }
+
+ /*
+ * @return The name of the java class needed to map the date type
+ */
+ public String getEDateClass(PAnnotatedEAttribute paAttribute) {
+ final EDataType eDataType = paAttribute.getModelEAttribute()
+ .getEAttributeType();
+
+ assert (EcoreDataTypes.INSTANCE.isEDate(eDataType, getHbmContext()
+ .getPersistenceOptions()));
+
+ if (XMLTypePackage.eINSTANCE.getDate().equals(eDataType)) {
+ return getHbmContext().getXSDDateUserType();
+ }
+
+ if (paAttribute.getTemporal() != null) {
+ final TemporalType tt = paAttribute.getTemporal().getValue();
+ return hbType(tt);
+ }
+
+ // only override if the user did not specify a more specific class
+ if (EcoreDataTypes.INSTANCE.isEDate(eDataType, getHbmContext()
+ .getPersistenceOptions())) {
+ // EMF returns an XSD Date type as an Object instance. go figure.
+ // note that I would prefer to use the class instance to get the
+ // name
+ // but for other reasons I do not want to have references to the
+ // org.eclipse.emf.teneo.hibernate plugin.
+ return getHbmContext().getXSDDateUserType();
+ }
+
+ // TODO: should it not use the eDataType.getInstanceClass()? Hmm if the
+ // user
+ // really wants a different mapping he/she should use maybe a usertype??
+ return Date.class.getName();
+ }
+
+ /*
+ * @return The name of the java class needed to map the time type
+ */
+ public String getETimeClass(PAnnotatedEAttribute paAttribute) {
+ final EDataType eDataType = paAttribute.getModelEAttribute()
+ .getEAttributeType();
+
+ if (XMLTypePackage.eINSTANCE.getTime().equals(eDataType)) {
+ return getHbmContext().getXSDTimeUserType();
+ }
+
+ if (paAttribute.getTemporal() != null) {
+ final TemporalType tt = paAttribute.getTemporal().getValue();
+ return hbType(tt);
+ }
+
+ // bugzilla 277546
+ if (eDataType.getInstanceClass() != null
+ && Timestamp.class.isAssignableFrom(eDataType
+ .getInstanceClass())) {
+ return eDataType.getInstanceClass().getName();
+ }
+
+ if (EcoreDataTypes.INSTANCE.isETime(eDataType)) {
+ // EMF returns an XSD Date type as an Object instance. go figure.
+ // note that I would prefer to use the class instance to get the
+ // name
+ // but for other reasons I do not want to have references to the
+ // org.eclipse.emf.teneo.hibernate plugin.
+ return getHbmContext().getXSDTimeUserType();
+ }
+
+ // TODO: should it not use the eDataType.getInstanceClass()? Hmm if the
+ // user
+ // really wants a different mapping he/she should use maybe a usertype??
+ return Timestamp.class.getName();
+ }
+
+ /*
+ * @return The name of the java class needed to map the datetime/timestamp
+ * type
+ */
+ public String getEDateTimeClass(PAnnotatedEAttribute paAttribute) {
+ final EDataType eDataType = paAttribute.getModelEAttribute()
+ .getEAttributeType();
+
+ assert (EcoreDataTypes.INSTANCE.isEDateTime(eDataType));
+
+ if (XMLTypePackage.eINSTANCE.getDateTime().equals(eDataType)) {
+ return getHbmContext().getXSDDateTimeUserType();
+ }
+
+ if (paAttribute.getTemporal() != null) {
+ final TemporalType tt = paAttribute.getTemporal().getValue();
+ return hbType(tt);
+ }
+
+ // bugzilla 277546
+ if (eDataType.getInstanceClass() != null
+ && Date.class.isAssignableFrom(eDataType.getInstanceClass())) {
+ return eDataType.getInstanceClass().getName();
+ }
+
+ if (EcoreDataTypes.INSTANCE.isEDateTime(eDataType)) {
+ // EMF returns an XSD Date type as an Object instance. go figure.
+ // note that I would prefer to use the class instance to get the
+ // name
+ // but for other reasons I do not want to have references to the
+ // org.eclipse.emf.teneo.hibernate plugin.
+ return getHbmContext().getXSDDateTimeUserType();
+ }
+
+ // TODO: should it not use the eDataType.getInstanceClass()? Hmm if the
+ // user
+ // really wants a different mapping he/she should use maybe a usertype??
+ return Timestamp.class.getName();
+ }
+
+ /**
+ * Returns the (possibly overridden) JoinColumns annotations for the given
+ * reference or an empty list if no JoinColumns were defined.
+ */
+ protected List<JoinColumn> getJoinColumns(PAnnotatedEReference paReference) {
+ List<JoinColumn> joinColumns = getHbmContext().getAssociationOverrides(
+ paReference);
+ if (joinColumns == null) {
+ joinColumns = paReference.getJoinColumns();
+ }
+ if (joinColumns == null) {
+ return new ArrayList<JoinColumn>();
+ }
+ return joinColumns;
+ }
+
+ /** Adds a cache element */
+ protected void addCacheElement(Element parent, Cache cache) {
+ // translate to hibernate specific notation
+ final String usage = cache.getUsage().getName().toLowerCase()
+ .replaceAll("_", "-");
+
+ Element cacheElement = parent.addElement("cache").addAttribute("usage",
+ usage);
+ if (cache.getRegion() != null) {
+ cacheElement.addAttribute("region", cache.getRegion());
+ }
+ if (cache.getInclude() != null) {
+ cacheElement.addAttribute("include", cache.getInclude());
+ }
+ parent.remove(cacheElement);
+ parent.add(0, cacheElement);
+ }
+
+ /** Same as above only handles multiple columns */
+ protected void addColumnsAndFormula(Element propertyElement,
+ PAnnotatedEStructuralFeature pef, List<Column> columns,
+ boolean isNullable, boolean setColumnAttributesInProperty) {
+ addColumnsAndFormula(propertyElement, pef, columns, isNullable,
+ setColumnAttributesInProperty, false, false);
+ }
+
+ /** Same as above only handles multiple columns */
+ protected void addColumnsAndFormula(Element propertyElement,
+ PAnnotatedEStructuralFeature pef, List<Column> columns,
+ boolean isNullable, boolean setColumnAttributesInProperty,
+ boolean isUnique, boolean isIdProperty) {
+ // if no columns set then use some default
+ final HbAnnotatedETypeElement hbFeature = (HbAnnotatedETypeElement) pef;
+ if (columns.isEmpty() && hbFeature.getFormula() == null) {
+ final Column col = PannotationFactory.eINSTANCE.createColumn();
+ col.setName(getColumnName(pef));
+ col.setNullable(isNullable);
+ if (isIdProperty) {
+ col.setUnique(false);
+ } else {
+ col.setUnique(isUnique);
+ }
+
+ if (pef instanceof HbAnnotatedEAttribute
+ && ((HbAnnotatedEAttribute) pef).getGenerated() != null
+ && ((HbAnnotatedEAttribute) pef).getGenerated().getValue() != null
+ && ((HbAnnotatedEAttribute) pef).getGenerated().getValue() != GenerationTime.NEVER) {
+ col.setInsertable(false);
+ col.setUpdatable(false);
+ }
+
+ columns.add(col);
+ }
+ // if only one id column then it is not nullable!
+ if (isIdProperty && columns.size() == 1
+ && pef.getPaEClass().getIdClass() == null) {
+ columns.get(0).setNullable(false);
+ // set to false, see bugzilla 280169
+ columns.get(0).setUnique(false);
+ }
+
+ for (Column column : columns) {
+ addColumn(propertyElement, pef, column, isNullable,
+ setColumnAttributesInProperty);
+ }
+
+ // do the formula part
+ if (hbFeature.getFormula() != null) {
+ propertyElement.addElement("formula").addText(
+ hbFeature.getFormula().getValue());
+ }
+ }
+
+ protected String getColumnName(PAnnotatedEStructuralFeature pef) {
+ if (getHbmContext().getEmbeddingFeature() != null) { // embedded
+ // TODO: check illegal, embedded component can not really have an id
+ final PAnnotatedEStructuralFeature embeddingFeature = getHbmContext()
+ .getEmbeddingFeature();
+ return getHbmContext().getSqlNameStrategy().getColumnName(pef,
+ embeddingFeature.getModelEStructuralFeature().getName());
+ } else {
+ return getHbmContext().getSqlNameStrategy()
+ .getColumnName(pef, null);
+ }
+ }
+
+ /**
+ * Add a comment element, if the eModelElement has documentation, returns
+ * the comment element
+ */
+ protected Element addCommentElement(EModelElement eModelElement,
+ Element hbmElement) {
+ if (hbmContext.getMaximumCommentLength() == 0) {
+ return null;
+ }
+ final String commentData = EcoreUtil.getDocumentation(eModelElement);
+ if (commentData != null) {
+ final Element comment = hbmElement.addElement("comment");
+ String commentText = commentData.replace('\'', ' ').replace('"',
+ ' ');
+ if (commentText.length() > hbmContext.getMaximumCommentLength()) {
+ commentText = commentText.substring(0,
+ hbmContext.getMaximumCommentLength());
+ }
+ comment.addText(commentText);
+ return comment;
+ }
+ return null;
+ }
+
+ /** Adds anytype columns */
+ protected List<Column> getAnyTypeColumns(String featureName,
+ boolean isNullable) {
+ final ArrayList<Column> result = new ArrayList<Column>();
+ final Column typeColumn = PannotationFactory.eINSTANCE.createColumn();
+ typeColumn.setName(hbmContext.trunc(null, featureName + "_type"));
+ typeColumn.setNullable(isNullable);
+ result.add(typeColumn);
+ final Column idColumn = PannotationFactory.eINSTANCE.createColumn();
+ idColumn.setName(hbmContext.trunc(null, featureName + "_id"));
+ idColumn.setNullable(isNullable);
+ result.add(idColumn);
+ return result;
+ }
+
+ /**
+ * Returns the (possibly overridden) columns annotation for the given
+ * attribute.
+ */
+ protected List<Column> getColumns(PAnnotatedEStructuralFeature paFeature) {
+ final Column defaultColumn = paFeature.getColumn();
+ final Column oc = getHbmContext().getAttributeOverride(paFeature);
+
+ if (oc != null) {
+ final ArrayList<Column> result = new ArrayList<Column>();
+ result.add(oc);
+ return result;
+ }
+ // try multiple columns
+ final HbAnnotatedETypeElement hae = (HbAnnotatedETypeElement) paFeature;
+ if (hae.getHbColumns().size() > 0) {
+ return hae.getHbColumns();
+ }
+ final ArrayList<Column> result = new ArrayList<Column>();
+ if (defaultColumn != null) {
+ result.add(defaultColumn);
+ }
+ return result;
+ }
+
+ /** Sets property attributes on the basis of the column */
+ private void addColumn(Element propertyElement,
+ PAnnotatedEStructuralFeature pef, Column column,
+ boolean isNullable, boolean setColumnAttributesInProperty) {
+ if (column != null) {
+ if (setColumnAttributesInProperty) {
+ // this is not the nicest place to do this
+ if (propertyElement.getName().compareTo("property") == 0
+ || propertyElement.getName().compareTo("many-to-one") == 0) {
+ propertyElement.addAttribute("insert",
+ column.isInsertable() ? "true" : "false");
+ propertyElement.addAttribute("update",
+ column.isUpdatable() ? "true" : "false");
+ }
+ // MT: I think that the column nullability should not be used
+ // for setting not-null
+ // on the property, this is already specified by the optional
+ // attribute on the
+ // basic annotation. Maybe a check can be used instead to detect
+ // inconsistenties
+ // in the column attributes and the basic ann.
+ // Note that the ejb3 spec says that optional should be
+ // disregarded for primitive
+ // types which I
+ // do not understand.
+ // I disabled it for now to ignore for the test cases.
+ // MT05032006: After some more thought the column nullability
+ // can be used in case of
+ // single table inheritance mapping
+ if (!propertyElement.getName().equals("any")) {
+ propertyElement.addAttribute("not-null", isNullable
+ || column.isNullable() ? "false" : "true");
+ }
+ propertyElement.addAttribute("unique",
+ column.isUnique() ? "true" : "false");
+ }
+ addColumnElement(propertyElement, pef, column, isNullable);
+ }
+ }
+
+ protected void mapFilter(Element parentElement, List<Filter> filters) {
+ for (Filter filter : filters) {
+ final Element filterElement = parentElement.addElement("filter");
+ filterElement.addAttribute("name", filter.getName());
+ if (filter.getCondition() != null) {
+ filterElement.addAttribute("condition", filter.getCondition());
+ }
+ }
+ }
+
+ /**
+ * Creates cascades for onetoone/manytoone, they differ from many relations
+ * because no delete-orphan is supported.
+ *
+ * @param associationElement
+ * : the element to which the cascades are added.
+ * @param cascade
+ * : list of cascade annotation types
+ * @param addDeleteOrphan
+ * : if true then delete-orphan is added in case of cascade all
+ */
+ protected void addCascades(Element associationElement,
+ List<HbCascadeType> cascades, boolean addDeleteOrphan) {
+ if (!cascades.isEmpty()) {
+ StringBuffer sb = new StringBuffer();
+ for (HbCascadeType cascade : cascades) {
+ if (cascade == HbCascadeType.ALL) {
+ sb.append("all,"); // assuming all appears alone
+ if (addDeleteOrphan) {
+ // note comma at the end is trimmed off below
+ sb.append("delete-orphan,");
+ }
+ break;
+ } else if (cascade == HbCascadeType.PERSIST) {
+ sb.append("persist,");
+ } else if (cascade == HbCascadeType.MERGE) {
+ sb.append("merge,");
+ } else if (cascade == HbCascadeType.REFRESH) {
+ sb.append("refresh,");
+ } else if (cascade == HbCascadeType.REMOVE) {
+ sb.append("delete,");
+ } else if (cascade == HbCascadeType.DELETE) {
+ sb.append("delete,");
+ } else if (cascade == HbCascadeType.DELETE_ORPHAN) {
+ sb.append("delete-orphan,");
+ } else if (cascade == HbCascadeType.EVICT) {
+ sb.append("evict,");
+ } else if (cascade == HbCascadeType.LOCK) {
+ sb.append("lock,");
+ } else if (cascade == HbCascadeType.REPLICATE) {
+ sb.append("replicate,");
+ } else if (cascade == HbCascadeType.SAVE_UPDATE) {
+ sb.append("save-update,");
+ } else {
+ throw new MappingException("Cascade " + cascade.getName()
+ + " not supported");
+ }
+ }
+ associationElement.addAttribute("cascade",
+ sb.substring(0, sb.length() - 1));
+ }
+ }
+
+ /**
+ * Create an any Element
+ */
+ public Element createAny(String name,
+ PAnnotatedEStructuralFeature paFeature, Any any,
+ AnyMetaDef anyMetaDef, boolean isMany) {
+
+ final AnyMetaDef localAnyMetaDef;
+ if (anyMetaDef == null) {
+ localAnyMetaDef = HbannotationFactory.eINSTANCE.createAnyMetaDef();
+ localAnyMetaDef.setIdType("long");
+ } else {
+ localAnyMetaDef = anyMetaDef;
+ }
+ final Any localAny;
+ if (any == null) {
+ localAny = HbannotationFactory.eINSTANCE.createAny();
+ } else {
+ localAny = any;
+ }
+
+ final String tagName;
+ if (isMany) {
+ tagName = "many-to-any";
+ } else {
+ tagName = "any";
+ }
+
+ // don't know how to create an element, so add an remove it...
+ final Element anyElement = getHbmContext().getCurrent()
+ .addElement(tagName)
+ .addAttribute("id-type", localAnyMetaDef.getIdType())
+ .addAttribute("meta-type", localAnyMetaDef.getMetaType());
+ getHbmContext().getCurrent().remove(anyElement);
+
+ if (!isMany) {
+ anyElement.addAttribute("name", name);
+ final List<HbCascadeType> cascades = new ArrayList<HbCascadeType>();
+ if (paFeature instanceof HbAnnotatedEReference) {
+ if (((HbAnnotatedEReference) paFeature).getHbCascade() == null) {
+ cascades.add(HbCascadeType.ALL);
+ } else {
+ cascades.addAll(((HbAnnotatedEReference) paFeature)
+ .getHbCascade().getValue());
+ }
+ } else {
+ cascades.add(HbCascadeType.ALL);
+ }
+ addCascades(anyElement, cascades, isMany);
+ }
+
+ final List<Column> columns = new ArrayList<Column>();
+ if (localAny.getMetaColumn() != null) {
+ columns.add(localAny.getMetaColumn());
+ } else {
+ final Column typeColumn = PannotationFactory.eINSTANCE
+ .createColumn();
+ // bugzilla 294201, trunc is also done later in addColumn
+ // typeColumn.setName(hbmContext.trunc(paFeature.getModelEStructuralFeature().getName()
+ // + "_type"));
+ typeColumn.setName(paFeature.getModelEStructuralFeature().getName()
+ + "_type");
+ typeColumn.setNullable(localAny.isOptional());
+ columns.add(typeColumn);
+ }
+
+ if (paFeature.getColumn() != null) {
+ columns.add(paFeature.getColumn());
+ } else {
+ final Column idColumn = PannotationFactory.eINSTANCE.createColumn();
+ // bugzilla 294201, trunc is also done later in addColumn
+ // idColumn.setName(hbmContext.trunc(paFeature.getModelEStructuralFeature().getName()
+ // + "_id"));
+ idColumn.setName(paFeature.getModelEStructuralFeature().getName()
+ + "_id");
+ idColumn.setNullable(localAny.isOptional());
+ columns.add(idColumn);
+ }
+ addColumnsAndFormula(anyElement, paFeature, columns, paFeature
+ .getModelEStructuralFeature().isRequired(), false);
+ return anyElement;
+ }
+
+ /**
+ * Add a columnelement to the property, takes into account length, precision
+ * etc. forceNullable is set when the feature belongs to a featuremap
+ */
+ private void addColumnElement(Element propertyElement,
+ PAnnotatedEStructuralFeature pef, Column column,
+ boolean forceNullable) {
+ if (column != null) {
+ Element columnElement = propertyElement
+ .addElement("column")
+ .addAttribute(
+ "not-null",
+ column.isNullable() || forceNullable ? "false"
+ : "true")
+ .addAttribute("unique",
+ column.isUnique() ? "true" : "false");
+ final String name;
+ if (column.getName() != null) {
+ name = column.getName();
+ } else {
+ if (getHbmContext().getEmbeddingFeature() != null) { // embedded
+ // TODO: check illegal, embedded component can not really
+ // have an id
+ final PAnnotatedEStructuralFeature embeddingFeature = getHbmContext()
+ .getEmbeddingFeature();
+ name = getHbmContext().getSqlNameStrategy().getColumnName(
+ pef,
+ embeddingFeature.getModelEStructuralFeature()
+ .getName());
+ } else {
+ name = getHbmContext().getSqlNameStrategy().getColumnName(
+ pef, null);
+ }
+ }
+ if (column.getUniqueKey() != null) {
+ columnElement.addAttribute("unique-key", column.getUniqueKey());
+ }
+ columnElement.addAttribute("name",
+ getHbmContext().trunc(column, name));
+ if (column.isSetLength()) {
+ columnElement.addAttribute("length",
+ Integer.toString(column.getLength()));
+ }
+ if (column.isSetPrecision()) {
+ columnElement.addAttribute("precision",
+ Integer.toString(column.getPrecision()));
+ }
+ if (column.isSetScale()) {
+ columnElement.addAttribute("scale",
+ Integer.toString(column.getScale()));
+ }
+ if (column.getColumnDefinition() != null) {
+ columnElement.addAttribute("sql-type",
+ column.getColumnDefinition());
+ }
+ final String uc = getHbmContext().getUniqueConstraintKey(name);
+ if (uc != null) {
+ columnElement.addAttribute("unique-key", uc);
+ }
+ if (pef instanceof HbAnnotatedETypeElement
+ && ((HbAnnotatedETypeElement) pef).getHbIndex() != null) {
+ final Index index = ((HbAnnotatedETypeElement) pef)
+ .getHbIndex();
+ columnElement.addAttribute("index", index.getName());
+ }
+
+ // --- JJH, adapted by MT
+ addCommentElement(pef.getModelElement(), columnElement);
+ // --- JJH
+ }
+ }
+
+ /** Add the ondelete mapping to the key */
+ protected void handleOndelete(Element keyElement, OnDelete onDelete) {
+ // if (true || onDelete == null) {
+ // return;
+ // }
+ //
+ // if (onDelete.getAction().equals(OnDeleteAction.CASCADE)) {
+ // keyElement.addAttribute("on-delete", "cascade");
+ // } else {
+ // keyElement.addAttribute("on-delete", "noaction");
+ // }
+ }
+
+ /** Returns true if the target is the general EObject type */
+ protected boolean isEObject(String typeName) {
+ if (typeName == null) {
+ return false;
+ }
+ return typeName.compareTo(EntityNameStrategy.EOBJECT_ECLASS_NAME) == 0;
+ }
+} \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/BasicMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/BasicMapper.java
new file mode 100755
index 000000000..ea3bd89db
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/BasicMapper.java
@@ -0,0 +1,293 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: BasicMapper.java,v 1.37 2010/02/04 11:03:49 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pannotation.Basic;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.annotations.pannotation.FetchType;
+import org.eclipse.emf.teneo.annotations.pannotation.ManyToOne;
+import org.eclipse.emf.teneo.annotations.pannotation.PannotationFactory;
+import org.eclipse.emf.teneo.annotations.pannotation.TemporalType;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Index;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+import org.eclipse.emf.teneo.simpledom.Element;
+
+/**
+ * Maps a basic element to its mapping Context.
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class BasicMapper extends AbstractMapper implements ExtensionPoint {
+
+ /** Log it all */
+ private static final Log log = LogFactory.getLog(BasicMapper.class);
+
+ /**
+ * Generate hb mapping for the given basic attribute.
+ */
+ public void processBasic(PAnnotatedEAttribute paAttribute) {
+ if (FeatureMapUtil.isFeatureMap(paAttribute.getModelEAttribute())) {
+ processFeatureMap(paAttribute);
+ return;
+ }
+ log.debug("processBasic " + paAttribute.getModelEAttribute().getName());
+
+ final EAttribute eattr = paAttribute.getModelEAttribute();
+ final String attrName = getHbmContext().getPropertyName(eattr);
+ final Element propElement = getHbmContext().getCurrent().addElement("property").addAttribute("name", attrName);
+
+ Basic basic = paAttribute.getBasic();
+ if (basic == null) {
+ basic = PannotationFactory.eINSTANCE.createBasic();
+ }
+
+ propElement.addAttribute("lazy", FetchType.LAZY.equals(basic.getFetch()) ? "true" : "false");
+ addColumnsAndFormula(propElement, paAttribute, getColumns(paAttribute), isNullable(basic, paAttribute), true);
+ // todo check: not-null is also set in the call to addcolumns, decide
+ // were to do what!
+ final boolean isNullable = isNullable(basic, paAttribute);
+ propElement.addAttribute("not-null", isNullable ? "false" : "true");
+ setType(paAttribute, propElement);
+
+ if (((HbAnnotatedEAttribute) paAttribute).getGenerated() != null
+ && ((HbAnnotatedEAttribute) paAttribute).getGenerated().getValue() != null) {
+ propElement.addAttribute("generated", ((HbAnnotatedEAttribute) paAttribute).getGenerated().getValue()
+ .getName().toLowerCase());
+ }
+
+ if (((HbAnnotatedEAttribute) paAttribute).getHbIndex() != null) {
+ final Index index = ((HbAnnotatedEAttribute) paAttribute).getHbIndex();
+ propElement.addAttribute("index", index.getName());
+ }
+
+ addAccessor(propElement);
+ addNaturalId((HbAnnotatedEAttribute) paAttribute, propElement);
+ }
+
+ public void processFeatureMap(PAnnotatedEAttribute paAttribute) {
+ if (getHbmContext().getPersistenceOptions().isMapFeatureMapAsComponent()) {
+ final String name = getHbmContext().getPropertyName(paAttribute.getModelEAttribute());
+ final FeatureMapMapping fmm = new FeatureMapMapping(getHbmContext(), paAttribute);
+ final Element element = getHbmContext().getCurrent().addElement("component").addAttribute("name", name);
+ fmm.setCompositeElement(element);
+ fmm.process();
+ } else {
+ FeatureMapMapping fmm = new FeatureMapMapping(getHbmContext(), paAttribute);
+ getHbmContext().addFeatureMapMapper(fmm);
+ final String name = getHbmContext().getPropertyName(paAttribute.getModelEAttribute());
+ getHbmContext().getCurrent().addElement("many-to-one").addAttribute("name", name).addAttribute(
+ "entity-name", fmm.getEntityName()).addAttribute("cascade", "all")
+ .addAttribute("not-null", "false");
+ }
+ }
+
+ /** Processes an EReference which should be stored as an URI */
+ public void processExternalEReference(PAnnotatedEReference paReference) {
+ log.debug("processExternal " + paReference.getModelEReference().getName());
+
+ final EReference eref = paReference.getModelEReference();
+ final String propName = getHbmContext().getPropertyName(eref);
+ final Element propElement = getHbmContext().getCurrent().addElement("property").addAttribute("name", propName);
+
+ ManyToOne mto = paReference.getManyToOne();
+ if (mto == null) {
+ mto = PannotationFactory.eINSTANCE.createManyToOne();
+ }
+
+ propElement.addAttribute("lazy", FetchType.LAZY.equals(mto.getFetch()) ? "true" : "false");
+ final boolean isNullable = isNullable(mto, paReference);
+ addColumnsAndFormula(propElement, paReference, getColumns(paReference), isNullable, true);
+ // todo check: not-null is also set in the call to addcolumns, decide
+ // were to do what!
+ propElement.addAttribute("not-null", isNullable ? "false" : "true");
+ setType(paReference, propElement);
+
+ if (((HbAnnotatedETypeElement) paReference).getHbIndex() != null) {
+ final Index index = ((HbAnnotatedETypeElement) paReference).getHbIndex();
+ propElement.addAttribute("index", index.getName());
+ }
+
+ addAccessor(propElement);
+ }
+
+ /**
+ * Generate hb mapping for the given temporal attribute.
+ */
+ public void processTemporal(PAnnotatedEAttribute paAttribute) {
+ log.debug("processTemporal " + paAttribute.getModelEAttribute().getName());
+
+ TemporalType tt = paAttribute.getTemporal().getValue();
+ final String attrName = getHbmContext().getPropertyName(paAttribute.getModelEAttribute());
+ log.debug("addProperty: " + attrName + " temporal " + tt.getName());
+
+ final Element propElement = getHbmContext().getCurrent().addElement("property").addAttribute("name", attrName);
+
+ Basic basic = paAttribute.getBasic();
+ if (basic == null) {
+ basic = PannotationFactory.eINSTANCE.createBasic();
+ }
+
+ propElement.addAttribute("lazy", FetchType.LAZY.equals(basic.getFetch()) ? "true" : "false");
+ addColumnsAndFormula(propElement, paAttribute, getColumns(paAttribute), isNullable(basic, paAttribute), true);
+ // todo check: not-null is also set in the call to addcolumns, decide
+ // were to do what!
+ propElement.addAttribute("not-null", isNullable(basic, paAttribute) ? "false" : "true");
+
+ if (((HbAnnotatedEAttribute) paAttribute).getGenerated() != null
+ && ((HbAnnotatedEAttribute) paAttribute).getGenerated().getValue() != null) {
+ propElement.addAttribute("generated", ((HbAnnotatedEAttribute) paAttribute).getGenerated().getValue()
+ .getName().toLowerCase());
+ }
+
+ // #191463
+ setType(paAttribute, propElement);
+
+ addAccessor(propElement);
+ addNaturalId((HbAnnotatedEAttribute) paAttribute, propElement);
+ }
+
+ /**
+ * Generate hb mapping for the given lob attribute.
+ */
+ public void processLob(PAnnotatedEAttribute paAttribute) {
+ final EAttribute eAttribute = paAttribute.getModelEAttribute();
+ log.debug("processLob " + eAttribute.getName());
+
+ final Element propElement = getHbmContext().getCurrent().addElement("property");
+ propElement.addAttribute("name", getHbmContext().getPropertyName(eAttribute));
+
+ Basic basic = paAttribute.getBasic();
+ if (basic == null) {
+ basic = PannotationFactory.eINSTANCE.createBasic();
+ }
+
+ propElement.addAttribute("lazy", FetchType.LAZY.equals(basic.getFetch()) ? "true" : "false");
+ addColumnsAndFormula(propElement, paAttribute, getColumns(paAttribute), isNullable(basic, paAttribute), true);
+ final boolean isNullable = isNullable(basic, paAttribute);
+// final boolean isNullable2 = isNullable(basic, paAttribute);
+ propElement.addAttribute("not-null", isNullable ? "false" : "true");
+ setType(paAttribute, propElement);
+
+ addAccessor(propElement);
+ addNaturalId((HbAnnotatedEAttribute) paAttribute, propElement);
+ }
+
+ /**
+ * Generate hb mapping for the given enum attribute.
+ */
+ public void processEnum(PAnnotatedEAttribute paAttribute) {
+ log.debug("processEnum " + paAttribute.getModelEAttribute());
+
+ Basic basic = paAttribute.getBasic();
+ if (basic == null) {
+ basic = PannotationFactory.eINSTANCE.createBasic();
+ }
+
+ final List<Column> columns = getColumns(paAttribute);
+ final Element propElement = getHbmContext().getCurrent().addElement("property").addAttribute("name",
+ getHbmContext().getPropertyName(paAttribute.getModelEAttribute()));
+ propElement.addAttribute("lazy", FetchType.LAZY.equals(basic.getFetch()) ? "true" : "false");
+ propElement.addAttribute("not-null", isNullable(basic, paAttribute) ? "false" : "true");
+ addColumnsAndFormula(propElement, paAttribute, columns, isNullable(basic, paAttribute)
+ || getHbmContext().isCurrentElementFeatureMap(), true);
+ setType(paAttribute, propElement);
+
+ addAccessor(propElement);
+ addNaturalId((HbAnnotatedEAttribute) paAttribute, propElement);
+ }
+
+ /**
+ * Generate hb mapping for the given version attribute.
+ */
+ public void processVersion(PAnnotatedEAttribute paAttribute) {
+ if (log.isDebugEnabled()) {
+ log.debug("Generating version for " + paAttribute.getModelEAttribute().getName());
+ }
+ final EAttribute eAttribute = paAttribute.getModelEAttribute();
+ final Element propElement = getHbmContext().getCurrent().addElement("version").addAttribute("name",
+ eAttribute.getName());
+ List<Column> columns = getColumns(paAttribute);
+ if (columns.size() > 1) {
+ log.warn("Version has more than one attribute, only using the first one, eclass: "
+ + paAttribute.getModelEAttribute().getEContainingClass().getName());
+ }
+ addColumnsAndFormula(propElement, paAttribute, columns, getHbmContext().isCurrentElementFeatureMap(), false);
+ setType(paAttribute, propElement);
+
+ addAccessor(propElement, hbmContext.getVersionPropertyHandlerName());
+ addNaturalId((HbAnnotatedEAttribute) paAttribute, propElement);
+ }
+
+ protected void addNaturalId(HbAnnotatedEAttribute hbAttr, Element element) {
+
+ if (hbAttr.getNaturalId() != null) {
+ element
+ .addAttribute(HbMapperConstants.NATURAL_ID_ATTR, Boolean
+ .toString(hbAttr.getNaturalId().isMutable()));
+ }
+
+ }
+
+ /**
+ * Ignore transient attributes.
+ */
+ public void processTransient(PAnnotatedEStructuralFeature paFeature) {
+ if (log.isDebugEnabled()) {
+ log.debug("Skipping transient feature for " + paFeature.getModelEStructuralFeature().getName());
+ }
+ }
+
+ /**
+ * A prop is nullable if the basic is optional or the feature is part of a featuremap. The last reason is because
+ * featuremapentries will have all the features of the featuremap with only one of them filled.
+ */
+ private boolean isNullable(Basic basic, PAnnotatedEAttribute aattr) {
+ // actually aattr.getColumn() should never be null as the default
+ // annotator
+ // always adds columns...
+ // has been changed from this commented code to the code below because
+ // of bugzilla: 224536 which gives the column annotation precedence
+ // over the basis annotation.
+ // return getHbmContext().isForceOptional() || basic.isOptional() ||
+ // getHbmContext().isCurrentElementFeatureMap() &&
+ // (aattr.getColumn() != null || aattr.getColumn().isNullable());
+ return getHbmContext().isDoForceOptional(aattr)
+ || ((aattr.getColumn() == null || !aattr.getColumn().isSetNullable()) && basic.isOptional())
+ || getHbmContext().isCurrentElementFeatureMap()
+ || (aattr.getColumn() != null && aattr.getColumn().isNullable());
+ }
+
+ private boolean isNullable(ManyToOne mto, PAnnotatedEStructuralFeature paFeature) {
+ // actually aattr.getColumn() should never be null as the default
+ // annotator
+ // always adds columns...
+ // has been changed from this commented code to the code below because
+ // of bugzilla: 224536 which gives the column annotation precedence
+ // over the basis annotation.
+ // return getHbmContext().isForceOptional() || basic.isOptional() ||
+ // getHbmContext().isCurrentElementFeatureMap() &&
+ // (aattr.getColumn() != null || aattr.getColumn().isNullable());
+ return getHbmContext().isDoForceOptional(paFeature)
+ || ((paFeature.getColumn() == null || !paFeature.getColumn().isSetNullable()) && mto.isOptional())
+ || getHbmContext().isCurrentElementFeatureMap()
+ || (paFeature.getColumn() != null && paFeature.getColumn().isNullable());
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/EmbeddedMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/EmbeddedMapper.java
new file mode 100755
index 000000000..f937d7765
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/EmbeddedMapper.java
@@ -0,0 +1,140 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: EmbeddedMapper.java,v 1.20 2010/08/18 12:21:13 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.simpledom.Element;
+
+/**
+ * Maps Embedded properties.
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class EmbeddedMapper extends AbstractMapper implements ExtensionPoint {
+
+ // the logger
+ private static final Log log = LogFactory.getLog(EmbeddedMapper.class);
+
+ /**
+ * Process Embedded object
+ */
+ public void process(PAnnotatedEReference paReference) {
+ log.debug("Processing embedded: " + paReference.toString());
+
+ // push the current overrides
+ getHbmContext().pushOverrideOnStack();
+ // and add our own
+ getHbmContext().addAttributeOverrides(
+ paReference.getAttributeOverrides());
+ getHbmContext().addAssociationOverrides(
+ paReference.getAssociationOverrides());
+
+ // push the feature is used for automatic renaming
+ getHbmContext().pushEmbeddingFeature(paReference);
+ try {
+ // make a difference between a many-to-one component and
+ // multi-component
+ if (paReference.getManyToOne() != null) {
+ processSingleEmbedded(paReference, paReference
+ .getModelEReference().getEReferenceType());
+ } else if (paReference.getOneToOne() != null) {
+ processSingleEmbedded(paReference, paReference
+ .getModelEReference().getEReferenceType());
+ } else {
+ if (paReference.getManyToMany() != null) {
+ throw new MappingException(
+ "ManyToMany can not be combined with Embedded "
+ + paReference);
+ } else if (paReference.getOneToMany() == null) {
+ throw new MappingException(
+ "OneToMany must be set for embedded elist type: "
+ + paReference);
+ }
+
+ // only one to many
+ processMultiEmbedded(paReference);
+ }
+ } finally {
+ // and continue with the previous set of overrides
+ getHbmContext().popOverrideStack();
+ getHbmContext().popEmbeddingFeature();
+ }
+ }
+
+ /** Process a many-to-one component */
+ private void processSingleEmbedded(PAnnotatedEReference paReference,
+ EClass target) {
+ log.debug("Processing single embedded: " + paReference.toString());
+
+ final Element componentElement = getHbmContext().getCurrent()
+ .addElement("component").addAttribute("name",
+ paReference.getModelEReference().getName());
+
+ // todo: change recognizing a component to using metadata!
+ // then the class tag can point to a real impl. class@
+ componentElement.addAttribute("class", getHbmContext()
+ .getInstanceClassName(target)); // implClass
+
+ final Element meta1 = new Element("meta");
+ meta1.addAttribute("attribute", HbMapperConstants.ECLASS_NAME_META).addText(paReference.getEReferenceType().getName());
+ meta1.addAttribute("inherit", "false");
+
+ final Element meta2 = new Element("meta");
+ meta2.addAttribute("attribute", HbMapperConstants.EPACKAGE_META).addText(
+ paReference.getEReferenceType().getEPackage().getNsURI());
+ meta1.addAttribute("inherit", "false");
+ componentElement.addElement(meta1);
+ componentElement.addElement(meta2);
+
+ // .
+ // getName
+ // (
+ // )
+ // )
+ // ;
+ getHbmContext().setCurrent(componentElement);
+ try {
+ // process the features of the target
+ final PAnnotatedEClass componentAClass = paReference.getPaModel()
+ .getPAnnotated(
+ paReference.getModelEReference()
+ .getEReferenceType());
+
+ getHbmContext().processFeatures(getAllFeatures(componentAClass));
+ } finally {
+ getHbmContext().setCurrent(componentElement.getParent());
+ }
+
+ addAccessor(componentElement, hbmContext
+ .getComponentPropertyHandlerName());
+ }
+
+ /** Process a list of components */
+ private void processMultiEmbedded(PAnnotatedEReference paReference) {
+ log.debug("Processing multi embedded: " + paReference.toString());
+
+ // let the featureprocessor handle this, the one to many is handled by
+ // the OneToManyMapper
+ getHbmContext().getFeatureMapper().getOneToManyMapper().process(
+ paReference);
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/EntityMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/EntityMapper.java
new file mode 100755
index 000000000..cdbda5053
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/EntityMapper.java
@@ -0,0 +1,871 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: EntityMapper.java,v 1.55 2011/10/29 06:13:50 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.teneo.Constants;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pannotation.Column;
+import org.eclipse.emf.teneo.annotations.pannotation.DiscriminatorColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.DiscriminatorType;
+import org.eclipse.emf.teneo.annotations.pannotation.DiscriminatorValue;
+import org.eclipse.emf.teneo.annotations.pannotation.InheritanceType;
+import org.eclipse.emf.teneo.annotations.pannotation.PannotationFactory;
+import org.eclipse.emf.teneo.annotations.pannotation.PrimaryKeyJoinColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.SecondaryTable;
+import org.eclipse.emf.teneo.annotations.pannotation.Table;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.hibernate.hbannotation.DiscriminatorFormula;
+import org.eclipse.emf.teneo.hibernate.hbannotation.HbEntity;
+import org.eclipse.emf.teneo.hibernate.hbannotation.OptimisticLockType;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass;
+import org.eclipse.emf.teneo.simpledom.DocumentHelper;
+import org.eclipse.emf.teneo.simpledom.Element;
+
+/**
+ * Maps the entity and its features, also takes care of embedded superclass
+ * mapping.
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class EntityMapper extends AbstractMapper implements ExtensionPoint {
+
+ /** Log it all */
+ private static final Log log = LogFactory.getLog(EntityMapper.class);
+
+ /** Convenience maps to inheritance strategy names and discriminator types */
+ private static final String[] INHERITANCE_STRATEGY_NAMES;
+
+ private static final String[] DISCRIMINATOR_TYPE_NAMES;
+
+ /** Initialize the global arrays */
+ static {
+ INHERITANCE_STRATEGY_NAMES = new String[InheritanceType.VALUES.size()];
+ INHERITANCE_STRATEGY_NAMES[InheritanceType.JOINED.getValue()] = "joined-subclass";
+ INHERITANCE_STRATEGY_NAMES[InheritanceType.SINGLE_TABLE.getValue()] = "subclass";
+ INHERITANCE_STRATEGY_NAMES[InheritanceType.TABLE_PER_CLASS.getValue()] = "union-subclass";
+
+ DISCRIMINATOR_TYPE_NAMES = new String[DiscriminatorType.VALUES.size()];
+ DISCRIMINATOR_TYPE_NAMES[DiscriminatorType.CHAR.getValue()] = "character";
+ DISCRIMINATOR_TYPE_NAMES[DiscriminatorType.INTEGER.getValue()] = "integer";
+ DISCRIMINATOR_TYPE_NAMES[DiscriminatorType.STRING.getValue()] = "string";
+ }
+
+ // Key used for grouping properties to the primary and secondary tables.
+ private final String PRIMARY_TABLE_KEY = null;
+
+ /**
+ * @return Return the name used by hibernate to denote the given inheritance
+ * type. If the argument is null, the default inheritance type
+ * (SINGLE_TABLE) is used instead.
+ */
+ private static String hbInheritanceName(InheritanceType inheritanceType) {
+ return EntityMapper.INHERITANCE_STRATEGY_NAMES[inheritanceType != null ? inheritanceType
+ .getValue() : InheritanceType.SINGLE_TABLE.getValue()];
+ }
+
+ /**
+ * @return Return the name used by hibernate for the given dicriminator type
+ */
+ private static String hbDiscriminatorType(DiscriminatorType dType) {
+ return EntityMapper.DISCRIMINATOR_TYPE_NAMES[dType == null ? DiscriminatorType.STRING
+ .getValue() : dType.getValue()];
+ }
+
+ /**
+ * @return Returns a new hibernate element for the given entity.
+ */
+ private Element createEntity(PAnnotatedEClass entity,
+ InheritanceType inhStrategy, PAnnotatedEClass superEntity,
+ DiscriminatorValue dValue, Table table) {
+ // determine what type of hibernate tag should be used
+ final InheritanceType inheritanceStrategy = inhStrategy != null ? inhStrategy
+ : InheritanceType.SINGLE_TABLE;
+ final EClass eclass = entity.getModelEClass();
+ final String hbClassName;
+ if (entity.getEavMapping() != null) {
+ hbClassName = EntityMapper
+ .hbInheritanceName(InheritanceType.SINGLE_TABLE);
+ } else if (superEntity == null) {
+ hbClassName = "class";
+ } else {
+ hbClassName = EntityMapper.hbInheritanceName(inheritanceStrategy);
+ }
+
+ log.debug("Creating entity tag " + hbClassName);
+
+ final Element target;
+
+ final String entityName = getHbmContext().getEntityName(eclass);
+ final String isAbstractStr = eclass.isAbstract() ? "true" : "false";
+ final boolean doProxy = ((HbAnnotatedEClass) entity).getHbProxy() != null
+ && ((HbAnnotatedEClass) entity).getHbProxy().isLazy();
+ if (entity.isOnlyMapAsEntity()) {
+ target = getHbmContext().getCurrent().addElement(hbClassName)
+ .addAttribute("entity-name", entityName)
+ .addAttribute("abstract", isAbstractStr)
+ .addAttribute("lazy", "false");
+
+ // note for composite ids the name must be set always!
+ // entity.getAnnotatedEClass().getInstanceClass() != null) { //
+ // ||
+ // entity.getAnnotatedEClass().getInstanceClass() != null ||
+ if (hasCompositeID(entity)) { // only for this specific case
+ // it is
+ // required to have the impl.name
+ target.addAttribute("name", hbmContext
+ .getInstanceClassName(entity.getModelEClass()));
+ }
+ } else if (getHbmContext().forceUseOfInstance(entity)) {
+
+ final Element importElement = new Element("import");
+
+ importElement.addAttribute("class",
+ hbmContext.getInstanceClassName(entity.getModelEClass()))
+ .addAttribute("rename", entityName);
+ getHbmContext().getCurrent().add(getImportIndex(), importElement);
+
+ target = getHbmContext()
+ .getCurrent()
+ .addElement(hbClassName)
+ .addAttribute(
+ "name",
+ hbmContext.getInstanceClassName(entity
+ .getModelEClass()))
+ .addAttribute("abstract", isAbstractStr)
+ .addAttribute("lazy", doProxy ? "true" : "false");
+ } else {
+ // don't specify the name as it is a dynamic eobject
+ if (getHbmContext().getInstanceClass(entity.getModelEClass()) == null) {
+ target = getHbmContext().getCurrent().addElement(hbClassName)
+ .addAttribute("entity-name", entityName)
+ .addAttribute("abstract", isAbstractStr)
+ .addAttribute("lazy", doProxy ? "true" : "false");
+ } else {
+ target = getHbmContext()
+ .getCurrent()
+ .addElement(hbClassName)
+ .addAttribute(
+ "name",
+ hbmContext.getInstanceClassName(entity
+ .getModelEClass()))
+ .addAttribute("entity-name", entityName)
+ .addAttribute("abstract", isAbstractStr)
+ .addAttribute("lazy", doProxy ? "true" : "false");
+ }
+ }
+
+ final HbAnnotatedEClass hbEntity = (HbAnnotatedEClass) entity;
+ // TODO: the immutable on the eclass should be removed as it is now
+ // covered through the HbEntity
+ if (superEntity == null && hbEntity.getImmutable() != null) {
+ target.addAttribute("mutable", "false");
+ }
+
+ if (hbEntity.getBatchSize() != null) {
+ target.addAttribute("batch-size", ""
+ + hbEntity.getBatchSize().getSize());
+ }
+
+ if (hbEntity.getHbEntity() != null) {
+ final HbEntity hbEntityAnnon = hbEntity.getHbEntity();
+ if (superEntity == null) {
+ if (!hbEntityAnnon.isMutable()
+ && target.getAttributeValue("mutable") == null) {
+ target.addAttribute("mutable", "false");
+ }
+ if (hbEntityAnnon.getPolymorphism() != null) {
+ target.addAttribute("polymorphism", hbEntityAnnon
+ .getPolymorphism().getName().toLowerCase());
+ }
+ if (hbEntityAnnon.getOptimisticLock() != null) {
+ target.addAttribute("optimistic-lock", hbEntityAnnon
+ .getOptimisticLock().getName().toLowerCase());
+ }
+ }
+ if (hbEntityAnnon.isDynamicInsert()) {
+ target.addAttribute("dynamic-insert", "true");
+ }
+ if (hbEntityAnnon.isDynamicUpdate()) {
+ target.addAttribute("dynamic-update", "true");
+ }
+ if (hbEntityAnnon.isSelectBeforeUpdate()) {
+ target.addAttribute("select-before-update", "true");
+ }
+ if (hbEntityAnnon.getPersister() != null) {
+ target.addAttribute("persister", hbEntityAnnon.getPersister());
+ }
+
+ }
+
+ if (superEntity != null) {
+ final String extendsEntity;
+ if (superEntity.isOnlyMapAsEntity()
+ || !getHbmContext().forceUseOfInstance(superEntity)) {
+ extendsEntity = getHbmContext().getEntityName(
+ superEntity.getModelEClass());
+ } else {
+ extendsEntity = getHbmContext().getInstanceClassName(
+ superEntity.getModelEClass());
+ }
+ target.addAttribute("extends", extendsEntity);
+ log.debug("Extends " + extendsEntity);
+ }
+
+ if (entity.getEavMapping() != null) {
+ if (superEntity == null) {
+ target.addAttribute("extends",
+ Constants.EAV_EOBJECT_ENTITY_NAME);
+ }
+
+ target.addAttribute("discriminator-value", dValue.getValue());
+
+ if (((HbAnnotatedEClass) entity).getHbProxy() != null
+ && ((HbAnnotatedEClass) entity).getHbProxy()
+ .getProxyClass() != null) {
+ final String proxyInterfaceName = ((HbAnnotatedEClass) entity)
+ .getHbProxy().getProxyClass();
+ target.addAttribute("proxy", proxyInterfaceName);
+ }
+ // stop here for eav
+ return target;
+ }
+
+ if (dValue != null
+ && !target.getName().equals(
+ INHERITANCE_STRATEGY_NAMES[InheritanceType.JOINED
+ .getValue()])
+ && !target.getName().equals(
+ InheritanceType.TABLE_PER_CLASS.getValue())) {
+ target.addAttribute("discriminator-value", dValue.getValue());
+ log.debug("DValue " + dValue.getValue());
+ }
+
+ if (table != null
+ && hbClassName
+ .compareTo(INHERITANCE_STRATEGY_NAMES[InheritanceType.SINGLE_TABLE
+ .getValue()]) == 0) {
+ log.warn("EClass/Entity ("
+ + entityName
+ + ") is mapped as subclass in a single table with its superclass but it also has a table annotation. This table annotation is ignored.");
+ } else if (table != null) {
+ if (table.getName() != null) {
+ target.addAttribute("table",
+ getHbmContext().trunc(table, table.getName(), false));
+ log.debug("Table " + table.getName());
+ }
+ if (table.getSchema() != null) {
+ target.addAttribute("schema",
+ getHbmContext().trunc(table.getSchema(), false));
+ log.debug("Schema " + table.getSchema());
+ }
+ if (table.getCatalog() != null) {
+ target.addAttribute("catalog",
+ getHbmContext().trunc(table.getCatalog(), false));
+ log.debug("Catalog " + table.getCatalog());
+ }
+ }
+
+ if (((HbAnnotatedEClass) entity).getHbWhere() != null) {
+ target.addAttribute("where", ((HbAnnotatedEClass) entity)
+ .getHbWhere().getClause());
+ }
+
+ if (((HbAnnotatedEClass) entity).getHbProxy() != null
+ && ((HbAnnotatedEClass) entity).getHbProxy().getProxyClass() != null) {
+ final String proxyInterfaceName = ((HbAnnotatedEClass) entity)
+ .getHbProxy().getProxyClass();
+ target.addAttribute("proxy", proxyInterfaceName);
+ }
+
+ return target;
+ }
+
+ /** Return index were to place the import */
+ protected int getImportIndex() {
+ final List<?> children = getHbmContext().getCurrent().getChildren();
+ int defaultResult = 0;
+ for (int i = 0; i < children.size(); i++) {
+ final Element e = (Element) children.get(i);
+ final String name = e.getName();
+ if (name.compareTo("class") == 0 || name.compareTo("subclass") == 0
+ || name.compareTo("joined-subclass") == 0
+ || name.compareTo("union-subclass") == 0) {
+ return i;
+ }
+ if (name.compareTo("typedef") == 0 || name.compareTo("meta") == 0) {
+ defaultResult = i + 1;
+ }
+ }
+ return defaultResult;
+ }
+
+ /** Returns true if this entity or one of its superclasses has an idclass */
+ private boolean hasCompositeID(PAnnotatedEClass aClass) {
+ if (aClass.getIdClass() != null) {
+ return true;
+ }
+ if (aClass.getPaSuperEntity() != null) {
+ return hasCompositeID(aClass.getPaSuperEntity());
+ }
+ for (PAnnotatedEClass superAClass : aClass.getPaMappedSupers()) {
+ if (hasCompositeID(superAClass)) {
+ return true;
+ }
+ }
+ {
+ List<PAnnotatedEStructuralFeature> features = aClass
+ .getPaEStructuralFeatures();
+ for (PAnnotatedEStructuralFeature feature : features) {
+ if (feature instanceof PAnnotatedEReference
+ && ((PAnnotatedEReference) feature).getEmbeddedId() != null) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Maps the given entity in its hbm context.
+ */
+ public void processEntity(PAnnotatedEClass entity) {
+ if (log.isDebugEnabled()) {
+ log.debug("Mapping Entity " + entity);
+ }
+
+ final HbAnnotatedEClass hbEntity = (HbAnnotatedEClass) entity;
+ Element entityElement = createEntity(entity,
+ entity.getInheritanceStrategy(), entity.getPaSuperEntity(),
+ entity.getDiscriminatorValue(), entity.getTable());
+
+ if (entity.getEavMapping() != null) {
+ return;
+ }
+
+ final MappingContext mc = getHbmContext();
+
+ mc.setCurrent(entityElement);
+ mc.setCurrentTable(entity.getTable());
+ // MT: moved to processFeatures method because this should be done after
+ // the id
+ // element has been placed
+
+ if (entity.getPaSuperEntity() == null
+ && entity.getPrimaryKeyJoinColumns() != null
+ && entity.getPrimaryKeyJoinColumns().size() > 0) {
+ log.warn("This entity ("
+ + entity.getEntity().getName()
+ + " is the root in the class hierarchy and "
+ + "has a pk joincolum annotation, this is not correct, ignoring pk joincolumn annotation");
+ } else if (InheritanceType.SINGLE_TABLE.equals(entity
+ .getInheritanceStrategy())
+ && entity.getPrimaryKeyJoinColumns() != null
+ && entity.getPrimaryKeyJoinColumns().size() > 0) {
+ log.warn("Single table inheritance strategy (entity "
+ + entity.getEntity().getName()
+ + ", primary key join column annotation is ignored for subclass");
+ } else if (entity.getPrimaryKeyJoinColumns() != null
+ && entity.getPrimaryKeyJoinColumns().size() > 0) {
+ addPrimaryKeyJoinColumn(entity.getPrimaryKeyJoinColumns(), entity);
+ } else if (entity.getPaSuperEntity() != null
+ && InheritanceType.JOINED.equals(entity
+ .getInheritanceStrategy())) {
+ final ArrayList<PrimaryKeyJoinColumn> list = new ArrayList<PrimaryKeyJoinColumn>();
+ final PrimaryKeyJoinColumn pkjc = PannotationFactory.eINSTANCE
+ .createPrimaryKeyJoinColumn();
+ final String entityName = mc.getEntityName(entity.getModelEClass());
+ mc.trunc(pkjc, entityName + "id"); // TODO improve name
+ // creation here
+ list.add(pkjc);
+ addPrimaryKeyJoinColumn(list, entity);
+ }
+
+ try {
+ final List<PAnnotatedEStructuralFeature> inheritedFeatures = mc
+ .getInheritedFeatures(entity);
+
+ mc.setForceOptional(entity.getPaSuperEntity() != null
+ && (entity.getInheritanceStrategy() == null || InheritanceType.SINGLE_TABLE
+ .equals(entity.getInheritanceStrategy())));
+
+ mc.pushOverrideOnStack();
+ mc.addAttributeOverrides(entity.getAttributeOverrides());
+ mc.addAssociationOverrides(entity.getAssociationOverrides());
+
+ if (inheritedFeatures.size() > 0) {
+ log.debug("There are " + inheritedFeatures.size()
+ + " inherited features ");
+ }
+
+ try {
+ processFeatures(inheritedFeatures);
+
+ final EList<SecondaryTable> secondaryTables = entity
+ .getSecondaryTables();
+ if (secondaryTables == null || secondaryTables.isEmpty()) {
+ // Process features normally.
+ processFeatures(entity.getPaEStructuralFeatures());
+ } else {
+ // Special processing needed for secondary tables.
+ processSecondaryTables(secondaryTables, entity);
+ }
+ } finally {
+ mc.popOverrideStack();
+ }
+ } finally {
+ mc.setForceOptional(false);
+ mc.setCurrentTable(null);
+ Element idElement = entityElement.element("id");
+ if (idElement == null) {
+ idElement = entityElement.element("composite-id");
+ }
+
+ // create a synthetic id for roots
+ if (idElement == null && entity.getPaSuperEntity() == null
+ && entity.getPaMappedSupers().size() == 0) {
+ idElement = IdMapper.addSyntheticId(hbmContext, entityElement);
+ } else if (mc.mustAddSyntheticID(entity)) {
+ idElement = IdMapper.addSyntheticId(hbmContext, entityElement);
+ } else {
+ addAccessor(idElement, hbmContext.getIdPropertyHandlerName());
+ }
+
+ if (idElement != null) {
+ int index = entityElement.indexOf(idElement) + 1;
+
+ if (((HbAnnotatedEClass) entity).getDiscriminatorFormula() != null) {
+ entityElement.add(
+ index++,
+ createDiscriminatorElement(
+ hbEntity.getDiscriminatorFormula(),
+ entity.getDiscriminatorColumn(),
+ hbEntity.getForceDiscriminator() != null));
+ } else if (entity.getDiscriminatorColumn() != null) {
+ // add discriminator element immediately after id element
+ entityElement.add(
+ index++,
+ createDiscriminatorElement(
+ entity.getDiscriminatorColumn(),
+ hbEntity.getForceDiscriminator() != null));
+ }
+
+ // create and/or move version element (if present) immediately
+ // after discriminator
+ Element versionElement = entityElement.element("version");
+ if (versionElement == null) {
+ versionElement = addVersionProperty(hbEntity);
+ }
+
+ if (null != versionElement) { // In case this is not versioned
+ entityElement.remove(versionElement);
+ entityElement.add(index, versionElement);
+ }
+ }
+
+ mapFilter(entityElement, ((HbAnnotatedEClass) entity).getFilter());
+
+ mc.setCurrent(entityElement.getParent());
+
+ // now process the featuremap entries if any
+ processFeatureMapFeatures();
+ int index = 1 + entityElement.getChildren().indexOf(idElement);
+ // check if there is a discriminator, if so put it behind that one
+ if (entityElement.element("discriminator") != null) {
+ final Element elem = entityElement.element("discriminator");
+ index = 1 + entityElement.getChildren().indexOf(elem);
+ }
+
+ handleNaturalId(entityElement, index);
+ }
+
+ // initially the comment is placed at the back, move it to the front
+ final Element comment = addCommentElement(entity.getModelEClass(),
+ entityElement);
+ if (comment != null) {
+ entityElement.remove(comment);
+ entityElement.add(0, comment);
+ }
+
+ // place the tuplizer at the front
+ mc.addTuplizerElement(entityElement, entity);
+
+ if ((entity.getPaSuperEntity() == null || entity.getPaSuperEntity()
+ .getMappedSuperclass() != null)
+ && ((HbAnnotatedEClass) entity).getHbCache() != null) {
+ // then add the cache at the front
+ addCacheElement(entityElement,
+ ((HbAnnotatedEClass) entity).getHbCache());
+ }
+
+ // and add the metas at the front
+ final Element meta1 = new Element("meta");
+ meta1.addAttribute("attribute", HbMapperConstants.ECLASS_NAME_META)
+ .addText(entity.getModelEClass().getName());
+ meta1.addAttribute("inherit", "false");
+ final Element meta2 = new Element("meta");
+ meta2.addAttribute("attribute", HbMapperConstants.EPACKAGE_META)
+ .addText(entity.getModelEClass().getEPackage().getNsURI());
+ meta2.addAttribute("inherit", "false");
+
+ entityElement.add(0, meta1);
+ entityElement.add(1, meta2);
+
+ // and move the joins to the back
+ final List<Element> toMove = new ArrayList<Element>();
+ for (Element elem : entityElement.getChildren()) {
+ if (elem.getName().equals("join")) {
+ toMove.add(elem);
+ }
+ }
+ entityElement.getChildren().removeAll(toMove);
+ entityElement.getChildren().addAll(toMove);
+
+ }
+
+ // reorganize the elements which have a natural-id inside a natural-id tag
+ protected void handleNaturalId(Element parentElement, int index) {
+ log.debug("Checking for natural-ids");
+ final List<Element> naturalIdElements = new ArrayList<Element>();
+ boolean mutable = false;
+ for (Element element : parentElement.getChildren()) {
+ String value;
+ if ((value = element
+ .getAttributeValue(HbMapperConstants.NATURAL_ID_ATTR)) != null) {
+ if (naturalIdElements.isEmpty()) {
+ log.debug("Found natural-id, mutable: " + mutable);
+ mutable = Boolean.parseBoolean(value);
+ }
+ naturalIdElements.add(element);
+ element.removeAttribute(HbMapperConstants.NATURAL_ID_ATTR);
+ }
+ }
+ if (!naturalIdElements.isEmpty()) {
+ log.debug("Found "
+ + naturalIdElements.size()
+ + " naturalid properies, putting them inside a natural-id tag");
+ parentElement.getChildren().removeAll(naturalIdElements);
+ final Element naturalId = parentElement.addElement("natural-id");
+ // remove it again to place it at the correct position a little
+ // lower
+ parentElement.remove(naturalId);
+ naturalId.addAttribute("mutable", Boolean.toString(mutable));
+ parentElement.add(index, naturalId);
+ naturalId.getChildren().addAll(naturalIdElements);
+ for (Element element : naturalIdElements) {
+ element.setParent(naturalId);
+ }
+ }
+ }
+
+ /** Process the featuremap entries */
+ private void processFeatureMapFeatures() {
+ // this is a while and for loop, in the for loop the features of a
+ // feature map
+ // are processed, these features can again be a featuremap which are
+ // added
+ // to the featuremapmappers in the context, therefore this process walks
+ // on
+ List<FeatureMapMapping> featureMapMappers = getHbmContext()
+ .getClearFeatureMapMappers();
+ while (featureMapMappers.size() > 0) {
+
+ for (FeatureMapMapping fmm : featureMapMappers) {
+ fmm.process();
+ }
+
+ // read again because the fmm.process can result in new feature map
+ // mappings
+ featureMapMappers = getHbmContext().getClearFeatureMapMappers();
+ }
+ }
+
+ /**
+ * Process the features of the mapped superclass so that they are added to
+ * the current mapping
+ */
+ protected void processMappedSuper(PAnnotatedEClass paMappedSuper) {
+ processFeatures(paMappedSuper.getPaEStructuralFeatures());
+ }
+
+ /** process the features of the annotated eclass */
+ protected void processFeatures(List<PAnnotatedEStructuralFeature> features) {
+ for (PAnnotatedEStructuralFeature annotatedEStructuralFeature : features) {
+ processFeature(annotatedEStructuralFeature);
+ }
+ }
+
+ /** Process secondary tables. */
+ protected void processSecondaryTables(List<SecondaryTable> secondaryTables,
+ PAnnotatedEClass entity) {
+ // Group features by primary and secondary tables.
+ // For the primary table we use null as the surrogate key. (HashMap
+ // allows null keys.)
+ final Set<String> tableNames = new HashSet<String>();
+ tableNames.add(PRIMARY_TABLE_KEY);
+ for (SecondaryTable secondaryTable : secondaryTables) {
+ tableNames.add(secondaryTable.getName());
+ }
+ final Map<String, List<PAnnotatedEStructuralFeature>> featuresByTable = new HashMap<String, List<PAnnotatedEStructuralFeature>>();
+ for (PAnnotatedEStructuralFeature feature : entity
+ .getPaEStructuralFeatures()) {
+ // find the table for the feature
+ final String tableName = getHbmContext().getSecondaryTableName(
+ feature);
+ // if there put it in the correct list
+ if (!tableNames.contains(tableName)) {
+ final String message = "Feature \""
+ + feature.getModelElement().getName()
+ + "\" was mapped to undeclared secondary table \""
+ + tableName + "\".";
+ log.error(message);
+ throw new MappingException(message);
+ }
+ List<PAnnotatedEStructuralFeature> featuresInTable = featuresByTable
+ .get(tableName);
+ if (featuresInTable == null) {
+ featuresInTable = new ArrayList<PAnnotatedEStructuralFeature>();
+ featuresByTable.put(tableName, featuresInTable);
+ }
+ featuresInTable.add(feature);
+ }
+
+ // Process features in primary table.
+ {
+ final List<PAnnotatedEStructuralFeature> featuresInTable = featuresByTable
+ .get(PRIMARY_TABLE_KEY);
+ // can happen if there are only secondarytable features and no
+ // primary table
+ // features see bugzilla 235949
+ if (featuresInTable != null) {
+ for (PAnnotatedEStructuralFeature feature : featuresInTable) {
+ processFeature(feature);
+ }
+ }
+ }
+ // Process features in secondary tables.
+ for (SecondaryTable secondaryTable : secondaryTables) {
+ if (!featuresByTable.containsKey(secondaryTable.getName())) {
+ // The table was listed in the SecondaryTable annotation, but no
+ // features were actually mapped to this
+ // table.
+ log.warn("No features mapped to secondary table "
+ + secondaryTable.getName());
+ continue;
+ }
+ final List<PAnnotatedEStructuralFeature> featuresInTable = featuresByTable
+ .get(secondaryTable.getName());
+
+ // Create <join> element
+ // See
+ // http://www.hibernate.org/hib_docs/v3/reference/en/html/mapping.html#mapping-declaration
+ // -join
+ final Element joinElement = getHbmContext().getCurrent()
+ .addElement("join");
+ joinElement.addAttribute(
+ "table",
+ getHbmContext().trunc(
+ secondaryTable.getName().toUpperCase(), false));
+ log.debug("Mapping features to secondary table \""
+ + secondaryTable.getName() + "\"");
+ if (secondaryTable.getCatalog() != null) {
+ joinElement
+ .addAttribute("catalog", secondaryTable.getCatalog());
+ }
+ if (secondaryTable.getSchema() != null) {
+ joinElement.addAttribute("schema", secondaryTable.getSchema());
+ }
+ entity.getModelEClass().getEIDAttribute();
+ final List<PrimaryKeyJoinColumn> pkJoinColumns = secondaryTable
+ .getPkJoinColumns();
+ final Element keyElement = joinElement.addElement("key");
+ for (PrimaryKeyJoinColumn pkJoinColumn : pkJoinColumns) {
+ keyElement.addElement("column").addAttribute(
+ "name",
+ getHbmContext().trunc(pkJoinColumn,
+ pkJoinColumn.getName()));
+ }
+ handleOndelete(keyElement,
+ ((HbAnnotatedEClass) entity).getHbOnDelete());
+
+ // Process features in this secondary table.
+ try {
+ getHbmContext().setCurrent(joinElement);
+ getHbmContext().setCurrentSecondaryTable(secondaryTable);
+ for (PAnnotatedEStructuralFeature feature : featuresInTable) {
+ processFeature(feature);
+ }
+ } finally {
+ getHbmContext().setCurrentSecondaryTable(null);
+ getHbmContext().setCurrent(joinElement.getParent());
+ }
+ }
+ }
+
+ /** Process one feature */
+ protected void processFeature(PAnnotatedEStructuralFeature paFeature) {
+ hbmContext.getFeatureMapper().process(paFeature);
+ }
+
+ /**
+ * Adds a key element to the current entity mapping, is for example used to
+ * join to the super class table.
+ */
+ private void addPrimaryKeyJoinColumn(List<PrimaryKeyJoinColumn> pkJCs,
+ PAnnotatedEClass entity) {
+ log.debug("Adding primary key join column");
+
+ final Element jcElement = getHbmContext().getCurrent()
+ .addElement("key");
+ handleOndelete(jcElement, ((HbAnnotatedEClass) entity).getHbOnDelete());
+
+ for (PrimaryKeyJoinColumn pkJC : pkJCs) {
+ final Element columnElement = jcElement.addElement("column");
+
+ if (pkJC.getColumnDefinition() != null) {
+ log.error("Unsupported column definition in primary key join column "
+ + pkJC);
+ throw new MappingException(
+ "Unsupported column definition in primary key join column",
+ pkJC);
+ }
+
+ if (pkJC.getName() != null) {
+ columnElement.addAttribute("name",
+ getHbmContext().trunc(pkJC, pkJC.getName()));
+ }
+ if (pkJC.getReferencedColumnName() != null) {
+ columnElement.addAttribute("property-ref",
+ pkJC.getReferencedColumnName());
+ }
+ }
+ }
+
+ /**
+ * Creates a discriminator element and returns it, so the caller should add
+ * it to the parent element
+ */
+ private Element createDiscriminatorElement(DiscriminatorColumn dColumn,
+ boolean force) {
+ Element dcElement = DocumentHelper.createElement("discriminator");
+ if (dColumn.getColumn() != null) {
+ final Column col = dColumn.getColumn();
+ final Element colElement = dcElement.addElement("column");
+ colElement.addAttribute("name",
+ getHbmContext().trunc(dColumn, col.getName()));
+ if (col.getIndex() != null) {
+ colElement.addAttribute("index", col.getIndex());
+ }
+ if (hbDiscriminatorType(dColumn.getDiscriminatorType()).equals(
+ "string")
+ && col.getLength() > 0) {
+ colElement.addAttribute("length",
+ Integer.toString(col.getLength()));
+ }
+ if (!col.isNullable()) {
+ colElement.addAttribute("not-null", "true");
+ }
+ } else if (dColumn.getName() != null) {
+ dcElement.addAttribute("column",
+ getHbmContext().trunc(dColumn, dColumn.getName()));
+ }
+ dcElement.addAttribute("type",
+ hbDiscriminatorType(dColumn.getDiscriminatorType()));
+
+ if (force) {
+ dcElement.addAttribute("force", "true");
+ }
+
+ if (dColumn.isSetLength() && log.isDebugEnabled()) {
+ log.debug("Ignoring length for discriminator column " + dColumn);
+ }
+
+ if (dColumn.getColumnDefinition() != null) {
+ log.error("Unsupported column definition in discriminator column "
+ + dColumn);
+ throw new MappingException(
+ "Unsupported column definition in discriminator column",
+ dColumn);
+ }
+ return dcElement;
+ }
+
+ // note dc can be null
+ private Element createDiscriminatorElement(DiscriminatorFormula formula,
+ DiscriminatorColumn dc, boolean force) {
+ Element dcElement = DocumentHelper.createElement("discriminator");
+ dcElement.addAttribute("formula", formula.getValue());
+
+ if (force) {
+ dcElement.addAttribute("force", "true");
+ }
+
+ if (dc != null && dc.getDiscriminatorType() != null) {
+ dcElement.addAttribute("type",
+ hbDiscriminatorType(dc.getDiscriminatorType()));
+ }
+ return dcElement;
+ }
+
+ /**
+ * Add a synthetic version if the entity does not define one
+ */
+ private Element addVersionProperty(HbAnnotatedEClass aClass) {
+ assert (getHbmContext().getCurrent().element("version") == null);
+
+ if (!getHbmContext().alwaysVersion()) {
+ return null;
+ }
+
+ // if none optimistic lock then return
+ if (aClass.getHbEntity() != null
+ && aClass.getHbEntity().getOptimisticLock() != null
+ && aClass.getHbEntity().getOptimisticLock()
+ .equals(OptimisticLockType.NONE)) {
+ return null;
+ }
+
+ final boolean skipVersionOnImmutable = !getHbmContext()
+ .getPersistenceOptions()
+ .isDiscriminatorVersionOnImmutableEClass();
+ if (aClass.getImmutable() != null && skipVersionOnImmutable) {
+ return null;
+ }
+
+ // note specific accessor is required because version accessor is not
+ // retrieved through
+ // emf tuplizer
+ final Element versionElement = getHbmContext().getCurrent()
+ .addElement("version")
+ .addAttribute("name", getHbmContext().getVersionColumnName())
+ .addAttribute("column", getHbmContext().getVersionColumnName());
+ final Element meta = new Element("meta");
+ meta.addAttribute("attribute", HbMapperConstants.VERSION_META).addText(
+ "true");
+ meta.addAttribute("inherit", "false");
+ versionElement.add(0, meta);
+
+ versionElement.addAttribute("access", getHbmContext()
+ .getSyntheticVersionPropertyHandlerName());
+
+ return versionElement;
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/FeatureMapMapping.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/FeatureMapMapping.java
new file mode 100755
index 000000000..b56b8f7ea
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/FeatureMapMapping.java
@@ -0,0 +1,193 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: FeatureMapMapping.java,v 1.23 2010/08/18 12:21:14 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pannotation.Id;
+import org.eclipse.emf.teneo.annotations.pannotation.Transient;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute;
+import org.eclipse.emf.teneo.simpledom.Element;
+import org.eclipse.emf.teneo.util.StoreUtil;
+
+/**
+ * The feature map mapping handles the mapping of a feature map feature, this includes group and mixed types. It is
+ * created for each feature map feature during the mapping of the features of an entity. At the end of the entity
+ * processing the feature map mapping instances are used to create a hibernate specific mapping and add it to the
+ * resulting document.
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class FeatureMapMapping extends AbstractMapper {
+
+ /** Log it here */
+ private static final Log log = LogFactory.getLog(FeatureMapMapping.class);
+
+ /** The annotated feature which is a feature map */
+ private final PAnnotatedEAttribute paAttribute;
+
+ /** The mapping context */
+ private final MappingContext hbmContext;
+
+ private Element compositeElement;
+
+ /**
+ * @param hbmContext
+ * The context in which the mapping takes place
+ */
+ public FeatureMapMapping(MappingContext hbmContext, PAnnotatedEAttribute paAttribute) {
+ super.setHbmContext(hbmContext);
+ log.debug("Created featuremap mapping instance for " + paAttribute);
+ this.hbmContext = hbmContext;
+ this.paAttribute = paAttribute;
+ final EAttribute eattr = paAttribute.getModelEAttribute();
+ assert (FeatureMapUtil.isFeatureMap(eattr));
+ }
+
+ /** Returns the entityName */
+ public String getEntityName() {
+ return StoreUtil.getEntityName(paAttribute.getModelEAttribute());
+ }
+
+ /** Processes the features of this featuremap entry */
+ public void process() {
+ final String entityName = StoreUtil.getEntityName(paAttribute.getModelEAttribute());
+ log.debug("Processing feature map feature: " + entityName);
+ Element mainElement;
+ if (getHbmContext().getPersistenceOptions().isMapFeatureMapAsComponent()) {
+ mainElement = getCompositeElement();
+
+ mainElement.addElement("meta").addAttribute("attribute", HbMapperConstants.FEATUREMAP_META).addAttribute("inherit", "false").addText(
+ hbmContext.getEntityNameStrategy().toEntityName(
+ paAttribute.getModelEAttribute().getEContainingClass()));
+ } else {
+ mainElement = hbmContext.getCurrent().addElement("class").addAttribute("entity-name", entityName)
+ .addAttribute("lazy", "false").addAttribute("table",
+ hbmContext.trunc(entityName.toUpperCase(), false));
+
+ mainElement.addElement("meta").addAttribute("attribute", HbMapperConstants.FEATUREMAP_META).addAttribute("inherit", "false").addText(
+ hbmContext.getEntityNameStrategy().toEntityName(
+ paAttribute.getModelEAttribute().getEContainingClass()));
+
+ // TODO: check if id of parent can be used instead
+ mainElement.addElement("id").addAttribute("type", "long").addElement("generator").addAttribute("class",
+ "native");
+
+ if (hbmContext.alwaysVersion()) {
+ final Element versionElement = mainElement.addElement("version").addAttribute("name",
+ hbmContext.getVersionColumnName()).addAttribute("access",
+ "org.eclipse.emf.teneo.hibernate.mapping.property.VersionPropertyHandler");
+ final Element meta = new Element("meta");
+ meta.addAttribute("attribute", HbMapperConstants.VERSION_META).addText("true");
+ meta.addAttribute("inherit", "false");
+ versionElement.add(0, meta);
+ }
+ }
+
+ final FeatureMapper fp = hbmContext.getFeatureMapper();
+ hbmContext.setCurrent(mainElement);
+ hbmContext.setCurrentElementFeatureMap(true);
+ if (getHbmContext().getPersistenceOptions().isMapFeatureMapAsComponent()) {
+ mainElement.addElement("tuplizer").addAttribute("entity-mode", "pojo").addAttribute("class",
+ getHbmContext().getComponentFeatureMapTuplizer());
+ mainElement.addElement("tuplizer").addAttribute("entity-mode", "dynamic-map").addAttribute("class",
+ getHbmContext().getComponentFeatureMapTuplizer());
+ }
+
+ mainElement.addElement("property").addAttribute("name", HbMapperConstants.PROPERTY_FEATURE).addAttribute(
+ "type", "java.lang.String");
+
+ // and now process the features of this group
+ final PAnnotatedEClass paClass = paAttribute.getPaEClass();
+ final boolean isWildCard = StoreUtil.isWildCard(paAttribute.getModelEAttribute());
+ final boolean isMixed = StoreUtil.isMixed(paAttribute.getModelEAttribute());
+ if (isWildCard) {
+ addWildCardFeatureMapping(mainElement, paAttribute);
+ } else {
+ hbmContext.setNamePrefix(paAttribute.getModelEAttribute().getName() + "_");
+ for (PAnnotatedEStructuralFeature paFeature : paClass.getPaEStructuralFeatures()) {
+ EStructuralFeature eFeature = paFeature.getModelEStructuralFeature();
+ final EStructuralFeature modelGroupFeature = ExtendedMetaData.INSTANCE.getGroup(eFeature);
+ final boolean isEFeatureMixed = StoreUtil.isMixed(eFeature);
+ // note with mixed everyone is part of the group except the
+ // mixed feature itself
+ if ((isMixed && !isEFeatureMixed)
+ || (modelGroupFeature != null && modelGroupFeature == paAttribute.getModelEStructuralFeature())) {
+ log.debug("Feature " + StoreUtil.toString(eFeature) + " belongs to this featuremap");
+
+ // continue if it is a id
+ Id id = null;
+ if (paFeature instanceof PAnnotatedEAttribute && ((PAnnotatedEAttribute) paFeature).getId() != null) {
+ // Feature is an id, temporarily removing the id, otherwise
+ // the fm gets confused
+ id = ((PAnnotatedEAttribute) paFeature).getId();
+ ((PAnnotatedEAttribute) paFeature).setId(null);
+ }
+
+ // temporarily remove the transient otherwise the feature is not
+ // processed
+ Transient tt = paFeature.getTransient();
+ paFeature.setTransient(null);
+ try {
+ fp.process(paFeature);
+ } finally {
+ // and set the temp values back
+ paFeature.setTransient(tt);
+ if (id != null) {
+ ((PAnnotatedEAttribute) paFeature).setId(id);
+ }
+ }
+ }
+ }
+ hbmContext.setNamePrefix("");
+ }
+
+ if (StoreUtil.isMixed(paAttribute.getModelEAttribute())) {
+ mainElement.addElement("property").addAttribute("name", HbMapperConstants.PROPERTY_MIXED_TEXT)
+ .addAttribute("type", "java.lang.String");
+ mainElement.addElement("property").addAttribute("name", HbMapperConstants.PROPERTY_MIXED_CDATA)
+ .addAttribute("type", "java.lang.String");
+ mainElement.addElement("property").addAttribute("name", HbMapperConstants.PROPERTY_MIXED_COMMENT)
+ .addAttribute("type", "java.lang.String");
+ }
+ hbmContext.setCurrent(mainElement.getParent());
+ hbmContext.setCurrentElementFeatureMap(false);
+ log.debug("Finished processing featuremap");
+ }
+
+ private void addWildCardFeatureMapping(Element mainElement, PAnnotatedEStructuralFeature paFeature) {
+ mainElement.addElement("property").addAttribute("name",
+ paFeature.getModelEStructuralFeature().getName() + "_" + HbMapperConstants.PROPERTY_ANY_PRIMITIVE)
+ .addAttribute("type", "java.lang.String");
+ final HbAnnotatedEAttribute hbAttribute = (HbAnnotatedEAttribute) paAttribute;
+ final String assocName = getHbmContext().getPropertyName(paFeature.getModelEStructuralFeature());
+ mainElement.addElement(createAny(assocName + "_" + HbMapperConstants.PROPERTY_ANY_REFERENCE, paFeature,
+ hbAttribute.getAny(), hbAttribute.getAnyMetaDef(), false));
+ }
+
+ /** Returns the eattribute */
+ public EAttribute getEAttribute() {
+ return paAttribute.getModelEAttribute();
+ }
+
+ public Element getCompositeElement() {
+ return compositeElement;
+ }
+
+ public void setCompositeElement(Element compositeElement) {
+ this.compositeElement = compositeElement;
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/FeatureMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/FeatureMapper.java
new file mode 100755
index 000000000..315e26743
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/FeatureMapper.java
@@ -0,0 +1,279 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: FeatureMapper.java,v 1.10 2008/12/16 20:40:29 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pamodel.PamodelPackage;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+
+/**
+ * Dispatch events to the appropriate Mapper.
+ *
+ * @author <a href="mailto:marchign at elver.org">Davide Marchignoli</a>
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class FeatureMapper implements ExtensionPoint {
+
+ /** Switch features for the annotated eattribute */
+ private static final EStructuralFeature[] PAEATTRIBUTE_DISCR_FEATURES = new EStructuralFeature[] {
+ PamodelPackage.eINSTANCE.getPAnnotatedEModelElement_Transient(),
+ PamodelPackage.eINSTANCE.getPAnnotatedEAttribute_Id(),
+ PamodelPackage.eINSTANCE.getPAnnotatedEAttribute_Basic(),
+ PamodelPackage.eINSTANCE.getPAnnotatedETypedElement_OneToMany(),
+ PamodelPackage.eINSTANCE.getPAnnotatedEAttribute_Version() };
+
+ /** Switch features for the annotated ereference */
+ private static final EStructuralFeature[] PAEREFERENCE_DISCR_FEATURES = new EStructuralFeature[] {
+ PamodelPackage.eINSTANCE.getPAnnotatedEReference_External(),
+ PamodelPackage.eINSTANCE.getPAnnotatedEModelElement_Transient(),
+ PamodelPackage.eINSTANCE.getPAnnotatedETypedElement_OneToMany(),
+ PamodelPackage.eINSTANCE.getPAnnotatedEReference_Embedded(),
+ PamodelPackage.eINSTANCE.getPAnnotatedEReference_EmbeddedId(),
+ PamodelPackage.eINSTANCE.getPAnnotatedEReference_ManyToMany(),
+ PamodelPackage.eINSTANCE.getPAnnotatedEReference_ManyToOne(),
+ PamodelPackage.eINSTANCE.getPAnnotatedEReference_OneToOne() };
+
+ /**
+ * Different Mappers used in the switches below, each Mapper handles a
+ * specific annotation case
+ */
+ private BasicMapper basicMapper = null;
+
+ private EmbeddedMapper embeddedMapper = null;
+
+ private IdMapper idMapper = null;
+
+ private ManyToManyMapper manyToManyMapper = null;
+
+ private ManyToOneMapper manyToOneMapper = null;
+
+ private ManyAttributeMapper manyAttributeMapper = null;
+
+ private OneToManyMapper oneToManyMapper = null;
+
+ private OneToOneMapper oneToOneMapper = null;
+
+ private ManyExternalReferenceMapper manyExternalReferenceMapper;
+
+ private MappingContext hbmContext = null;
+
+ /**
+ * Used to signal the end of a class or mapped superclass. public void end()
+ * { if (nestedBegin <= 0) throw new
+ * IllegalStateException("Unexpected end"); nestedBegin--; if (idStrategy !=
+ * null) idStrategy.end(); // can happen in case of featuremap if
+ * (nestedBegin == 0) idStrategy = null; }
+ */
+
+ /** Find the feature to switch on */
+ public static final EStructuralFeature getSwitchFeature(EObject eObject,
+ EStructuralFeature[] features) {
+ for (EStructuralFeature element : features) {
+ if (eObject.eIsSet(element)) {
+ return element;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Used to process the given feature.
+ *
+ * @see org.eclipse.emf.teneo.annotations.builder.DelegatingBuilder#process(org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature)
+ */
+ public void process(PAnnotatedEStructuralFeature paFeature) {
+ hbmContext.setCurrentFeature(paFeature);
+ if (paFeature instanceof PAnnotatedEAttribute) {
+ processPAnnotatedEAttribute((PAnnotatedEAttribute) paFeature);
+ } else {
+ processPAnnotatedEReference((PAnnotatedEReference) paFeature);
+ }
+ hbmContext.setCurrentFeature(null);
+ }
+
+ /** Process the eattribute */
+ private void processPAnnotatedEAttribute(
+ PAnnotatedEAttribute pAnnotatedEAttribute) {
+ final EStructuralFeature discrFeature;
+ if (pAnnotatedEAttribute.getAnnotations().isEmpty()) {
+ discrFeature = PamodelPackage.eINSTANCE
+ .getPAnnotatedEAttribute_Basic();
+ } else {
+ discrFeature = getSwitchFeature(pAnnotatedEAttribute,
+ PAEATTRIBUTE_DISCR_FEATURES);
+ }
+ if (discrFeature == null) {
+ throw new MappingException("Can not map this paElement",
+ pAnnotatedEAttribute);
+ } else {
+ switch (discrFeature.getFeatureID()) {
+ case PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__TRANSIENT:
+ basicMapper.processTransient(pAnnotatedEAttribute);
+ break;
+ case PamodelPackage.PANNOTATED_EATTRIBUTE__BASIC:
+ caseBasic(pAnnotatedEAttribute);
+ // if (result == null) result =
+ // caseProperty(pAnnotatedEAttribute);
+ break;
+ case PamodelPackage.PANNOTATED_EATTRIBUTE__ID:
+ idMapper.processIdProperty(pAnnotatedEAttribute);
+ break;
+ case PamodelPackage.PANNOTATED_EATTRIBUTE__ONE_TO_MANY:
+ manyAttributeMapper.processManyAttribute(pAnnotatedEAttribute);
+ break;
+ case PamodelPackage.PANNOTATED_EATTRIBUTE__VERSION:
+ basicMapper.processVersion(pAnnotatedEAttribute);
+ break;
+ default:
+ throw new AssertionError("unexpected case");
+ }
+ }
+ }
+
+ /** Process the ereference */
+ private void processPAnnotatedEReference(
+ PAnnotatedEReference pAnnotatedEReference) {
+ final EStructuralFeature discrFeature;
+ if (pAnnotatedEReference.getAnnotations().isEmpty()) {
+ discrFeature = PamodelPackage.eINSTANCE
+ .getPAnnotatedEReference_Embedded();
+ } else {
+ discrFeature = getSwitchFeature(pAnnotatedEReference,
+ PAEREFERENCE_DISCR_FEATURES);
+ }
+ if (discrFeature == null) {
+ throw new MappingException("Can not map this paElement",
+ pAnnotatedEReference);
+ } else {
+ switch (discrFeature.getFeatureID()) {
+ case PamodelPackage.PANNOTATED_EREFERENCE__EXTERNAL:
+ if (pAnnotatedEReference.getModelEReference().isMany()) {
+ manyExternalReferenceMapper
+ .processManyReference(pAnnotatedEReference);
+ } else {
+ basicMapper.processExternalEReference(pAnnotatedEReference);
+ }
+ break;
+ case PamodelPackage.PANNOTATED_ESTRUCTURAL_FEATURE__TRANSIENT:
+ basicMapper.processTransient(pAnnotatedEReference);
+ break;
+ case PamodelPackage.PANNOTATED_EREFERENCE__EMBEDDED:
+ embeddedMapper.process(pAnnotatedEReference);
+ break;
+ case PamodelPackage.PANNOTATED_EREFERENCE__EMBEDDED_ID:
+ idMapper.processEmbeddedId(pAnnotatedEReference);
+ break;
+ case PamodelPackage.PANNOTATED_EREFERENCE__MANY_TO_MANY:
+ manyToManyMapper.process(pAnnotatedEReference);
+ break;
+ case PamodelPackage.PANNOTATED_EREFERENCE__MANY_TO_ONE:
+ manyToOneMapper.process(pAnnotatedEReference);
+ break;
+ case PamodelPackage.PANNOTATED_EREFERENCE__ONE_TO_MANY:
+ oneToManyMapper.process(pAnnotatedEReference);
+ break;
+ case PamodelPackage.PANNOTATED_EREFERENCE__ONE_TO_ONE:
+ oneToOneMapper.process(pAnnotatedEReference);
+ break;
+ default:
+ throw new AssertionError("unexpected case");
+ }
+ }
+ }
+
+ /** Handle basic annotation, is basic, enumerated, temporal */
+ public Object caseBasic(PAnnotatedEAttribute paAttribute) {
+ if (paAttribute.getEnumerated() != null) {
+ basicMapper.processEnum(paAttribute);
+ } else if (paAttribute.getLob() != null) {
+ basicMapper.processLob(paAttribute);
+ } else if (paAttribute.getTemporal() != null) {
+ basicMapper.processTemporal(paAttribute);
+ } else {
+ basicMapper.processBasic(paAttribute);
+ }
+ return Boolean.TRUE;
+ }
+
+ public Object defaultCase(EObject object) {
+ throw new IllegalArgumentException("Unexpected argument " + object);
+ }
+
+ public void setBasicMapper(BasicMapper basicMapper) {
+ this.basicMapper = basicMapper;
+ }
+
+ public void setEmbeddedMapper(EmbeddedMapper embeddedMapper) {
+ this.embeddedMapper = embeddedMapper;
+ }
+
+ public void setIdMapper(IdMapper idMapper) {
+ this.idMapper = idMapper;
+ }
+
+ public void setManyToManyMapper(ManyToManyMapper manyToManyMapper) {
+ this.manyToManyMapper = manyToManyMapper;
+ }
+
+ public void setManyToOneMapper(ManyToOneMapper manyToOneMapper) {
+ this.manyToOneMapper = manyToOneMapper;
+ }
+
+ public void setManyAttributeMapper(ManyAttributeMapper manyAttributeMapper) {
+ this.manyAttributeMapper = manyAttributeMapper;
+ }
+
+ public void setOneToManyMapper(OneToManyMapper oneToManyMapper) {
+ this.oneToManyMapper = oneToManyMapper;
+ }
+
+ public OneToManyMapper getOneToManyMapper() {
+ return oneToManyMapper;
+ }
+
+ public void setOneToOneMapper(OneToOneMapper oneToOneMapper) {
+ this.oneToOneMapper = oneToOneMapper;
+ }
+
+ /**
+ * @param hbmContext
+ * the hbmContext to set
+ */
+ public void setHbmContext(MappingContext hbmContext) {
+ this.hbmContext = hbmContext;
+ }
+
+ /**
+ * @return the manyExternalReferenceMapper
+ */
+ public ManyExternalReferenceMapper getManyExternalReferenceMapper() {
+ return manyExternalReferenceMapper;
+ }
+
+ /**
+ * @param manyExternalReferenceMapper
+ * the manyExternalReferenceMapper to set
+ */
+ public void setManyExternalReferenceMapper(
+ ManyExternalReferenceMapper manyExternalReferenceMapper) {
+ this.manyExternalReferenceMapper = manyExternalReferenceMapper;
+ }
+} \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/GenerateHBM.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/GenerateHBM.java
new file mode 100755
index 000000000..29a5bc41c
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/GenerateHBM.java
@@ -0,0 +1,145 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: GenerateHBM.java,v 1.17 2010/02/04 11:03:48 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+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.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EPackage;
+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;
+
+/**
+ * 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.17 $
+ */
+
+public class GenerateHBM {
+ /** The logger for this class */
+ private static Log log = LogFactory.getLog(GenerateHBM.class);
+
+ /** 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 {
+ log.debug("Loading class " + element
+ + " should be an epackage");
+
+ Class<?> epack = Class.forName(element);
+ if (!EPackage.class.isAssignableFrom(epack)) {
+ log
+ .warn("HBM Generator found "
+ + epack.getName()
+ + " but this is not an EPackage, ignoring it");
+ }
+ } catch (Throwable t) { // ignore everything but log it
+ log.error("Exception while instantiating " + element
+ + ", message: " + t.getMessage());
+ }
+ }
+ } 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();
+ MappingUtil.registerHbExtensions(extensionManager);
+
+ final PersistenceOptions po = extensionManager.getExtension(
+ PersistenceOptions.class, new Object[] { options });
+ final PAnnotatedModel paModel = extensionManager.getExtension(
+ PersistenceMappingBuilder.class).buildMapping(ecores, po,
+ extensionManager);
+ final HibernateMappingGenerator hmg = extensionManager
+ .getExtension(HibernateMappingGenerator.class);
+ hmg.setPersistenceOptions(po);
+ FileWriter writer = new FileWriter(file);
+ writer.write(hmg.generateToString(paModel));
+ writer.flush();
+ } catch (IOException e) {
+ log.error(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/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/HbMapperConstants.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/HbMapperConstants.java
new file mode 100755
index 000000000..64b579a5b
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/HbMapperConstants.java
@@ -0,0 +1,74 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: HbMapperConstants.java,v 1.12 2009/06/28 02:05:07 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+/**
+ * AnnotationUtil used by the hibernate mapper
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.12 $
+ */
+public class HbMapperConstants {
+ // the natural-id, the value of the attribute is mutable true/false
+ public static final String NATURAL_ID_ATTR = "natural-id";
+
+ /** The expected parameter name which contains the enum class name */
+ public static final String ENUM_CLASS_PARAM = "enumClass";
+
+ /** The expected parameter name which contains the enum class name */
+ public static final String EPACKAGE_PARAM = "epackage";
+
+ public static final String ECLASSIFIER_PARAM = "eclassifier";
+
+ /**
+ * Name of the Hibernate type param that holds the name of the EMF attribute for the EMF custom data type.
+ */
+ public static final String EDATATYPE_PARAM = "edatatype";
+
+ /** Name used for the feature property in the featuremap entry */
+ public static final String PROPERTY_FEATURE = "fme_feature";
+
+ /** Name used for the text property in a mixed featuremap entry */
+ public static final String PROPERTY_MIXED_TEXT = "fme_mixed_text";
+
+ /** Name used for the text property in a mixed featuremap entry */
+ public static final String PROPERTY_MIXED_COMMENT = "fme_mixed_comment";
+
+ /** Name used for the text property in a mixed featuremap entry */
+ public static final String PROPERTY_MIXED_CDATA = "fme_mixed_cdata";
+
+ /** Name used for the primitive value in a wildcard feature map */
+ public static final String PROPERTY_ANY_PRIMITIVE = "fme_any_data";
+
+ /** Name used for the reference value in a wildcard feature map */
+ public static final String PROPERTY_ANY_REFERENCE = "fme_any_reference";
+
+ /** Used to tag an entity as a featuremap */
+ public static final String FEATUREMAP_META = "featureMap";
+
+ /** Name used for the eclass meta data */
+ public static final String ECLASS_NAME_META = "eclassName";
+
+ /** Name used for the epackage meta data */
+ public static final String EPACKAGE_META = "epackage";
+
+ /** The meta attribute for a synthetic id */
+ public static final String ID_META = "syntheticId";
+
+ /** The meta attribute for a synthetic version */
+ public static final String VERSION_META = "syntheticVersion";
+} \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/HibernateMappingGenerator.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/HibernateMappingGenerator.java
new file mode 100755
index 000000000..b2d1888cd
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/HibernateMappingGenerator.java
@@ -0,0 +1,378 @@
+/**
+ * <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
+ * Michael Kanaley, TIBCO Software Inc., custom type handling
+ * </copyright>
+ *
+ * $Id: HibernateMappingGenerator.java,v 1.24 2009/03/07 21:15:19 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEDataType;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEPackage;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedModel;
+import org.eclipse.emf.teneo.annotations.pannotation.PannotationFactory;
+import org.eclipse.emf.teneo.extension.ExtensionManager;
+import org.eclipse.emf.teneo.extension.ExtensionManagerAware;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.hibernate.hbannotation.FilterDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.NamedQuery;
+import org.eclipse.emf.teneo.hibernate.hbannotation.ParamDef;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbannotation.TypeDef;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEClass;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEDataType;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage;
+import org.eclipse.emf.teneo.mapping.strategy.impl.ClassicEntityNameStrategy;
+import org.eclipse.emf.teneo.simpledom.Document;
+import org.eclipse.emf.teneo.simpledom.DocumentHelper;
+import org.eclipse.emf.teneo.simpledom.Element;
+import org.eclipse.emf.teneo.util.StoreUtil;
+
+/**
+ * The main starting point for generating a hibernate mapping from a PAnnotated
+ * model.
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class HibernateMappingGenerator implements ExtensionPoint,
+ ExtensionManagerAware {
+
+ /** The logger */
+ private static final Log log = LogFactory
+ .getLog(HibernateMappingGenerator.class);
+
+ /** The list of processed annotated classes */
+ private Set<PAnnotatedEClass> processedPAClasses = null;
+
+ /** the mapping context */
+ private MappingContext hbmContext;
+
+ /** The extensionManager */
+ private ExtensionManager extensionManager;
+
+ /** The persistenceoptions */
+ private PersistenceOptions persistenceOptions;
+
+ /**
+ * Register the entity names in context.
+ */
+ protected void initEntityNames(MappingContext hbmContext,
+ PAnnotatedModel paModel) {
+ for (PAnnotatedEPackage pae : paModel.getPaEPackages()) {
+ for (PAnnotatedEClass paClass : pae.getPaEClasses()) {
+ if (paClass.getEntity() != null) {
+ hbmContext.setEntityName(paClass.getModelEClass(),
+ getEntityName(paClass));
+ }
+ }
+ }
+ }
+
+ /**
+ * @return Returns the entity name for the given paClass
+ */
+ protected String getEntityName(PAnnotatedEClass paClass) {
+ final EClass eclass = paClass.getModelEClass();
+
+ String name = paClass.getEntity().getName();
+ if (name == null) {
+ // TODO sure we do not need package here?
+ // MT: I think for 99.9% of the cases there are no name clashes but
+ // it is possible to
+ // that a package name is required to make things unique. This can
+ // be done in a next
+ // release as an
+ // optional feature.
+ name = hbmContext.getEntityNameStrategy().toEntityName(eclass);
+ }
+ return name;
+ }
+
+ /** Generate a hibernate mapping xml document from the pamodel */
+ public Document generate(PAnnotatedModel paModel) throws MappingException {
+ if (log.isDebugEnabled()) {
+ log.debug("Geneting Hibernate mapping for " + paModel);
+ }
+ try {
+ this.hbmContext = getExtensionManager().getExtension(
+ MappingContext.class);
+ this.hbmContext.setMappingProperties(getPersistenceOptions());
+ hbmContext.setPaModel(paModel);
+ hbmContext.beginDocument(createDocument());
+ initEntityNames(hbmContext, paModel);
+ processTypedefs(paModel);
+ processPersistentClasses(paModel);
+ // Process Named Queries
+ // Added by PhaneeshN
+ // This will emit the named query implementation into the mapping
+ // based on model annotation @NamedQuery(name={name},
+ // query={query});
+ // Named queries can be parameterized
+ for (PAnnotatedEPackage paPackage : paModel.getPaEPackages()) {
+ processPANamedQueries(paPackage);
+ for (PAnnotatedEClass paEClass : paPackage.getPaEClasses()) {
+ processPANamedQueries(paEClass);
+ }
+ }
+ return hbmContext.endDocument();
+ } catch (MappingException exc) {
+ throw new MappingException("Hibernate mapping generation failed",
+ exc);
+ }
+ }
+
+ /**
+ * Generate the hibernate mapping xml as a string
+ */
+ public String generateToString(PAnnotatedModel annotatedModel)
+ throws MappingException {
+ return generate(annotatedModel).emitXML();
+ }
+
+ /**
+ * @return Returns an empty document used as template for the genration.
+ */
+ protected Document createDocument() {
+ Document mappingDoc = new Document();
+ mappingDoc
+ .setDocType("<!DOCTYPE hibernate-mapping PUBLIC \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\" "
+ + "\"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">");
+ mappingDoc.setRoot(DocumentHelper.createElement("hibernate-mapping"));
+ // set auto-import is false if the default eclass naming strategy is not
+ // used
+ if (!(hbmContext.getEntityNameStrategy() instanceof ClassicEntityNameStrategy)) {
+ log
+ .debug("Setting auto-import=false because eclassnamingstrategy is not the defaulteclassnamestrategy");
+ mappingDoc.getRoot().addAttribute("auto-import", "false");
+ }
+ return mappingDoc;
+ }
+
+ /** Process all annotated classes of the pamodel */
+ protected void processPersistentClasses(PAnnotatedModel paModel) {
+ try {
+ processedPAClasses = new HashSet<PAnnotatedEClass>();
+ for (PAnnotatedEPackage paPackage : paModel.getPaEPackages()) {
+ for (PAnnotatedEClass paEClass : paPackage.getPaEClasses()) {
+ // here, we eliminate map.enties
+ if (!hbmContext.isMapEMapAsTrueMap()
+ || !StoreUtil.isMapEntry(paEClass.getModelEClass())) {
+ processPAClass(paEClass);
+
+ }
+ mapFilterDef(hbmContext.getCurrent(),
+ ((HbAnnotatedEClass) paEClass).getFilterDef());
+ }
+ mapFilterDef(hbmContext.getCurrent(),
+ ((HbAnnotatedEPackage) paPackage).getFilterDef());
+ }
+ } finally {
+ processedPAClasses = null;
+ }
+ }
+
+ protected void mapFilterDef(Element parentElement,
+ List<FilterDef> filterDefs) {
+ for (FilterDef fd : filterDefs) {
+ final Element fdElement = parentElement.addElement("filter-def");
+ fdElement.addAttribute("name", fd.getName());
+ if (fd.getDefaultCondition() != null) {
+ fdElement.addAttribute("condition", fd.getDefaultCondition());
+ }
+ for (ParamDef pd : fd.getParameters()) {
+ final Element pdElement = fdElement.addElement("filter-param");
+ pdElement.addAttribute("name", pd.getName());
+ pdElement.addAttribute("type", pd.getType());
+ }
+ }
+ }
+
+ /**
+ * Process the given class, ensures that processing order is consistent with
+ * inheritance order. The given paEClass is added to the processedPAClasses.
+ */
+ protected void processPAClass(PAnnotatedEClass paEClass) {
+ if (processedPAClasses.add(paEClass)) {
+ // also mapped superclasses can have an entity but ignore them here
+ if (paEClass.getEntity() != null
+ && paEClass.getMappedSuperclass() == null) {
+ // this is a persistent entity
+ PAnnotatedEClass paSuperEntity = paEClass.getPaSuperEntity();
+ if (paSuperEntity != null) {
+ // enforce processing order consistent with inheritance
+ // order
+ processPAClass(paSuperEntity);
+ }
+
+ // ignore the map entries which do not have an explicit entity
+ if (paEClass.getModelEClass().getInstanceClass() == Map.Entry.class
+ && paEClass.getEntity() == null) {
+ log.debug("Ignoring " + paEClass.getModelEClass().getName()
+ + " ignored, is a map entry");
+ paEClass.setTransient(PannotationFactory.eINSTANCE
+ .createTransient());
+ return;
+ }
+
+ hbmContext.setCurrentEClass(paEClass.getModelEClass());
+ hbmContext.getEntityMapper().processEntity(paEClass);
+
+ } else if (log.isDebugEnabled()) {
+ log.debug("Skipping non-persistent class " + paEClass);
+ }
+ }
+ }
+
+ /**
+ * Processes the typedef annotations and creates corresponding typedef
+ * instances in the mapping.
+ */
+ protected void processTypedefs(PAnnotatedModel paModel) {
+ // Walk thru all the packages looking for custom EDataTypes.
+ for (PAnnotatedEPackage annotatedEPackage : paModel.getPaEPackages()) {
+ HbAnnotatedEPackage paPackage = (HbAnnotatedEPackage) annotatedEPackage;
+
+ // handle the typedefs
+ for (TypeDef td : paPackage.getHbTypeDef()) {
+ emitTypeDef(td);
+ }
+
+ // Walk thru all the classifiers of the given package.
+ for (PAnnotatedEDataType annotatedEDataType : paPackage
+ .getPaEDataTypes()) {
+ final HbAnnotatedEDataType hed = (HbAnnotatedEDataType) annotatedEDataType;
+ if (hed.getHbTypeDef() != null) {
+ emitTypeDef(hed.getHbTypeDef());
+ }
+ }
+ }
+ }
+
+ /**
+ * Process the given class and declare named queries that are annotated as
+ * Model Annotations
+ *
+ * @author PhaneeshN <a
+ * href="mailto:phaneesh.nagararaja@sos.sungard.com">phaneesh
+ * .nagararaja@sos.sungard.com</a> <a
+ * href="http://www.sungardhe.com">SunGard Higher Education</a>
+ */
+ protected void processPANamedQueries(PAnnotatedEClass paEClass) {
+ // TODO: Should be refactored into a NamedQueryMapper Extension and
+ // register it into
+ // extension Manager
+ if (log.isDebugEnabled()) {
+ log.debug("Processing Queries for "
+ + paEClass.getModelEClass().getName());
+ }
+ if (log.isDebugEnabled()) {
+ log
+ .debug("********************** Named Queries ***************************");
+ for (NamedQuery namedQuery : ((HbAnnotatedEClass) paEClass)
+ .getHbNamedQuery()) {
+ log.info(namedQuery.getName() + ":" + namedQuery.getQuery());
+ }
+ log
+ .debug("****************************************************************");
+ }
+ for (NamedQuery namedQuery : ((HbAnnotatedEClass) paEClass)
+ .getHbNamedQuery()) {
+ final Element target = this.hbmContext.getCurrent().addElement(
+ "query");
+ target.addAttribute("name", namedQuery.getName());
+ target.addText("<![CDATA[" + namedQuery.getQuery() + "]]>");
+ }
+ }
+
+ protected void processPANamedQueries(PAnnotatedEPackage paEPackage) {
+ // TODO: Should be refactored into a NamedQueryMapper Extension and
+ // register it into
+ // extension Manager
+ if (log.isDebugEnabled()) {
+ log.debug("Processing Queries for "
+ + paEPackage.getModelEPackage().getName());
+ }
+ if (log.isDebugEnabled()) {
+ log
+ .debug("********************** Named Queries ***************************");
+ for (NamedQuery namedQuery : ((HbAnnotatedEPackage) paEPackage)
+ .getHbNamedQuery()) {
+ log.info(namedQuery.getName() + ":" + namedQuery.getQuery());
+ }
+ log
+ .debug("****************************************************************");
+ }
+ for (NamedQuery namedQuery : ((HbAnnotatedEPackage) paEPackage)
+ .getHbNamedQuery()) {
+ final Element target = this.hbmContext.getCurrent().addElement(
+ "query");
+ target.addAttribute("name", namedQuery.getName());
+ target.addText("<![CDATA[" + namedQuery.getQuery() + "]]>");
+ }
+ }
+
+ /** Emit a typedef */
+ protected void emitTypeDef(TypeDef td) {
+ final Element target = this.hbmContext.getCurrent().addElement(
+ "typedef");
+ target.addAttribute("name", td.getName());
+ target.addAttribute("class", td.getTypeClass());
+ for (Parameter param : td.getParameters()) {
+ target.addElement("param").addAttribute("name", param.getName())
+ .addText(param.getValue());
+ }
+ }
+
+ /**
+ * @return the extensionManager
+ */
+ public ExtensionManager getExtensionManager() {
+ return extensionManager;
+ }
+
+ /**
+ * @param extensionManager
+ * the extensionManager to set
+ */
+ public void setExtensionManager(ExtensionManager extensionManager) {
+
+ // set the default extensions for mapping in the extensionManager
+
+ this.extensionManager = extensionManager;
+ }
+
+ /**
+ * @return the persistenceOptions
+ */
+ public PersistenceOptions getPersistenceOptions() {
+ return persistenceOptions;
+ }
+
+ /**
+ * @param persistenceOptions
+ * the persistenceOptions to set
+ */
+ public void setPersistenceOptions(PersistenceOptions persistenceOptions) {
+ this.persistenceOptions = persistenceOptions;
+ }
+} \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/IdMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/IdMapper.java
new file mode 100755
index 000000000..64f490fbc
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/IdMapper.java
@@ -0,0 +1,415 @@
+/**
+ * <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 Davide Marchignoli
+ * </copyright> $Id: IdMapper.java,v 1.33 2010/08/18 12:21:13 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
+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.Column;
+import org.eclipse.emf.teneo.annotations.pannotation.GeneratedValue;
+import org.eclipse.emf.teneo.annotations.pannotation.GenerationType;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.ManyToOne;
+import org.eclipse.emf.teneo.annotations.pannotation.SequenceGenerator;
+import org.eclipse.emf.teneo.annotations.pannotation.SequenceStyleGenerator;
+import org.eclipse.emf.teneo.annotations.pannotation.TableGenerator;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.hibernate.hbannotation.GenericGenerator;
+import org.eclipse.emf.teneo.hibernate.hbannotation.Parameter;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEPackage;
+import org.eclipse.emf.teneo.simpledom.DocumentHelper;
+import org.eclipse.emf.teneo.simpledom.Element;
+
+/**
+ * Mapper generating id entry for Hibernate from PAnnotatedElements. Throws an error if called for non-root entities.
+ *
+ * @author <a href="mailto:marchign at elver.org">Davide Marchignoli</a>
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class IdMapper extends AbstractAssociationMapper implements ExtensionPoint {
+
+ /** The logger */
+ private static final Log log = LogFactory.getLog(IdMapper.class);
+
+ /** the hibernate generator class names */
+ private static final String[] GENERATOR_CLASS_NAMES;
+
+ /** initializes the hibernate class names array */
+ static {
+ GENERATOR_CLASS_NAMES = new String[GenerationType.VALUES.size()];
+ GENERATOR_CLASS_NAMES[GenerationType.AUTO.getValue()] = "native";
+ GENERATOR_CLASS_NAMES[GenerationType.IDENTITY.getValue()] = "identity";
+ GENERATOR_CLASS_NAMES[GenerationType.SEQUENCE.getValue()] = "sequence";
+ GENERATOR_CLASS_NAMES[GenerationType.TABLE.getValue()] = "hilo";
+ GENERATOR_CLASS_NAMES[GenerationType.SEQUENCESTYLE.getValue()] = "org.hibernate.id.enhanced.SequenceStyleGenerator";
+ GENERATOR_CLASS_NAMES[GenerationType.ASSIGNED.getValue()] = "assigned";
+ }
+
+ /** Util method to create an id or composite-id element */
+ public static Element getCreateIdElement(Element entityElement, PAnnotatedEClass aClass) {
+ if (aClass.getIdClass() != null) { // composite id
+ Element element = entityElement.element("composite-id");
+ if (element == null) {
+ element = DocumentHelper.createElement("composite-id").addAttribute("class",
+ aClass.getIdClass().getValue()).addAttribute("mapped", "true");
+ entityElement.add(0, element);
+ }
+ return element;
+ } else {
+ Element element = entityElement.element("id");
+ if (element == null) {
+ element = DocumentHelper.createElement("id");
+ entityElement.add(0, element);
+ }
+ return element;
+ }
+ }
+
+ /**
+ * Add synthetic id to the class
+ */
+ public static Element addSyntheticId(MappingContext mc, Element entityElement) {
+ if (entityElement.element("id") != null || entityElement.element("composite-id") != null) {
+ throw new MappingException("Syntheticid should only be called if there is no id element");
+ }
+
+ final Element idElement = DocumentHelper.createElement("id");
+ entityElement.add(0, idElement);
+ idElement.addAttribute("type", "long").
+ // NOTE: the name is also set so that the property name can be
+ // used later to identify an id prop,
+ // TODO: improve this
+ addAttribute("name", mc.getIdColumnName()).addAttribute("column", mc.getIdColumnName()).addElement(
+ "generator").addAttribute("class", "native");
+
+ final Element meta = new Element("meta");
+ meta.addAttribute("attribute", HbMapperConstants.ID_META).addText("true");
+ meta.addAttribute("inherit", "false");
+ idElement.add(0, meta);
+
+ if (mc.getSyntheticIdPropertyHandlerName() != null) {
+ idElement.addAttribute("access", mc.getSyntheticIdPropertyHandlerName());
+ }
+
+ return idElement;
+ }
+
+ /**
+ * @return Returns the hibernate generator class for the given strategy.
+ */
+ private static String hbGeneratorClass(GenerationType strategy) {
+ return IdMapper.GENERATOR_CLASS_NAMES[strategy != null ? strategy.getValue() : GenerationType.AUTO.getValue()];
+ }
+
+ /**
+ * Process embedded id.
+ */
+ public void processEmbeddedId(PAnnotatedEReference aReference) {
+ final EReference eReference = aReference.getModelEReference();
+ final PAnnotatedEClass aClass = aReference.getPaModel().getPAnnotated(eReference.getEReferenceType());
+ final Element compositeIdElement = DocumentHelper.createElement("composite-id");
+ getHbmContext().getCurrent().add(0, compositeIdElement);
+ compositeIdElement.addAttribute("name", eReference.getName());
+ String className = getHbmContext().getInstanceClassName(aClass.getModelEClass());
+ if (className.equals(DynamicEObjectImpl.class.getName())) {
+ // note, can't use the class instance to get the class name because the
+ // runtime hibernate plugin might not be available
+ className = "org.eclipse.emf.teneo.hibernate.mapping.SerializableDynamicEObjectImpl";
+ }
+
+ compositeIdElement.addAttribute("class", className);
+ getHbmContext().setCurrent(compositeIdElement);
+
+ final Element meta1 = new Element("meta");
+ meta1.addAttribute("attribute", HbMapperConstants.ECLASS_NAME_META).addText(eReference.getEReferenceType().getName());
+ meta1.addAttribute("inherit", "false");
+ final Element meta2 = new Element("meta");
+ meta2.addAttribute("attribute", HbMapperConstants.EPACKAGE_META).addText(
+ eReference.getEReferenceType().getEPackage().getNsURI());
+ meta2.addAttribute("inherit", "false");
+ compositeIdElement.addElement(meta1);
+ compositeIdElement.addElement(meta2);
+
+ compositeIdElement.addAttribute("access", "org.eclipse.emf.teneo.hibernate.mapping.property.EReferencePropertyHandler");
+
+ for (PAnnotatedEStructuralFeature aFeature : aClass.getPaEStructuralFeatures()) {
+ if (aFeature instanceof PAnnotatedEAttribute) {
+ PAnnotatedEAttribute aAttribute = (PAnnotatedEAttribute) aFeature;
+ final Element keyPropertyElement = compositeIdElement.addElement("key-property");
+ keyPropertyElement.addAttribute("name", aFeature.getModelEStructuralFeature().getName());
+ addColumnsAndFormula(keyPropertyElement, aAttribute, getColumns(aAttribute), getHbmContext()
+ .isCurrentElementFeatureMap(), false);
+ setType(aAttribute, keyPropertyElement);
+
+// keyPropertyElement.addAttribute("access", "org.eclipse.emf.teneo.hibernate.mapping.property.EAttributePropertyHandler");
+ } else if (aFeature instanceof PAnnotatedEReference
+ && !((PAnnotatedEReference) aFeature).getModelEReference().isMany()) {
+ addKeyManyToOne(compositeIdElement, (PAnnotatedEReference) aFeature);
+ }
+ }
+ getHbmContext().setCurrent(compositeIdElement.getParent());
+
+ addAccessor(compositeIdElement, hbmContext.getComponentPropertyHandlerName());
+ }
+
+ private void addKeyManyToOne(Element currentParent, PAnnotatedEReference paReference) {
+ log.debug("Process many-to-one " + paReference);
+
+ final List<JoinColumn> jcs = getJoinColumns(paReference);
+
+ final EClass referedTo = paReference.getModelEReference().getEReferenceType();
+ final ManyToOne mto = paReference.getManyToOne();
+ String targetName = mto.getTargetEntity();
+ if (targetName == null) {
+ targetName = getHbmContext().getEntityName(referedTo);
+ }
+
+ log.debug("Target " + targetName);
+
+ final Element associationElement = addManyToOne(currentParent, paReference, targetName, true);
+
+ addForeignKeyAttribute(associationElement, paReference);
+ addLazyProxy(associationElement, mto.getFetch(), paReference);
+
+ addJoinColumns(paReference, associationElement, jcs, getHbmContext().isDoForceOptional(paReference)
+ || mto.isOptional() || getHbmContext().isCurrentElementFeatureMap());
+
+ // MT: TODO; the characteristic of the other side should be checked (if
+ // present), if the otherside is a onetoone
+ // then this
+ // should be set to true. But then this is then handled by a
+ // bidirectional onetoone (I think).
+ // if (joinColumns.isEmpty())
+ // associationElement.addAttribute("unique", "true");
+ }
+
+ /**
+ * Add property to the mapped id element
+ */
+ public void processIdProperty(PAnnotatedEAttribute id) {
+ final PAnnotatedEClass aClass = id.getPaEClass();
+
+ // check precondition
+ if (aClass.getPaSuperEntity() != null && aClass.getPaSuperEntity().hasIdAnnotatedFeature()) {
+ log
+ .error("The annotated eclass: "
+ + aClass
+ + " has an id-annotated feature: "
+ + id
+ + " while it has a "
+ + "superclass/type, id properties should always be specified in the top of the inheritance structure");
+ throw new MappingException(
+ "The annotated eclass: "
+ + aClass
+ + " has an id-annotated feature: "
+ + id
+ + " while it has a "
+ + "superclass/type, id properties should always be specified in the top of the inheritance structure");
+ }
+
+ final EAttribute eAttribute = id.getModelEAttribute();
+ final List<Column> columns = getColumns(id);
+ final GeneratedValue generatedValue = id.getGeneratedValue();
+
+ // if (column != null && column.getColumnDefinition() != null) {
+ // // TODO support
+ // log.error("Unsupported, ColumnDefinition in " + column);
+ // throw new MappingException("Unsupported, ColumnDefinition", column);
+ // }
+ // if (column != null && column.getTable() != null) {
+ // // TODO support
+ // log.error("Unsupported, SecondaryTable in " + column);
+ // throw new MappingException("Unsupported, SecondaryTable", column);
+ // }
+
+ final Element idElement = getCreateIdElement(getHbmContext().getCurrent(), aClass);
+ final boolean isCompositeId = aClass.getIdClass() != null;
+
+ final Element usedIdElement;
+ if (isCompositeId) {
+ usedIdElement = idElement.addElement("key-property");
+ } else {
+ usedIdElement = idElement;
+ }
+
+ // if idclass != null then this is a composite id which can not have a
+ // unique constraint
+ // on an id column
+ addColumnsAndFormula(usedIdElement, id, columns, false, false, aClass.getIdClass() == null, true);
+
+ usedIdElement.addAttribute("name", eAttribute.getName());
+ if (id.getEnumerated() == null) {
+ setType(id, usedIdElement);
+
+ if (eAttribute.getDefaultValue() != null) {
+ usedIdElement.addAttribute("unsaved-value", eAttribute.getDefaultValue().toString());
+ } else if (eAttribute.getEType().getDefaultValue() != null) {
+ usedIdElement.addAttribute("unsaved-value", eAttribute.getEType().getDefaultValue().toString());
+ }
+
+ } else { // enumerated id
+ final EClassifier eclassifier = id.getModelEAttribute().getEType();
+ if (!getHbmContext().isGeneratedByEMF() && !getHbmContext().isDynamic(eclassifier)) {
+ final String typeName = getEnumUserType(id.getEnumerated());
+ final Class<?> instanceClass = getHbmContext().getInstanceClass(eclassifier);
+ usedIdElement.addElement("type").addAttribute("name", typeName).addElement("param").addAttribute(
+ "name", "enumClassName").addText(instanceClass.getName());
+ } else if (!getHbmContext().isGeneratedByEMF() && getHbmContext().isDynamic(eclassifier)) {
+ throw new UnsupportedOperationException("DYNAMIC WITH ENUM ID NOT YET SUPPORTED");
+ } else if (id.getModelEAttribute().getEType().getInstanceClass() != null) {
+ usedIdElement.addElement("type").addAttribute("name", getEnumUserType(id.getEnumerated())).addElement(
+ "param").addAttribute("name", HbMapperConstants.ENUM_CLASS_PARAM).addText(
+ eAttribute.getEType().getInstanceClass().getName());
+ } else {
+ final Element typeElement = usedIdElement.addElement("type").addAttribute("name",
+ hbDynamicEnumType(id.getEnumerated()));
+ typeElement.addElement("param").addAttribute("name", HbMapperConstants.ECLASSIFIER_PARAM).addText(
+ id.getModelEAttribute().getEType().getName());
+ typeElement.addElement("param").addAttribute("name", HbMapperConstants.EPACKAGE_PARAM).addText(
+ id.getModelEAttribute().getEType().getEPackage().getNsURI());
+ }
+ }
+
+ // TODO define what to do for unsettable id attribute (unlikely, maybe
+ // error)
+
+ if (generatedValue != null) {
+ if (isCompositeId) {
+ throw new MappingException("Composite id can not have a generated value "
+ + id.getModelEAttribute().getEContainingClass().getName() + "/"
+ + id.getModelEAttribute().getName());
+ }
+
+ final Element generatorElement = usedIdElement.addElement("generator");
+
+ GenericGenerator gg;
+ if (generatedValue.getGenerator() != null
+ && (gg = getGenericGenerator(id.getPaModel(), generatedValue.getGenerator())) != null) {
+ log.debug("GenericGenerator the strategy in the GeneratedValue is ignored (if even set)");
+ generatorElement.addAttribute("class", gg.getStrategy());
+ if (gg.getParameters() != null) {
+ for (Parameter param : gg.getParameters()) {
+ generatorElement.addElement("param").addAttribute("name", param.getName()).addText(
+ param.getValue());
+ }
+ }
+ } else if (GenerationType.IDENTITY.equals(generatedValue.getStrategy())) {
+ generatorElement.addAttribute("class", "identity");
+ } else if (GenerationType.TABLE.equals(generatedValue.getStrategy())) {
+ generatorElement.addAttribute("class", IdMapper.hbGeneratorClass(generatedValue.getStrategy()));
+ if (generatedValue.getGenerator() != null) { // table
+ // generator
+ final TableGenerator tg = id.getPaModel().getTableGenerator(id.getModelEAttribute(),
+ generatedValue.getGenerator());
+ generatorElement.addElement("param").addAttribute("name", "table").setText(
+ (tg.getTable() != null ? tg.getTable() : "uid_table")); // externalize
+ generatorElement.addElement("param").addAttribute("name", "column").setText(
+ tg.getValueColumnName() != null ? tg.getValueColumnName() : "next_hi_value_column"); // externalize
+ generatorElement.addElement("param").addAttribute("name", "max_lo").setText(
+ (tg.getAllocationSize() - 1) + "");
+ } else {
+ generatorElement.addElement("param").addAttribute("name", "table").setText("uid_table"); // externalize
+ generatorElement.addElement("param").addAttribute("name", "column").setText("next_hi_value_column"); // externalize
+ }
+ } else if (GenerationType.SEQUENCE.equals(generatedValue.getStrategy())) {
+ if (generatedValue.getGenerator() != null) {
+ final SequenceGenerator sg = id.getPaModel().getSequenceGenerator(id.getModelEAttribute(),
+ generatedValue.getGenerator());
+ if (sg.isSetAllocationSize()) {
+ generatorElement.addAttribute("class", "seqhilo");
+ generatorElement.addElement("param").addAttribute("name", "sequence").setText(
+ sg.getSequenceName());
+ // generatorElement.addElement("param").addAttribute("name",
+ // "initialValue").setText(
+ // Integer.toString(sg.getInitialValue()));
+ generatorElement.addElement("param").addAttribute("name", "max_lo").setText(
+ Integer.toString(sg.getAllocationSize() - 1));
+ } else {
+ generatorElement.addAttribute("class", IdMapper.hbGeneratorClass(generatedValue.getStrategy()));
+ generatorElement.addElement("param").addAttribute("name", "sequence").setText(
+ sg.getSequenceName());
+ }
+ } else {
+ generatorElement.addAttribute("class", IdMapper.hbGeneratorClass(generatedValue.getStrategy()));
+ }
+ } else if (GenerationType.SEQUENCESTYLE.equals(generatedValue.getStrategy())) {
+ generatorElement.addAttribute("class", IdMapper.hbGeneratorClass(generatedValue.getStrategy()));
+ if (generatedValue.getGenerator() != null) {
+ final SequenceStyleGenerator sg = id.getPaModel().getSequenceStyleGenerator(
+ id.getModelEAttribute(), generatedValue.getGenerator());
+ generatorElement.addElement("param").addAttribute("name", "sequence_name").setText(
+ sg.getSequenceName());
+ generatorElement.addElement("param").addAttribute("name", "optimizer").setText(
+ sg.getOptimizer().getName().toLowerCase());
+ generatorElement.addElement("param").addAttribute("name", "initial_value").setText(
+ Integer.toString(sg.getInitialValue()));
+ generatorElement.addElement("param").addAttribute("name", "increment_size").setText(
+ Integer.toString(sg.getIncrementSize()));
+ }
+ } else {
+ generatorElement.addAttribute("class", IdMapper.hbGeneratorClass(generatedValue.getStrategy()));
+ }
+ } else {
+ // check if there is a one-to-one with pk
+ checkAddForeignGenerator(idElement, aClass);
+ }
+ }
+
+ // check if one of the ereferences has a one-to-one and a
+ // primarykeyjoincolumn
+ // then use a special generator
+ protected boolean checkAddForeignGenerator(Element idElement, PAnnotatedEClass aClass) {
+ for (PAnnotatedEStructuralFeature aFeature : aClass.getPaEStructuralFeatures()) {
+ if (aFeature instanceof PAnnotatedEReference) {
+ final PAnnotatedEReference aReference = (PAnnotatedEReference) aFeature;
+ if (aReference.getOneToOne() != null && !aReference.getPrimaryKeyJoinColumns().isEmpty()) {
+ final Element genElement = idElement.addElement("generator");
+ genElement.addAttribute("class", "foreign");
+ final Element paramElement = genElement.addElement("param");
+ paramElement.addAttribute("name", "property");
+ paramElement.addText(aReference.getModelElement().getName());
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Returns a sequence generator on the basis of its name, if not found then null is returned.
+ */
+ public GenericGenerator getGenericGenerator(PAnnotatedModel paModel, String name) {
+ for (PAnnotatedEPackage annotatedEPackage : paModel.getPaEPackages()) {
+ final HbAnnotatedEPackage pae = (HbAnnotatedEPackage) annotatedEPackage;
+ for (GenericGenerator gg : pae.getHbGenericGenerators()) {
+ if (gg.getName() != null && gg.getName().compareTo(name) == 0) {
+ if (gg.getStrategy() == null) {
+ throw new MappingException("The GenericGenerator: " + name + " has no strategy defined!");
+ }
+
+ return gg;
+ }
+ }
+ }
+ log.debug("No GenericGenerator defined under name: " + name);
+ return null;
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyAttributeMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyAttributeMapper.java
new file mode 100755
index 000000000..aba48cb91
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyAttributeMapper.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: ManyAttributeMapper.java,v 1.27 2009/11/02 18:14:18 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinTable;
+import org.eclipse.emf.teneo.annotations.pannotation.OneToMany;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEAttribute;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+import org.eclipse.emf.teneo.simpledom.Element;
+
+/**
+ * Maps many valued attributes.
+ * <p>
+ * Assumes that the given {@link PAnnotatedEAttribute} is normal, i.e.
+ * <ul>
+ * <li>it is a {@link PAnnotatedEReference};
+ * <li>it has a {@link OneToMany} annotation;
+ * <li>oneToMany.getCascade() is ALL
+ * <li>oneToMany.getTargetEntity is not specified
+ * <li>the {@link OneToMany} annotation have the following attributes set:
+ * <li>TODO which is the meaning of a column annotation? Can it have one?
+ * </ul>
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class ManyAttributeMapper extends AbstractAssociationMapper implements ExtensionPoint {
+
+ /** The logger */
+ private static final Log log = LogFactory.getLog(ManyAttributeMapper.class);
+
+ /**
+ * Process a many=true EAttribute
+ */
+ public void processManyAttribute(PAnnotatedEAttribute paAttribute) {
+ if (log.isDebugEnabled()) {
+ log.debug("Generating many valued attribute mapping for " + paAttribute);
+ }
+
+ final HbAnnotatedEAttribute hbAttribute = (HbAnnotatedEAttribute) paAttribute;
+ final EAttribute eattr = paAttribute.getModelEAttribute();
+
+ final boolean isArray = eattr.getEType().getInstanceClass() != null
+ && eattr.getEType().getInstanceClass().isArray();
+
+ final Element collElement = addCollectionElement(paAttribute);
+ final Element keyElement = collElement.addElement("key");
+
+ final JoinTable jt = paAttribute.getJoinTable();
+ final List<JoinColumn> jcs = paAttribute.getJoinColumns() == null ? new ArrayList<JoinColumn>() : paAttribute
+ .getJoinColumns();
+ final OneToMany otm = paAttribute.getOneToMany();
+
+ if (jt != null) {
+ addJoinTable(hbAttribute, collElement, keyElement, jt);
+ addKeyColumns(hbAttribute, keyElement, jcs);
+ } else {
+ // TODO should we also add joinColumns annotation?
+ addKeyColumns(hbAttribute, keyElement, jcs);
+ }
+
+ if (!otm.isIndexed() && isArray) {
+ log.warn("One to many is not indexed but this is an array, force=ing index column!");
+ }
+
+ if ((otm.isIndexed() || isArray) && hbAttribute.getHbIdBag() == null) {
+ addListIndex(collElement, paAttribute);
+ }
+
+ if (!isArray) {
+ addFetchType(collElement, otm.getFetch());
+ }
+ addCascadesForMany(collElement, getCascades(hbAttribute.getHbCascade(), otm.getCascade()));
+
+ if (FeatureMapUtil.isFeatureMap(paAttribute.getModelEAttribute())) {
+ if (getHbmContext().getPersistenceOptions().isMapFeatureMapAsComponent()) {
+ final Element curElement = getHbmContext().getCurrent();
+ FeatureMapMapping fmm = new FeatureMapMapping(getHbmContext(), paAttribute);
+ Element element = collElement.addElement("composite-element").addAttribute("class",
+ getHbmContext().getFeatureMapEntryClassName());
+ fmm.setCompositeElement(element);
+ fmm.process();
+ getHbmContext().setCurrent(curElement);
+ // composite-element class="DeliveryAttempt">
+ } else {
+ FeatureMapMapping fmm = new FeatureMapMapping(getHbmContext(), paAttribute);
+ getHbmContext().addFeatureMapMapper(fmm);
+ collElement.addElement("one-to-many").addAttribute("entity-name", fmm.getEntityName());
+ }
+ } else {
+ addElementElement(collElement, paAttribute, getColumns(paAttribute), otm.getTargetEntity());
+ }
+
+ addAccessor(collElement);
+
+ mapFilter(collElement, ((HbAnnotatedETypeElement) paAttribute).getFilter());
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyExternalReferenceMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyExternalReferenceMapper.java
new file mode 100755
index 000000000..2cb976aae
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyExternalReferenceMapper.java
@@ -0,0 +1,79 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: ManyExternalReferenceMapper.java,v 1.1 2008/12/16 20:40:29 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinTable;
+import org.eclipse.emf.teneo.annotations.pannotation.OneToMany;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+import org.eclipse.emf.teneo.simpledom.Element;
+
+/**
+ * Maps ereference with isMany is true which should be stored as an URI.
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class ManyExternalReferenceMapper extends AbstractAssociationMapper
+ implements ExtensionPoint {
+
+ private static final Log log = LogFactory
+ .getLog(ManyExternalReferenceMapper.class);
+
+ /**
+ * Process a many=true EReference with URI attribute.
+ */
+ public void processManyReference(PAnnotatedEReference paReference) {
+ if (log.isDebugEnabled()) {
+ log.debug("Generating many valued attribute mapping for "
+ + paReference);
+ }
+
+ final HbAnnotatedEReference hbReference = (HbAnnotatedEReference) paReference;
+
+ final Element collElement = addCollectionElement(paReference);
+ final Element keyElement = collElement.addElement("key");
+
+ final JoinTable jt = paReference.getJoinTable();
+ final List<JoinColumn> jcs = paReference.getJoinColumns() == null ? new ArrayList<JoinColumn>()
+ : paReference.getJoinColumns();
+ final OneToMany otm = paReference.getOneToMany();
+
+ if (jt != null) {
+ addJoinTable(hbReference, collElement, keyElement, jt);
+ addKeyColumns(hbReference, keyElement, jcs);
+ } else {
+ // TODO should we also add joinColumns annotation?
+ addKeyColumns(hbReference, keyElement, jcs);
+ }
+
+ if (otm.isIndexed() && hbReference.getHbIdBag() == null) {
+ addListIndex(collElement, paReference);
+ }
+
+ addFetchType(collElement, otm.getFetch());
+ addCascadesForMany(collElement, getCascades(hbReference.getHbCascade(),
+ otm.getCascade()));
+
+ addElementElement(collElement, paReference, getColumns(paReference),
+ otm.getTargetEntity());
+
+ addAccessor(collElement);
+
+ mapFilter(collElement, ((HbAnnotatedETypeElement) hbReference)
+ .getFilter());
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyToManyMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyToManyMapper.java
new file mode 100755
index 000000000..aab8029df
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyToManyMapper.java
@@ -0,0 +1,166 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: ManyToManyMapper.java,v 1.33 2011/02/21 06:39:57 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinTable;
+import org.eclipse.emf.teneo.annotations.pannotation.ManyToMany;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+import org.eclipse.emf.teneo.simpledom.Element;
+import org.eclipse.emf.teneo.util.StoreUtil;
+
+/**
+ * Maps a many to many relation.
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class ManyToManyMapper extends AbstractAssociationMapper implements
+ ExtensionPoint {
+
+ /** Logger */
+ private static final Log log = LogFactory.getLog(ManyToManyMapper.class);
+
+ /**
+ * Process a many to many for all cases
+ */
+ public void process(PAnnotatedEReference paReference) {
+ log.debug("Creating many-to-many for " + paReference);
+
+ final HbAnnotatedEReference hbReference = (HbAnnotatedEReference) paReference;
+ final EReference eref = paReference.getModelEReference();
+ final JoinTable jt = hbReference.getJoinTable();
+ final ManyToMany mtm = hbReference.getManyToMany();
+
+ if (jt == null) {
+ throw new MappingException("Jointable is mandatory "
+ + StoreUtil.toString(eref));
+ }
+
+ final Element collElement = addCollectionElement(hbReference);
+
+ if (hbReference.getImmutable() != null) {
+ collElement.addAttribute("mutable", "false");
+ }
+
+ if (((HbAnnotatedEReference) paReference).getHbCache() != null) {
+ addCacheElement(collElement,
+ ((HbAnnotatedEReference) paReference).getHbCache());
+ }
+
+ final Element keyElement = collElement.addElement("key");
+ handleOndelete(keyElement, hbReference.getHbOnDelete());
+
+ boolean isMap = StoreUtil.isMap(eref)
+ && getHbmContext().isMapEMapAsTrueMap();
+ if (mtm.isIndexed() && hbReference.getHbIdBag() == null) {
+ // now we check if it is a list or a map
+ if (hbReference.getMapKey() != null
+ || hbReference.getHbMapKey() != null
+ || hbReference.getMapKeyManyToMany() != null) {
+ addMapKey(collElement, paReference);
+ } else if (isMap) {
+ addMapKey(collElement, hbReference);
+ } else {
+ addListIndex(collElement, hbReference);
+ }
+ }
+
+ addFetchType(collElement, mtm.getFetch());
+ addCascades(collElement,
+ getCascades(hbReference.getHbCascade(), mtm.getCascade()),
+ false);
+
+ final PAnnotatedEClass referedToAClass = hbReference
+ .getAReferenceType();
+ String targetName = mtm.getTargetEntity();
+ if (targetName == null) {
+ targetName = getHbmContext().getEntityName(
+ hbReference.getEReferenceType());
+ }
+ log.debug("Target entity-name " + targetName);
+
+ final Element mtmElement;
+ if (referedToAClass.isOnlyMapAsEntity()
+ || !getHbmContext().forceUseOfInstance(referedToAClass)) {
+ mtmElement = collElement.addElement("many-to-many")
+ .addAttribute("entity-name", targetName)
+ .addAttribute("unique", "false");
+ } else {
+ mtmElement = collElement
+ .addElement("many-to-many")
+ .addAttribute(
+ "class",
+ getHbmContext().getInstanceClassName(
+ hbReference.getEReferenceType()))
+ .addAttribute("unique", "false");
+ }
+
+ if (hbReference.getNotFound() != null) {
+ mtmElement.addAttribute("not-found", hbReference.getNotFound()
+ .getAction().getName().toLowerCase());
+ }
+
+ addForeignKeyAttribute(mtmElement, hbReference);
+
+ // inverse is not supported by indexed lists
+ if ((!mtm.isIndexed() && hbReference.getHbIdBag() == null && mtm
+ .getMappedBy() != null)) {
+ // note inverse is required for many-to-many to work, otherwise
+ // hibernate will insert
+ // both sides of the relation twice.
+ collElement.addAttribute("inverse", "true");
+ } else if (mtm.getMappedBy() != null && mtm.isIndexed()) {
+ log.warn("Indexed is true but indexed is not supported for inverse=true and many-to-many, not setting inverse=true");
+ }
+
+ // check for a special case that mapped by is set on both sides
+ // should always be unequal to null
+ if (hbReference.getModelEReference().getEOpposite() != null) {
+ final PAnnotatedEReference aOpposite = hbReference.getPaModel()
+ .getPAnnotated(
+ hbReference.getModelEReference().getEOpposite());
+ if (aOpposite.getManyToMany() != null
+ && aOpposite.getManyToMany().getMappedBy() != null
+ && mtm.getMappedBy() != null) {
+ log.error("Mappedby is set on both sides of the many-to-many relation, this does not work, see the efeature: "
+ + hbReference.getModelElement().toString()
+ + ". Ignoring the mappedby in this efeature");
+ mtm.setMappedBy(null);
+ }
+ }
+
+ addJoinTable(hbReference, collElement, keyElement, jt);
+ if (jt.getInverseJoinColumns() != null) {
+ for (JoinColumn joinColumn : jt.getInverseJoinColumns()) {
+ mtmElement
+ .addElement("column")
+ .addAttribute(
+ "name",
+ getHbmContext().trunc(joinColumn,
+ joinColumn.getName()))
+ .addAttribute("not-null",
+ joinColumn.isNullable() ? "false" : "true")
+ .addAttribute("unique",
+ joinColumn.isUnique() ? "true" : "false");
+ }
+ }
+
+ addAccessor(collElement);
+
+ mapFilter(collElement,
+ ((HbAnnotatedETypeElement) paReference).getFilter());
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyToOneMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyToOneMapper.java
new file mode 100755
index 000000000..4d2c7a082
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/ManyToOneMapper.java
@@ -0,0 +1,180 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: ManyToOneMapper.java,v 1.38 2011/02/21 06:39:57 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pannotation.FetchType;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinTable;
+import org.eclipse.emf.teneo.annotations.pannotation.ManyToOne;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+import org.eclipse.emf.teneo.simpledom.Element;
+
+/**
+ * Maps a {@link ManyToOne} element to its {@link MappingContext}.
+ * <p>
+ * Assumes that the given {@link PAnnotatedEStructuralFeature} is a normal
+ * ManyToOne, i.e.
+ * <ul>
+ * <li>it is a {@link PAnnotatedEReference};
+ * <li>it has a {@link ManyToOne} annotation;
+ * </ul>
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class ManyToOneMapper extends AbstractAssociationMapper implements
+ ExtensionPoint {
+
+ /** Log it */
+ private static final Log log = LogFactory.getLog(ManyToOneMapper.class);
+
+ /**
+ * Generate the hb mapping for the given reference and annotations.
+ */
+ public void process(PAnnotatedEReference paReference) {
+ log.debug("Process many-to-one " + paReference);
+
+ final HbAnnotatedEReference hbReference = (HbAnnotatedEReference) paReference;
+
+ final List<JoinColumn> jcs = getJoinColumns(paReference);
+
+ final EClass referedTo = paReference.getModelEReference()
+ .getEReferenceType();
+ final ManyToOne mto = paReference.getManyToOne();
+ String targetName = mto.getTargetEntity();
+ if (targetName == null) {
+ targetName = getHbmContext().getEntityName(referedTo);
+ }
+
+ final boolean isAny = hbReference.getAny() != null
+ || hbReference.getAnyMetaDef() != null || isEObject(targetName);
+ if (isAny) {
+ final String assocName = getHbmContext().getPropertyName(
+ hbReference.getModelEStructuralFeature());
+ final Element anyElement = createAny(assocName, hbReference,
+ hbReference.getAny(), hbReference.getAnyMetaDef(), false);
+ getHbmContext().getCurrent().add(anyElement);
+ return;
+ }
+
+ log.debug("Target " + targetName);
+
+ JoinTable joinTable = null;
+ PAnnotatedEReference aOpposite = null;
+ if (paReference.getModelEReference().getEOpposite() != null) {
+ aOpposite = paReference.getPaModel().getPAnnotated(
+ paReference.getModelEReference().getEOpposite());
+ if (aOpposite.getOneToMany() != null
+ && (!aOpposite.getOneToMany().isList() || aOpposite
+ .getOneToMany().getFetch().equals(FetchType.EXTRA))
+ && aOpposite.getJoinTable() != null) {
+ joinTable = aOpposite.getJoinTable();
+ }
+ }
+
+ final Element currentElement;
+ if (joinTable != null) {
+ final boolean addInverse = aOpposite != null
+ && aOpposite.getOneToMany() != null
+ && aOpposite.getOneToMany().getMappedBy() == null
+ && !aOpposite.getOneToMany().getFetch()
+ .equals(FetchType.EXTRA);
+
+ currentElement = getHbmContext()
+ .getCurrent()
+ .addElement("join")
+ .addAttribute(
+ "table",
+ getHbmContext().trunc(joinTable,
+ joinTable.getName()))
+ .addAttribute("inverse", Boolean.toString(addInverse))
+ .addAttribute("optional",
+ Boolean.toString(mto.isOptional()));
+
+ } else {
+ currentElement = getHbmContext().getCurrent();
+ }
+
+ if (joinTable != null) {
+ final Element keyElement = currentElement.addElement("key");
+ addKeyColumns((HbAnnotatedETypeElement) paReference, keyElement,
+ joinTable.getInverseJoinColumns());
+ }
+
+ final Element associationElement = addManyToOne(currentElement,
+ paReference, targetName, false);
+ addAccessor(associationElement);
+
+ final boolean isProperty = hbReference.getHbType() != null;
+ addLazyProxy(associationElement, mto.getFetch(), paReference);
+ if (!isProperty && hbReference.getNaturalId() != null) {
+ associationElement.addAttribute(HbMapperConstants.NATURAL_ID_ATTR,
+ Boolean.toString(hbReference.getNaturalId().isMutable()));
+ }
+
+ if (!isProperty && joinTable != null) {
+ addJoinColumns(paReference, associationElement,
+ joinTable.getJoinColumns(), mto.isOptional()
+ || getHbmContext().isDoForceOptional(paReference)
+ || getHbmContext().isCurrentElementFeatureMap());
+ }
+
+ if (!isProperty) {
+ addCascadesForSingle(associationElement,
+ getCascades(hbReference.getHbCascade(), mto.getCascade()));
+ }
+
+ if (hbReference.getHbFetch() != null) {
+ associationElement.addAttribute("fetch", hbReference.getHbFetch()
+ .getValue().getName().toLowerCase());
+ }
+
+ final boolean nullable = getHbmContext().isDoForceOptional(paReference)
+ || mto.isOptional()
+ || getHbmContext().isCurrentElementFeatureMap();
+
+ if (!isProperty) {
+ addForeignKeyAttribute(associationElement, paReference);
+ addLazyProxy(associationElement, mto.getFetch(), paReference);
+
+ if (joinTable == null) {
+ addJoinColumns(paReference, associationElement, jcs, nullable);
+ associationElement.addAttribute("not-null", nullable ? "false"
+ : "true");
+ }
+ } else if (isProperty) {
+ associationElement.addAttribute("not-null", nullable ? "false"
+ : "true");
+ }
+
+ // note that the reference must be required, nullable and unique columns
+ // are not supported
+ // by ms sql server
+ // because ms sql server also sees null as a value
+ if (paReference.getModelEReference().isContainment() && !nullable) {
+ associationElement.addAttribute("unique", "true");
+ }
+
+ // MT: TODO; the characteristic of the other side should be checked (if
+ // present), if the otherside is a onetoone
+ // then this
+ // should be set to true. But then this is then handled by a
+ // bidirectional onetoone (I think).
+ // if (joinColumns.isEmpty())
+ // associationElement.addAttribute("unique", "true");
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingContext.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingContext.java
new file mode 100755
index 000000000..415e70621
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingContext.java
@@ -0,0 +1,916 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: MappingContext.java,v 1.39 2011/04/26 18:41:15 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
+import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.annotations.mapper.AbstractProcessingContext;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+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.Column;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.PAnnotation;
+import org.eclipse.emf.teneo.annotations.pannotation.SecondaryTable;
+import org.eclipse.emf.teneo.annotations.pannotation.Table;
+import org.eclipse.emf.teneo.annotations.pannotation.UniqueConstraint;
+import org.eclipse.emf.teneo.ecore.EModelResolver;
+import org.eclipse.emf.teneo.extension.ExtensionInitializable;
+import org.eclipse.emf.teneo.extension.ExtensionManager;
+import org.eclipse.emf.teneo.extension.ExtensionManagerAware;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.mapping.strategy.EntityNameStrategy;
+import org.eclipse.emf.teneo.mapping.strategy.SQLNameStrategy;
+import org.eclipse.emf.teneo.simpledom.Document;
+import org.eclipse.emf.teneo.simpledom.Element;
+
+/**
+ * Maps a basic attribute with many=true, e.g. list of simpletypes.
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.39 $
+ */
+public class MappingContext extends AbstractProcessingContext implements
+ ExtensionPoint, ExtensionInitializable, ExtensionManagerAware {
+
+ /** The xml document to which all elements are added */
+ private Document mappingDoc;
+
+ /** The current element, normally a class element */
+ private Element currentElement;
+
+ /** Mapping from eclass to entity name */
+ private Map<EClass, String> entityNames = null;
+
+ /**
+ * Keeps track of the list of featuremapmappers created for the current
+ * entity
+ */
+ private final List<FeatureMapMapping> featureMapMappers = new ArrayList<FeatureMapMapping>();
+
+ /** The list of eattributes for which a featuremap mapping was created */
+ private final List<EAttribute> handledFeatureMapEAttributes = new ArrayList<EAttribute>();
+
+ /** the mapper used for features */
+ private FeatureMapper featureMapper;
+
+ /**
+ * Is the current element a mixed or a feature map, in this case all
+ * features should be not required. TODO: check, does this work with
+ * embedded components in a feature map?
+ */
+ private boolean currentElementFeatureMap = false;
+
+ /** The current table element is set when an entity starts */
+ private Table currentTable = null;
+
+ /**
+ * The current column prefix, is used in case of multiple mixed types in one
+ * eclass.
+ */
+ private String namePrefix = "";
+
+ /** The current secondary table being processed. May be null. */
+ private SecondaryTable currentSecondaryTable = null;
+
+ /** The current eclass */
+ protected EClass currentEClass = null;
+
+ /** The current efeature being processed */
+ protected EStructuralFeature currentEFeature = null;
+ protected PAnnotatedEStructuralFeature currentAFeature = null;
+
+ /** The entity mapper */
+ private EntityMapper entityMapper;
+
+ /** The extensionmanager used */
+ private ExtensionManager extensionManager;
+
+ /** The option to qualify entity names */
+ private EntityNameStrategy entityNameStrategy = null;
+
+ /** Version column name */
+ private String versionColumnName = null;
+
+ /** ID column name */
+ private String idColumnName = null;
+
+ /** Maximum column name */
+ protected int maximumSqlNameLength = -1;
+
+ /** The sql case strategy */
+ protected SQLNameStrategy sqlNameStrategy;
+
+ /** The escape character string used for escaping sql names */
+ protected String escapeCharacter;
+
+ private boolean adaptManualNames = false;
+
+ /**
+ * Set force optional, force optional is used in case a subclass is stored
+ * in the same table as its superclass, in this case all properties of the
+ * subclass are denoted as optional.
+ */
+ private boolean forceOptional = false;
+
+ // Options
+ private boolean alwaysVersion;
+ private boolean isMapEMapAsTrueMap;
+ private String idbagIDColumnName = "ID";
+
+ // The pa model for which this is all done, is set when generation starts
+ private PAnnotatedModel paModel = null;
+
+ // The maximum comment length allowed
+ private int maximumCommentLength = 0;
+
+ private PersistenceOptions persistenceOptions;
+
+ /** Returns the entitymapper */
+ public EntityMapper getEntityMapper() {
+ return entityMapper;
+ }
+
+ /** Set relevant properties */
+ protected void setMappingProperties(PersistenceOptions po) {
+ versionColumnName = po.getVersionColumnName();
+ idColumnName = po.getIdColumnName();
+ maximumSqlNameLength = po.getMaximumSqlNameLength();
+ adaptManualNames = po.isAutoAdaptManualSQLNames();
+ alwaysVersion = po.getAlwaysVersion();
+ isMapEMapAsTrueMap = po.isMapEMapAsTrueMap();
+ idbagIDColumnName = po.getIDBagIDColumnName();
+ maximumCommentLength = po.getMaximumCommentLength();
+ escapeCharacter = po.getSqlNameEscapeCharacter();
+ persistenceOptions = po;
+ }
+
+ /** Return the concrete impl. class */
+ protected String getInstanceClassName(EClass eClass) {
+ final Class<?> clz = getInstanceClass(eClass);
+ if (clz != null) {
+ return clz.getName();
+ }
+ log.debug("Instance class for eclass " + eClass.getName() + " is null ");
+ return DynamicEObjectImpl.class.getName();
+ }
+
+ /** Return the concrete impl. class, if none is found then null is returned */
+ protected Class<?> getInstanceClass(EClassifier eclassifier) {
+ return EModelResolver.instance().getJavaClass(eclassifier);
+ }
+
+ /**
+ * @return Returns the entity name for the given entity EClass.
+ */
+ public String getEntityName(EClass entityEClass) {
+ return getEntityName(entityEClass, true);
+ }
+
+ /**
+ * @return Returns the entity name for the given entity EClass.
+ */
+ public String getEntityName(EClass entityEClass, boolean throwCheckException) {
+ String name = entityNames.get(entityEClass);
+ if (name == null) {
+ final Class<?> implClass = getInstanceClass(entityEClass);
+ if (implClass != null) {
+ name = implClass.getName();
+ }
+ }
+ if (throwCheckException && name == null) {
+ throw new IllegalStateException(
+ "An entity name has not been registered for "
+ + entityEClass);
+ }
+ return name;
+ }
+
+ /** Set an entityname for a eclass */
+ public void setEntityName(EClass entityEClass, String entityName) {
+ entityNames.put(entityEClass, entityName);
+ }
+
+ /** Start a document */
+ public void beginDocument(Document draft) {
+ mappingDoc = draft;
+ currentElement = draft.getRoot();
+ entityNames = new HashMap<EClass, String>();
+ }
+
+ /** Finished creating the document */
+ public Document endDocument() {
+ Document builtDocument = mappingDoc;
+ mappingDoc = null;
+ currentElement = null;
+ entityNames = null;
+ return builtDocument;
+ }
+
+ /** The current element to which new elements are added */
+ public Element getCurrent() {
+ return currentElement;
+ }
+
+ /** Set the current element to which new elements are added */
+ public void setCurrent(Element newCurrent) {
+ this.currentElement = newCurrent;
+ }
+
+ public String getComponentFeatureMapTuplizer() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.elist.FeatureMapEntryComponentTuplizer";
+ }
+
+ /**
+ * Note this call will also clear the current list of featuremappers;
+ *
+ * @return the featureMapMappers gathered during the entity processing
+ */
+ public List<FeatureMapMapping> getClearFeatureMapMappers() {
+ final ArrayList<FeatureMapMapping> result = new ArrayList<FeatureMapMapping>(
+ featureMapMappers); // clone
+ // the
+ // list!
+ featureMapMappers.clear();
+ return result;
+ }
+
+ /**
+ * @param Adds
+ * a featureMapMapper to the featuremapp mapper list
+ */
+ public void addFeatureMapMapper(FeatureMapMapping featureMapMapper) {
+ if (!handledFeatureMapEAttributes.contains(featureMapMapper
+ .getEAttribute())) {
+ featureMapMappers.add(featureMapMapper);
+ handledFeatureMapEAttributes.add(featureMapMapper.getEAttribute());
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.emf.teneo.extension.ExtensionInitializable#initializeExtension
+ * ()
+ */
+ public void initializeExtension() {
+ featureMapper = createFeatureMapper();
+ entityMapper = getExtensionManager().getExtension(EntityMapper.class);
+ entityMapper.setHbmContext(this);
+ }
+
+ /**
+ * @return The builder used by entity mapped that maps features to hbm.
+ */
+ private FeatureMapper createFeatureMapper() {
+ final FeatureMapper featureMapper = getExtensionManager().getExtension(
+ FeatureMapper.class);
+ featureMapper.setHbmContext(this);
+
+ featureMapper.setBasicMapper(createMapper(BasicMapper.class));
+ featureMapper
+ .setManyAttributeMapper(createMapper(ManyAttributeMapper.class));
+ featureMapper.setEmbeddedMapper(createMapper(EmbeddedMapper.class));
+ featureMapper.setIdMapper(createMapper(IdMapper.class));
+ featureMapper.setManyToManyMapper(createMapper(ManyToManyMapper.class));
+ featureMapper.setManyToOneMapper(createMapper(ManyToOneMapper.class));
+ featureMapper.setOneToManyMapper(createMapper(OneToManyMapper.class));
+ featureMapper.setOneToOneMapper(createMapper(OneToOneMapper.class));
+ featureMapper
+ .setManyExternalReferenceMapper(createMapper(ManyExternalReferenceMapper.class));
+ return featureMapper;
+ }
+
+ protected <T> T createMapper(Class<T> clz) {
+ final T t = getExtensionManager().getExtension(clz);
+ ((AbstractMapper) t).setHbmContext(this);
+ return t;
+ }
+
+ /** process the features of the annotated eclass */
+ protected void processFeatures(List<PAnnotatedEStructuralFeature> features) {
+ for (PAnnotatedEStructuralFeature annotatedEStructuralFeature : features) {
+ entityMapper.processFeature(annotatedEStructuralFeature);
+ }
+ }
+
+ /**
+ * @return the featureMapper
+ */
+ public FeatureMapper getFeatureMapper() {
+ return featureMapper;
+ }
+
+ public String getFeatureMapEntryClassName() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.elist.HibernateFeatureMapEntry";
+ }
+
+ /**
+ * @return the currentElementFeatureMap
+ */
+ public boolean isCurrentElementFeatureMap() {
+ return currentElementFeatureMap;
+ }
+
+ /**
+ * @param currentElementFeatureMap
+ * the currentElementFeatureMap to set
+ */
+ public void setCurrentElementFeatureMap(boolean currentElementFeatureMap) {
+ this.currentElementFeatureMap = currentElementFeatureMap;
+ }
+
+ /**
+ * @return the currentTable
+ */
+ public Table getCurrentTable() {
+ return currentTable;
+ }
+
+ /**
+ * @param currentTable
+ * the currentTable to set
+ */
+ public void setCurrentTable(Table currentTable) {
+ this.currentTable = currentTable;
+ }
+
+ /**
+ * @param currentSecondaryTable
+ */
+ public void setCurrentSecondaryTable(SecondaryTable currentSecondaryTable) {
+ this.currentSecondaryTable = currentSecondaryTable;
+ }
+
+ /** Get unique constraint key. */
+ public String getUniqueConstraintKey(String colName) {
+ // Obtain UniqueConstraints from secondary or primary table.
+ List<UniqueConstraint> uniqueConstraints = null;
+ if (currentSecondaryTable != null) {
+ uniqueConstraints = currentSecondaryTable.getUniqueConstraints();
+ } else if (currentTable != null) {
+ uniqueConstraints = currentTable.getUniqueConstraints();
+ }
+ if (uniqueConstraints == null) {
+ return null;
+ }
+
+ // NOTE: Hibernate does not support one column being part of multiple
+ // unique constraints.
+ for (int i = 0, n = uniqueConstraints.size(); i < n; i++) {
+ UniqueConstraint uniqueConstraint = uniqueConstraints.get(i);
+ if (uniqueConstraint.getColumnNames().contains(colName)) {
+ return "c" + i;
+ }
+
+ }
+ return null;
+ }
+
+ /**
+ * @return the versionColumnName
+ */
+ public String getVersionColumnName() {
+ return versionColumnName;
+ }
+
+ /**
+ * @param versionColumnName
+ * the versionColumnName to set
+ */
+ public void setVersionColumnName(String versionColumnName) {
+ this.versionColumnName = versionColumnName;
+ }
+
+ /**
+ * @return the maximumColumnNameLength
+ */
+ public int getMaximumColumnNameLength() {
+ return maximumSqlNameLength;
+ }
+
+ /**
+ * @return true if {@link PersistenceOptions#isAutoAdaptManualSQLNames()} is
+ * true or if the {@link PAnnotation#isGenerated()} is true.
+ */
+ protected boolean doTrunc(PAnnotation pAnnotation) {
+ if (adaptManualNames) {
+ return true;
+ }
+ return pAnnotation.isGenerated();
+ }
+
+ /**
+ * @deprecated use {@link #trunc(PAnnotation, String)}
+ */
+ protected String trunc(String name) {
+ return trunc(null, name, true);
+ }
+
+ /**
+ * @deprecated use {@link #trunc(PAnnotation, String, boolean)}
+ */
+ protected String trunc(String truncName, boolean truncPrefix) {
+ return trunc(null, truncName, truncPrefix);
+ }
+
+ /**
+ * Calls {@link #trunc(PAnnotation, String, boolean)} with the last
+ * parameter set to true.
+ */
+ protected String trunc(PAnnotation pAnnotation, String name) {
+ return trunc(pAnnotation, name, true);
+ }
+
+ /**
+ * Utility method to truncate a column/table name. This method also repairs
+ * the name if an efeature was inherited and really belongs to another
+ * eclass. In this case jointables and join keys must be renamed to the new
+ * eclass. TODO: handle the case that the jointable/columns were set
+ * manually. This procedure will override them (only applies in case of
+ * multiple inheritance/mappedsuperclass). This renaming is required for the
+ * case that an ereference is inherited from a mapped superclass, in this
+ * case the join-column of the e-reference will be placed in another table.
+ * If one ereference is inherited by multiple subtypes then this goes wrong
+ * because they then all share the same join column with foreign keys
+ * relating it to different tables, and multiple foreign keys on one column
+ * can not point to different directions.
+ *
+ * This method is also called for table names.
+ *
+ */
+ protected String trunc(PAnnotation pAnnotation, String truncName,
+ boolean truncPrefix) {
+ if (pAnnotation != null && !doTrunc(pAnnotation)) {
+ if (!truncName.startsWith(escapeCharacter)
+ && !truncName.endsWith(escapeCharacter)) {
+ return escapeCharacter + truncName + escapeCharacter;
+ }
+ return truncName;
+ }
+
+ // see bugzilla 225818
+ // in case of attributeoverride then do not repair the name
+ final String useName;
+ // method is also called for table names
+ if (currentAFeature != null) {
+ boolean override = false;
+ if (currentAFeature instanceof PAnnotatedEAttribute) {
+ override = getAttributeOverride(currentAFeature) != null;
+ } else {
+ override = getAssociationOverrides((PAnnotatedEReference) currentAFeature) != null;
+ }
+
+ final String otherEntityName = getEntityName(
+ currentEFeature.getEContainingClass(), false);
+ // if the current name starts with the name of the mapped superclass
+ // then
+ // change it back to the current eclass, do not do this in case of
+ // override
+ if (!override
+ && currentEFeature.getEContainingClass() != currentEClass
+ && otherEntityName != null
+ && truncName.toUpperCase().startsWith(
+ otherEntityName.toUpperCase())) {
+ log.debug("Replacing name of table/joincolumn " + truncName);
+ // get rid of the first part
+ useName = getNamePrefix()
+ + getEntityName(currentEClass)
+ + truncName
+ .substring(getEntityName(
+ currentEFeature.getEContainingClass())
+ .length());
+ log.debug("with " + useName + " because efeature is inherited");
+ log.debug("This renaming does not work in case of manually specified joincolumn/table names and mappedsuperclass or multiple inheritance!");
+ } else {
+ useName = getNamePrefix() + truncName;
+ }
+ } else {
+ useName = getNamePrefix() + truncName;
+ }
+
+ if (escapeCharacter.length() > 0
+ && useName.indexOf(escapeCharacter) == 0) {
+ return getSqlNameStrategy().convert(useName, false);
+ }
+
+ return escapeCharacter + getSqlNameStrategy().convert(useName, false)
+ + escapeCharacter;
+
+ }
+
+ /**
+ * @return the idColumnName
+ */
+ public String getIdColumnName() {
+ return idColumnName;
+ }
+
+ /** Return the alwaysversion option */
+ public boolean alwaysVersion() {
+ return alwaysVersion;
+ }
+
+ /** Returns the list of eattrs, note list is updated outside of this object */
+ public List<EAttribute> getHandledFeatureMapEAttributes() {
+ return handledFeatureMapEAttributes;
+ }
+
+ /** Returns the correct property name */
+ public String getPropertyName(EStructuralFeature ef) {
+ return ef.getName();
+ }
+
+ /** Return the version property handler */
+ public String getSyntheticVersionPropertyHandlerName() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.property.VersionPropertyHandler";
+ }
+
+ /** Return the id property handler */
+ public String getSyntheticIdPropertyHandlerName() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.identifier.IdentifierPropertyHandler";
+ }
+
+ /** Return the standard property handler */
+ public String getPropertyHandlerName() {
+ return "";
+ }
+
+ /** Return the version property handler for a normal version field */
+ public String getVersionPropertyHandlerName() {
+ return "";
+ }
+
+ /** Return the id property handler for a normal id property handler */
+ public String getIdPropertyHandlerName() {
+ return "";
+ }
+
+ /** Return the component property handler */
+ public String getComponentPropertyHandlerName() {
+ return "";
+ }
+
+ /** Is this a dynamic eclass, i.e. it has no instanceclass */
+ public boolean isDynamic(EClassifier eclassifier) {
+ return !EModelResolver.instance().hasImplementationClass(eclassifier);
+ }
+
+ /**
+ * Use the implementation name as the mapping and never use entity-mapping,
+ * always false in this implementation
+ */
+ public boolean forceUseOfInstance(PAnnotatedEClass aclass) {
+ return false;
+ }
+
+ /**
+ * Returns true if the instance classes have been generated by emf. For
+ * Teneo this is always the case. Overriders can support a different
+ * generation strategy.
+ */
+ public boolean isGeneratedByEMF() {
+ return true;
+ }
+
+ /**
+ * There are four cases: EMF generated, EMF Dynamic, Easy EMF Generated,
+ * Easy EMF Dynamic public boolean isEasyEMFGenerated(EClassifier
+ * eclassifier) { return
+ * EModelResolver.instance().hasImplementationClass(eclassifier); } public
+ * boolean isEasyEMFDynamic(EClassifier eclassifier) { return
+ * !isEasyEMFGenerated(eclassifier) &&
+ * EModelResolver.instance().isRegistered( eclassifier.getEPackage()); }
+ * public boolean isEMFGenerated(EClassifier eclassifier) { return
+ * eclassifier.getInstanceClass() != null; }
+ */
+ //
+ // public boolean isEMFDynamic(EClassifier eclassifier) {
+ // return !isEasyEMFDynamic(eclassifier) && !isEMFGenerated(eclassifier);
+ // }
+ //
+ // /** Return the impl class */
+ // public Class<?> getImpl(EClassifier eclassifier) {
+ // return EModelResolver.instance().getJavaClass(eclassifier);
+ // }
+ //
+ // /** Check if this is an entity (so without an impl class) */
+ // public boolean hasImpl(PAnnotatedEStructuralFeature af) {
+ // return EModelResolver.instance().hasImplementationClass(
+ // af.getAnnotatedEStructuralFeature().getEContainingClass());
+ // }
+ /** Add a tuplizer element or not */
+ public void addTuplizerElement(Element entityElement,
+ PAnnotatedEClass aclass) {
+ }
+
+ /** Returns the enumusertype class name */
+ public String getEnumUserType() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.ENumUserType";
+ }
+
+ /** Returns the xml duration class name */
+ public String getDurationType() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.XSDDuration";
+ }
+
+ /** Returns the enum user type integer name */
+ public String getEnumIntegerUserType() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.ENumUserIntegerType";
+ }
+
+ /** Returns the enumusertype class name for the dynamic case */
+ public String getDynamicEnumUserType() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.DynamicENumUserType";
+ }
+
+ /** Returns the user type used to persist external references */
+ public String getExternalUserType() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.ExternalType";
+ }
+
+ /** Returns the enum user type integer name for the dynamic case */
+ public String getDynamicEnumIntegerUserType() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.DynamicENumUserIntegerType";
+ }
+
+ /** Return the default user type */
+ public String getDefaultUserType() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.DefaultToStringUserType";
+ }
+
+ /** Returns the default any type */
+ public String getAnytype() {
+ return "org.eclipse.emf.teneo.hibernate.mapping.AnyEObjectType";
+ }
+
+ /** Returns the usertype used to handle the xsd date */
+ public String getXSDDateUserType() {
+ // --- JJH
+ return persistenceOptions.getUserXSDDateType();
+ // return "org.eclipse.emf.teneo.hibernate.mapping.XSDDate";
+ // --- JJH
+ }
+
+ /** Returns the usertype used to handle the xsd time */
+ public String getXSDTimeUserType() {
+ // --- JJH
+ return persistenceOptions.getUserXSDTime();
+ // return "org.eclipse.emf.teneo.hibernate.mapping.XSDDateTime";
+ // --- JJH
+ }
+
+ /** Returns the usertype used to handle the xsd datetime */
+ public String getXSDDateTimeUserType() {
+ // --- JJH
+ return persistenceOptions.getUserXSDDateTime();
+ // return "org.eclipse.emf.teneo.hibernate.mapping.XSDDateTime";
+ // --- JJH
+ }
+
+ /**
+ * @return the eclassNameStrategy
+ */
+ public EntityNameStrategy getEntityNameStrategy() {
+ if (entityNameStrategy == null) {
+ entityNameStrategy = getExtensionManager().getExtension(
+ EntityNameStrategy.class);
+ entityNameStrategy.setPaModel(getPaModel()); // this call is not
+ // really required
+ // but
+ // for safety reasons
+ }
+ return entityNameStrategy;
+ }
+
+ /**
+ * @return the isMapEMapAsTrueMap
+ */
+ public boolean isMapEMapAsTrueMap() {
+ return isMapEMapAsTrueMap;
+ }
+
+ /**
+ * @return the currentEClass
+ */
+ public EClass getCurrentEClass() {
+ return currentEClass;
+ }
+
+ /**
+ * @param currentEClass
+ * the currentEClass to set
+ */
+ public void setCurrentEClass(EClass currentEClass) {
+ this.currentEClass = currentEClass;
+ }
+
+ /**
+ * @return the currentEFeature
+ */
+ public EStructuralFeature getCurrentEFeature() {
+ return currentEFeature;
+ }
+
+ /**
+ * @param currentEFeature
+ * the currentEFeature to set
+ */
+ public void setCurrentFeature(PAnnotatedEStructuralFeature currentFeature) {
+ this.currentAFeature = currentFeature;
+ this.currentEFeature = currentFeature == null ? null : currentFeature
+ .getModelEStructuralFeature();
+ }
+
+ /**
+ * @return the idbagIDColumnName
+ */
+ public String getIdbagIDColumnName() {
+ return idbagIDColumnName;
+ }
+
+ /**
+ * @return the forceOptional
+ */
+ public boolean isDoForceOptional(PAnnotatedEStructuralFeature aFeature) {
+ final boolean hasSecondaryTable = getSecondaryTableName(aFeature) != null;
+ return !hasSecondaryTable && forceOptional;
+ }
+
+ /**
+ * @param forceOptional
+ * the forceOptional to set
+ */
+ public void setForceOptional(boolean forceOptional) {
+ this.forceOptional = forceOptional;
+ }
+
+ /**
+ * @return the paModel
+ */
+ public PAnnotatedModel getPaModel() {
+ return paModel;
+ }
+
+ /**
+ * @param paModel
+ * the paModel to set
+ */
+ public void setPaModel(PAnnotatedModel paModel) {
+ this.paModel = paModel;
+ }
+
+ /**
+ * @return the extensionManager
+ */
+ public ExtensionManager getExtensionManager() {
+ return extensionManager;
+ }
+
+ /**
+ * @param extensionManager
+ * the extensionManager to set
+ */
+ public void setExtensionManager(ExtensionManager extensionManager) {
+ this.extensionManager = extensionManager;
+ }
+
+ /**
+ * @return the sqlNameStrategy
+ */
+ public SQLNameStrategy getSqlNameStrategy() {
+ if (sqlNameStrategy == null) {
+ sqlNameStrategy = getExtensionManager().getExtension(
+ SQLNameStrategy.class);
+ }
+ return sqlNameStrategy;
+ }
+
+ /**
+ * @return the maximumCommentLength
+ */
+ public int getMaximumCommentLength() {
+ return maximumCommentLength;
+ }
+
+ /**
+ * @return the namePrefix
+ */
+ public String getNamePrefix() {
+ return namePrefix;
+ }
+
+ /**
+ * @param namePrefix
+ * the namePrefix to set
+ */
+ public void setNamePrefix(String namePrefix) {
+ this.namePrefix = namePrefix;
+ }
+
+ /**
+ * @return the escapeCharacter
+ */
+ public String getEscapeCharacter() {
+ return escapeCharacter;
+ }
+
+ /**
+ * @param escapeCharacter
+ * the escapeCharacter to set
+ */
+ public void setEscapeCharacter(String escapeCharacter) {
+ this.escapeCharacter = escapeCharacter;
+ }
+
+ /**
+ * @return the persistenceOptions
+ */
+ public PersistenceOptions getPersistenceOptions() {
+ return persistenceOptions;
+ }
+
+ /**
+ * Returns the table name from the column annotation or the joincolumn
+ * annotation Also takes associationoverride or attributeoverride into
+ * account
+ */
+ public String getSecondaryTableName(PAnnotatedEStructuralFeature pef) {
+ String tableName = null;
+
+ if (pef instanceof PAnnotatedEAttribute) {
+ final PAnnotatedEAttribute pea = (PAnnotatedEAttribute) pef;
+ Column c = getAttributeOverride(pea);
+ if (c == null) {
+ c = pef.getColumn();
+ }
+ if (c != null) {
+ tableName = c.getTable();
+ }
+ } else {
+ final PAnnotatedEReference per = (PAnnotatedEReference) pef;
+ pushOverrideOnStack();
+ addAttributeOverrides(per.getAttributeOverrides());
+ addAssociationOverrides(per.getAssociationOverrides());
+
+ try {
+ if (per.getEmbedded() != null) {
+ // check the embedded efeatures
+ // take the first feature of the target type
+ // assume that they are all handled in the same table
+ final EClass eClass = per.getModelEReference()
+ .getEReferenceType();
+ for (EAttribute ea : eClass.getEAllAttributes()) {
+ final Column c = getAttributeOverride(ea.getName());
+ if (c != null && c.getTable() != null) {
+ return c.getTable();
+ }
+ }
+ for (EReference er : eClass.getEAllReferences()) {
+ final List<JoinColumn> jcs = getAssociationOverrides(er
+ .getName());
+ if (jcs != null && jcs.size() > 0) {
+ return jcs.get(0).getTable();
+ }
+ }
+ } else {
+ List<JoinColumn> jcs = getAssociationOverrides(per);
+ if (jcs == null || jcs.size() == 0) {
+ jcs = per.getJoinColumns();
+ }
+ if (jcs != null && jcs.size() > 0) {
+ for (JoinColumn jc : jcs) {
+ if (jc.getTable() != null) {
+ tableName = jc.getTable();
+ break;
+ }
+ }
+ }
+ }
+ } finally {
+ popOverrideStack();
+ }
+ }
+ return tableName;
+ }
+
+} \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingException.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingException.java
new file mode 100755
index 000000000..0573c0af5
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingException.java
@@ -0,0 +1,61 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: MappingException.java,v 1.8 2009/03/07 21:15:19 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.teneo.TeneoException;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEModelElement;
+import org.eclipse.emf.teneo.annotations.pannotation.PAnnotation;
+
+/**
+ * Exception used to signal errors in mapping TODO is there an elver hierarchy
+ * of exceptions? MT: no there is no real hierarchy, I tend to use have one
+ * general exception which always logs the exception
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class MappingException extends TeneoException {
+
+ /**
+ * Generated Serial ID
+ */
+ private static final long serialVersionUID = 7816794038091161326L;
+
+ /** Logger */
+ private static final Log log = LogFactory.getLog(MappingException.class);
+
+ public MappingException(String msg) {
+ super(msg);
+ log.error("EXCEPTION: " + msg + " CAUSE ");
+ }
+
+ /** Constructor */
+ public MappingException(String msg, PAnnotatedEModelElement paElement) {
+ super(msg + ", " + paElement);
+ log.error("EXCEPTION: " + msg + " element "
+ + paElement.getModelElement().getName());
+ }
+
+ public MappingException(String msg, Exception cause) {
+ super(msg, cause);
+ log.error("EXCEPTION: " + msg + " CAUSE " + cause.getClass().getName());
+ }
+
+ public MappingException(String msg, PAnnotation pAnnotation) {
+ super(msg + ", " + pAnnotation);
+ log.error("EXCEPTION: "
+ + msg
+ + " element "
+ + pAnnotation.eClass().getName()
+ + " "
+ + (pAnnotation.getEModelElement() != null ? pAnnotation
+ .getEModelElement().eClass().getName() : ""));
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingUtil.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingUtil.java
new file mode 100755
index 000000000..791babb40
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/MappingUtil.java
@@ -0,0 +1,139 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal
+ * </copyright>
+ *
+ * $Id: MappingUtil.java,v 1.7 2008/12/16 20:40:29 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.Properties;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.annotations.mapper.BasicPamodelBuilder;
+import org.eclipse.emf.teneo.annotations.mapper.EClassAnnotator;
+import org.eclipse.emf.teneo.annotations.mapper.EDataTypeAnnotator;
+import org.eclipse.emf.teneo.annotations.mapper.EFeatureAnnotator;
+import org.eclipse.emf.teneo.annotations.mapper.ManyToOneReferenceAnnotator;
+import org.eclipse.emf.teneo.annotations.mapper.OneToManyAttributeAnnotator;
+import org.eclipse.emf.teneo.annotations.mapper.OneToManyReferenceAnnotator;
+import org.eclipse.emf.teneo.annotations.mapper.OneToOneReferenceAnnotator;
+import org.eclipse.emf.teneo.annotations.mapper.PersistenceMappingBuilder;
+import org.eclipse.emf.teneo.annotations.mapper.SingleAttributeAnnotator;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedModel;
+import org.eclipse.emf.teneo.annotations.parser.EAnnotationParserImporter;
+import org.eclipse.emf.teneo.annotations.xml.XmlPersistenceMapper;
+import org.eclipse.emf.teneo.extension.ExtensionManager;
+import org.eclipse.emf.teneo.extension.ExtensionManagerFactory;
+import org.eclipse.emf.teneo.extension.ExtensionUtil;
+import org.eclipse.emf.teneo.hibernate.annotations.HbAnnotationModelBuilder;
+import org.eclipse.emf.teneo.hibernate.annotations.HbEAnnotationParserImporter;
+import org.eclipse.emf.teneo.hibernate.annotations.HbEClassAnnotator;
+import org.eclipse.emf.teneo.hibernate.annotations.HbEDataTypeAnnotator;
+import org.eclipse.emf.teneo.hibernate.annotations.HbEFeatureAnnotator;
+import org.eclipse.emf.teneo.hibernate.annotations.HbManyToOneReferenceAnnotator;
+import org.eclipse.emf.teneo.hibernate.annotations.HbOneToManyAttributeAnnotator;
+import org.eclipse.emf.teneo.hibernate.annotations.HbOneToManyReferenceAnnotator;
+import org.eclipse.emf.teneo.hibernate.annotations.HbOneToOneReferenceAnnotator;
+import org.eclipse.emf.teneo.hibernate.annotations.HbSingleAttributeAnnotator;
+import org.eclipse.emf.teneo.hibernate.annotations.HbXmlPersistenceMapper;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+
+/**
+ * Contains some utility methods.
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.7 $
+ */
+public class MappingUtil {
+
+ /**
+ * Separate utility method, generates a hibernate mapping for a set of
+ * epackages and options. The hibernate.hbm.xml is returned as a string. The
+ * mapping is not registered or used in any other way by Elver.
+ */
+ public static String generateMapping(EPackage[] epackages, Properties props) {
+ final ExtensionManager extensionManager = ExtensionManagerFactory
+ .getInstance().create();
+ return generateMapping(epackages, props, extensionManager);
+ }
+
+ public static String generateMapping(EPackage[] epackages,
+ Properties props, ExtensionManager extensionManager) {
+ registerHbExtensions(extensionManager);
+
+ // DCB: Use Hibernate-specific annotation processing mechanism. This
+ // allows use of
+ // Hibernate-specific annotations.
+ final PersistenceOptions po = extensionManager.getExtension(
+ PersistenceOptions.class, new Object[] { props });
+ final PAnnotatedModel paModel = extensionManager.getExtension(
+ PersistenceMappingBuilder.class).buildMapping(epackages, po,
+ extensionManager);
+ final HibernateMappingGenerator hmg = extensionManager
+ .getExtension(HibernateMappingGenerator.class);
+ hmg.setPersistenceOptions(po);
+ return hmg.generateToString(paModel);
+ }
+
+ /**
+ * Determine the collection element set, bag or list. Only used in case
+ * Teneo operates for non-emf code
+ */
+ public static String getCollectionElement(HbAnnotatedETypeElement hbFeature) {
+ final boolean hasOrderBy = hbFeature instanceof PAnnotatedEReference
+ && ((PAnnotatedEReference) hbFeature).getOrderBy() != null;
+
+ if (!hbFeature.getOneToMany().isList() || hasOrderBy) {
+ return "set";
+ } else if (hbFeature.getOneToMany().isList()
+ && !hbFeature.getOneToMany().isIndexed()) {
+ return "bag";
+ } else {
+ return "list";
+ }
+ }
+
+ /** Registers default hb extensions */
+ public static void registerHbExtensions(ExtensionManager extensionManager) {
+ extensionManager.registerExtension(ExtensionUtil.createExtension(
+ BasicPamodelBuilder.class, HbAnnotationModelBuilder.class));
+ extensionManager.registerExtension(ExtensionUtil.createExtension(
+ EAnnotationParserImporter.class,
+ HbEAnnotationParserImporter.class));
+ extensionManager.registerExtension(ExtensionUtil.createExtension(
+ XmlPersistenceMapper.class, HbXmlPersistenceMapper.class));
+ extensionManager.registerExtension(ExtensionUtil.createExtension(
+ SingleAttributeAnnotator.class,
+ HbSingleAttributeAnnotator.class));
+ extensionManager.registerExtension(ExtensionUtil.createExtension(
+ EClassAnnotator.class, HbEClassAnnotator.class));
+ extensionManager.registerExtension(ExtensionUtil.createExtension(
+ EFeatureAnnotator.class, HbEFeatureAnnotator.class));
+ extensionManager.registerExtension(ExtensionUtil.createExtension(
+ OneToManyAttributeAnnotator.class,
+ HbOneToManyAttributeAnnotator.class));
+ extensionManager.registerExtension(ExtensionUtil.createExtension(
+ EDataTypeAnnotator.class, HbEDataTypeAnnotator.class));
+ extensionManager.registerExtension(ExtensionUtil.createExtension(
+ OneToManyReferenceAnnotator.class,
+ HbOneToManyReferenceAnnotator.class));
+ extensionManager.registerExtension(ExtensionUtil.createExtension(
+ OneToOneReferenceAnnotator.class,
+ HbOneToOneReferenceAnnotator.class));
+ extensionManager.registerExtension(ExtensionUtil.createExtension(
+ ManyToOneReferenceAnnotator.class,
+ HbManyToOneReferenceAnnotator.class));
+ }
+} \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/OneToManyMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/OneToManyMapper.java
new file mode 100755
index 000000000..e90753cc4
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/OneToManyMapper.java
@@ -0,0 +1,430 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: OneToManyMapper.java,v 1.44 2010/03/25 00:12:42 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEClass;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pannotation.FetchType;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinTable;
+import org.eclipse.emf.teneo.annotations.pannotation.OneToMany;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.hibernate.hbannotation.CollectionOfElements;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedETypeElement;
+import org.eclipse.emf.teneo.simpledom.Element;
+import org.eclipse.emf.teneo.util.StoreUtil;
+
+/**
+ * Maps a OneToMany element to its mapping Context.
+ * <p>
+ * Assumes that the given {@link PAnnotatedEStructuralFeature} is normal, i.e.
+ * <ul>
+ * <li>it is a {@link PAnnotatedEReference};
+ * <li>it has a {@link OneToMany} annotation;
+ * <li>TODO
+ * </ul>
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class OneToManyMapper extends AbstractAssociationMapper implements
+ ExtensionPoint {
+
+ /** The log */
+ private static final Log log = LogFactory.getLog(OneToManyMapper.class);
+
+ /** Process the paReference */
+ public void process(PAnnotatedEReference paReference) {
+ // TODO assuming it coincides with specified targetEntity, correct?
+ // Guaranteed by validation?
+ if (getOtherSide(paReference) == null) {
+ processOtMUni(paReference);
+ // mappedBy is not set anymore because it controls inverse
+ // see bugzilla 242479
+ // } else if
+ // (!paReference.getOneToMany().eIsSet(PannotationPackage.eINSTANCE.getOneToMany_MappedBy
+ // ()
+ // )) {
+ // throw new MappingException(
+ // "The many side of a bidirectional one to many association must be the owning side",
+ // paReference);
+ } else {
+ // MT: TODO add check, in this case unique should always true
+ // because an child can only occur once within
+ // the collection because
+ // of the bidirectional behavior.
+ processOtMBidiInverse(paReference);
+ }
+ }
+
+ /**
+ * joinTable.getInverseJoinColumns must be null TODO choose appropriate
+ * mapping according to the presence of JoinTable
+ */
+ private void processOtMUni(PAnnotatedEReference paReference) {
+ if (log.isDebugEnabled()) {
+ log.debug("Generating one to many unidirectional mapping for "
+ + paReference);
+ }
+
+ final HbAnnotatedEReference hbReference = (HbAnnotatedEReference) paReference;
+ final EReference eref = hbReference.getModelEReference();
+ final EClass refType = eref.getEReferenceType();
+ final PAnnotatedEClass referedToAClass = hbReference
+ .getAReferenceType();
+ boolean isMap = StoreUtil.isMap(eref)
+ && getHbmContext().isMapEMapAsTrueMap();
+
+ // TODO add isUnique on interface
+ // TODO request EMF team to deal correctly with unique attribute on
+ // EReferences
+ final Element collElement = addCollectionElement(paReference);
+ addAccessor(collElement);
+
+ if (hbReference.getImmutable() != null) {
+ collElement.addAttribute("mutable", "false");
+ }
+
+ if (((HbAnnotatedEReference) paReference).getHbCache() != null) {
+ addCacheElement(collElement, ((HbAnnotatedEReference) paReference)
+ .getHbCache());
+ }
+
+ // .getAnnotatedElement().getName(),
+ // paReference.getIndexed() != null &&
+ // paReference.getIndexed().isValue());
+ final Element keyElement = collElement.addElement("key");
+ handleOndelete(keyElement, hbReference.getHbOnDelete());
+
+ // TODO: throw error if both jointable and joincolumns have been set
+ final List<JoinColumn> jcs = getJoinColumns(paReference);
+ final JoinTable jt = paReference.getJoinTable();
+ if (jt != null) {
+ addJoinTable(hbReference, collElement, keyElement, jt);
+ } else {
+ addKeyColumns(hbReference, keyElement, jcs);
+ }
+
+ final OneToMany otm = hbReference.getOneToMany();
+ if (hbReference.getHbIdBag() != null) {
+ log.debug("Setting indexed=false because is an idbag");
+ otm.setIndexed(false);
+ }
+
+ // a special case see here:
+ // http://forum.hibernate.org/viewtopic.php?p=2383090
+ // https://bugs.eclipse.org/bugs/show_bug.cgi?id=242479
+ if (!otm.isIndexed() && hbReference.getHbIdBag() == null
+ && otm.getMappedBy() != null) {
+ collElement.addAttribute("inverse", "true");
+ } else if (otm.getFetch().equals(FetchType.EXTRA)) {
+ collElement.addAttribute("inverse", "true");
+ }
+
+ boolean isMapValueIsEntity = false;
+ if (hbReference.getHbIdBag() == null && otm.isList()) {
+ // now we check if it is a list or a map
+ final EClass eclass = eref.getEReferenceType();
+ if (hbReference.getMapKey() != null
+ || hbReference.getHbMapKey() != null
+ || hbReference.getMapKeyManyToMany() != null) {
+ isMapValueIsEntity = (eclass.getEStructuralFeature("value") instanceof EReference);
+ addMapKey(collElement, paReference);
+ } else if (isMap) {
+ isMapValueIsEntity = (eclass.getEStructuralFeature("value") instanceof EReference);
+ addMapKey(collElement, hbReference);
+ } else if (collElement.getName().compareTo("list") == 0) { // otm.isIndexed()
+ addListIndex(collElement, paReference);
+ }
+ }
+
+ final CollectionOfElements coe = hbReference
+ .getHbCollectionOfElements();
+
+ // TODO OneToMany and CollectionOfElements are mutually exclusive.
+ // Should throw exception if both there?
+ addFetchType(collElement, (null != coe) ? coe.getFetch() : otm
+ .getFetch());
+ addCascadesForMany(collElement, getCascades(hbReference.getHbCascade(),
+ otm.getCascade()));
+ List<JoinColumn> inverseJoinColumns = jt != null
+ && jt.getInverseJoinColumns() != null ? jt
+ .getInverseJoinColumns() : new ArrayList<JoinColumn>();
+
+ String targetName = null;
+
+ targetName = otm.getTargetEntity();
+ // final boolean isEasyEMFGenerated =
+ // getHbmContext().isEasyEMFGenerated(refType);
+ if (targetName == null) {
+ targetName = getHbmContext().getEntityName(refType);
+ }
+
+ // MT a manytomany is only required in case of unique=false, note that
+ // the ejb3 spec states that for uni otm
+ // always a jointable should be
+ // used (as a default). This is however to heavy for cases were a
+ // jointable is not required at all. Also
+ // hibernate supports uni otm without join table.
+ if (hbReference.getEmbedded() != null) {
+ addCompositeElement(collElement, hbReference);
+ } else if (isMap && !isMapValueIsEntity) {
+ final EClass eclass = eref.getEReferenceType();
+ final EAttribute valueEAttribute = (EAttribute) eclass
+ .getEStructuralFeature("value");
+ final PAnnotatedEAttribute valuePAttribute = paReference
+ .getPaModel().getPAnnotated(valueEAttribute);
+ addElementElement(collElement, valuePAttribute,
+ getColumns(valuePAttribute), otm.getTargetEntity());
+ } else if (!isEObject(targetName) && jt != null) {
+ // A m2m forces a join table, note that isunique does not completely
+ // follow the semantics of emf, unique on
+ // an otm means that an element can only occur once in the table, if
+ // unique is false then you in effect have
+ // a
+ // mtm relation
+ // because an item can occur twice or more in the list.
+ // To force a jointable on a real otm a jointable annotation should
+ // be specified.
+ final Element mtm = addManyToMany(hbReference, referedToAClass,
+ collElement, targetName, inverseJoinColumns, otm.isUnique());
+ addForeignKeyAttribute(mtm, paReference);
+
+ if (hbReference.getNotFound() != null) {
+ mtm.addAttribute("not-found", hbReference.getNotFound()
+ .getAction().getName().toLowerCase());
+ }
+ } else {
+ final Element otmElement = addOneToMany(paReference,
+ referedToAClass, collElement, eref.getName(), targetName);
+ addForeignKeyAttribute(keyElement, paReference);
+
+ if (hbReference.getNotFound() != null) {
+ otmElement.addAttribute("not-found", hbReference.getNotFound()
+ .getAction().getName().toLowerCase());
+ }
+ }
+
+ mapFilter(collElement, ((HbAnnotatedETypeElement) paReference)
+ .getFilter());
+ }
+
+ /**
+ * Process bidirectional one-to-many
+ */
+ private void processOtMBidiInverse(PAnnotatedEReference paReference) {
+ if (log.isDebugEnabled()) {
+ log
+ .debug("Generating one to many bidirectional inverse mapping for "
+ + paReference);
+ }
+
+ // final Element collElement =
+ // addCollectionElement(paReference.getAnnotatedElement().getName(),
+ // paReference.isIndexed());
+ final Element collElement = addCollectionElement(paReference);
+ addAccessor(collElement);
+ final EReference eref = paReference.getModelEReference();
+ final HbAnnotatedEReference hbReference = (HbAnnotatedEReference) paReference;
+ final PAnnotatedEClass referedToAClass = hbReference
+ .getAReferenceType();
+
+ if (hbReference.getHbCache() != null) {
+ addCacheElement(collElement, hbReference.getHbCache());
+ }
+
+ if (hbReference.getImmutable() != null) {
+ collElement.addAttribute("mutable", "false");
+ }
+
+ // MT: note inverse does not work correctly with hibernate for indexed
+ // collections, see 7.3.3 of the hibernate
+ // manual 3.1.1
+ final OneToMany otm = paReference.getOneToMany();
+ if (!otm.isIndexed() && otm.getMappedBy() != null
+ && hbReference.getHbIdBag() == null) {
+ collElement.addAttribute("inverse", "true");
+ } else if (otm.getFetch().equals(FetchType.EXTRA)) {
+ collElement.addAttribute("inverse", "true");
+ } else {
+ log.debug("Inverse is not set on purpose for indexed collections");
+ }
+
+ final Element keyElement = collElement.addElement("key");
+ handleOndelete(keyElement, ((HbAnnotatedEReference) paReference)
+ .getHbOnDelete());
+
+ final List<JoinColumn> jcs = getJoinColumns(paReference);
+ final JoinTable jt = paReference.getJoinTable();
+ if (jt != null) {
+ addJoinTable(hbReference, collElement, keyElement, jt);
+ } else {
+ addKeyColumns(hbReference, keyElement, jcs);
+ }
+
+ addFetchType(collElement, otm.getFetch());
+ addCascadesForMany(collElement, getCascades(hbReference.getHbCascade(),
+ otm.getCascade()));
+
+ boolean isMap = StoreUtil.isMap(eref)
+ && getHbmContext().isMapEMapAsTrueMap();
+ boolean isMapValueIsEntity = false;
+ if (hbReference.getHbIdBag() == null && otm.isList()) {
+ // now we check if it is a list or a map
+ if (hbReference.getMapKey() != null
+ || hbReference.getHbMapKey() != null
+ || hbReference.getMapKeyManyToMany() != null) {
+ addMapKey(collElement, paReference);
+ } else if (isMap) {
+ final EClass eclass = eref.getEReferenceType();
+ isMapValueIsEntity = (eclass.getEStructuralFeature("value") instanceof EReference);
+ addMapKey(collElement, hbReference);
+ } else if (collElement.getName().compareTo("list") == 0) { // otm.isIndexed()
+ addListIndex(collElement, paReference);
+ }
+ }
+
+ String targetName = otm.getTargetEntity();
+ if (targetName == null) {
+ targetName = getHbmContext()
+ .getEntityName(eref.getEReferenceType());
+ }
+
+ if (paReference.getEmbedded() != null) {
+ addCompositeElement(collElement, paReference);
+ } else if (isMap && !isMapValueIsEntity) {
+ final EClass eclass = eref.getEReferenceType();
+ final EAttribute valueEAttribute = (EAttribute) eclass
+ .getEStructuralFeature("value");
+ final PAnnotatedEAttribute valuePAttribute = paReference
+ .getPaModel().getPAnnotated(valueEAttribute);
+ addElementElement(collElement, valuePAttribute,
+ getColumns(valuePAttribute), otm.getTargetEntity());
+ } else if (jt != null) {
+ final List<JoinColumn> inverseJoinColumns = jt != null
+ && jt.getInverseJoinColumns() != null ? jt
+ .getInverseJoinColumns() : new ArrayList<JoinColumn>();
+
+ final Element mtm = addManyToMany(hbReference, referedToAClass,
+ collElement, targetName, inverseJoinColumns, otm.isUnique());
+ addForeignKeyAttribute(mtm, paReference);
+ if (hbReference.getNotFound() != null) {
+ mtm.addAttribute("not-found", hbReference.getNotFound()
+ .getAction().getName().toLowerCase());
+ }
+
+ } else {
+ final Element otmElement = addOneToMany(paReference,
+ referedToAClass, collElement, eref.getName(), targetName);
+ addForeignKeyAttribute(keyElement, paReference);
+ if (hbReference.getNotFound() != null) {
+ otmElement.addAttribute("not-found", hbReference.getNotFound()
+ .getAction().getName().toLowerCase());
+ }
+ }
+
+ mapFilter(collElement, ((HbAnnotatedETypeElement) paReference)
+ .getFilter());
+ }
+
+ /**
+ * Creates a onetomany element.
+ *
+ * @param collElement
+ * @param targetEntity
+ */
+ protected Element addOneToMany(PAnnotatedEReference paReference,
+ PAnnotatedEClass referedToAClass, Element collElement,
+ String featureName, String targetEntity) {
+ final HbAnnotatedEReference hbReference = (HbAnnotatedEReference) paReference;
+ if (isEObject(targetEntity) || hbReference.getAny() != null
+ || hbReference.getAnyMetaDef() != null) { // anytype
+ final String assocName = getHbmContext().getPropertyName(
+ hbReference.getModelEStructuralFeature());
+ return collElement.add(createAny(assocName, hbReference,
+ hbReference.getAny(), hbReference.getAnyMetaDef(), true));
+ } else {
+ String tag = "one-to-many";
+ if (((HbAnnotatedEReference) paReference).getHbIdBag() != null) {
+ tag = "many-to-many";
+ }
+
+ if (referedToAClass.isOnlyMapAsEntity()
+ || !getHbmContext().forceUseOfInstance(referedToAClass)) {
+ return collElement.addElement(tag).addAttribute("entity-name",
+ targetEntity);
+ } else {
+ return collElement.addElement(tag).addAttribute(
+ "class",
+ getHbmContext().getInstanceClassName(
+ referedToAClass.getModelEClass()));
+ }
+ }
+ }
+
+ /**
+ * Creates a many-to-many to handle the unidirectional manytomany. A
+ * unidirectional manytomany is now specified using the one to many
+ * annotation while its implementation has a join table.
+ */
+ private Element addManyToMany(HbAnnotatedEReference hbReference,
+ PAnnotatedEClass referedToAClass, Element collElement,
+ String targetEntity, List<JoinColumn> invJoinColumns, boolean unique) {
+ final Element manyToMany;
+ if (referedToAClass.isOnlyMapAsEntity()
+ || !getHbmContext().forceUseOfInstance(referedToAClass)) {
+ manyToMany = collElement.addElement("many-to-many").addAttribute(
+ "entity-name", targetEntity).addAttribute("unique",
+ unique ? "true" : "false");
+ } else {
+ manyToMany = collElement.addElement("many-to-many").addAttribute(
+ "class",
+ getHbmContext().getInstanceClassName(
+ referedToAClass.getModelEClass())).addAttribute(
+ "unique", unique ? "true" : "false");
+ }
+ addKeyColumns(hbReference, manyToMany, invJoinColumns); // pass null for
+ // jointable
+
+ return manyToMany;
+ }
+
+ /** Add composite-element */
+ private Element addCompositeElement(Element collElement,
+ PAnnotatedEReference paReference) {
+ // TODO: handle nested components: nested-composite-element
+ final Element componentElement = collElement.addElement(
+ "composite-element").addAttribute(
+ "class",
+ getHbmContext().getInstanceClassName(
+ paReference.getEReferenceType()));
+ getHbmContext().setCurrent(componentElement);
+
+ try {
+ // process the features of the target
+ final PAnnotatedEClass componentAClass = paReference
+ .getAReferenceType();
+ getHbmContext().processFeatures(
+ componentAClass.getPaEStructuralFeatures());
+ } finally {
+ getHbmContext().setCurrent(collElement.getParent());
+ }
+ return componentElement;
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/OneToOneMapper.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/OneToOneMapper.java
new file mode 100755
index 000000000..5787ccd37
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/OneToOneMapper.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: OneToOneMapper.java,v 1.36 2009/06/28 02:05:07 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper;
+
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEStructuralFeature;
+import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn;
+import org.eclipse.emf.teneo.annotations.pannotation.OneToOne;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
+import org.eclipse.emf.teneo.hibernate.hbmodel.HbAnnotatedEReference;
+import org.eclipse.emf.teneo.simpledom.Element;
+
+/**
+ * Maps a {@link OneToOne} element to its {@link MappingContext}.
+ * <p>
+ * Assumes that the given {@link PAnnotatedEStructuralFeature} is a normal OneToOne, i.e.
+ * <ul>
+ * <li>it is a {@link PAnnotatedEReference};
+ * <li>it has a {@link OneToOne} annotation;
+ * <li>each attribute on the {@link OneToOne} annotation is set possibly except for {@link OneToOne#getMappedBy()};
+ * <li>TODO requirements on JoinColumns/PrimaryKeyJoinColumn
+ * </ul>
+ *
+ * @author <a href="mailto:mtaal at elver.org">Martin Taal</a>
+ */
+public class OneToOneMapper extends AbstractAssociationMapper implements ExtensionPoint {
+
+ private static final Log log = LogFactory.getLog(OneToOneMapper.class);
+
+ /** Process the one-to-one */
+ public void process(PAnnotatedEReference paReference) {
+ final PAnnotatedEReference opposite = getOtherSide(paReference);
+
+ if (opposite != null) {
+ // handle the case of a primary key one-to-one
+ if (!paReference.getPrimaryKeyJoinColumns().isEmpty()
+ || (opposite != null && !opposite.getPrimaryKeyJoinColumns().isEmpty())) {
+ createOneToOne(paReference);
+ } else {
+ // For a non-pk one-to-one, one side is mapped as oto, and the
+ // other as mto.
+ // the oto is the one with the mappedBy attribute
+ if (paReference.getOneToOne().getMappedBy() != null) {
+ createOneToOne(paReference);
+ } else {
+ createManyToOne(paReference);
+ }
+ }
+ } else { // can this case occur? A non-bidirectional one-to-one?
+ createManyToOne(paReference);
+ }
+
+ // if (opposite == null ||
+ // paReference.getOneToOne().eIsSet(PannotationPackage.eINSTANCE.getOneToOne_MappedBy()))
+ // {
+ // if (!paReference.getPrimaryKeyJoinColumns().isEmpty() ||
+ // (opposite != null && !opposite.getPrimaryKeyJoinColumns().isEmpty()))
+ // {
+ // createOneToOne(paReference);
+ // } else if
+ // (paReference.getOneToOne().eIsSet(PannotationPackage.eINSTANCE.getOneToOne_MappedBy()))
+ // {
+ // createOneToOne(paReference);
+ // } else {
+ // createManyToOne(paReference);
+ // }
+ // } else {
+ // createOneToOne(paReference);
+ // }
+ }
+
+ /** Create hibernate many-to-one mapping */
+ private void createManyToOne(PAnnotatedEReference paReference) {
+ log.debug("Generating many to one mapping for onetoone" + paReference);
+
+ final OneToOne oto = paReference.getOneToOne();
+ final EReference eref = paReference.getModelEReference();
+ String specifiedName = oto.getTargetEntity();
+
+ if (specifiedName == null) {
+ specifiedName = getHbmContext().getEntityName(eref.getEReferenceType());
+ }
+
+ final HbAnnotatedEReference hbReference = (HbAnnotatedEReference) paReference;
+
+ final boolean isAny = hbReference.getAny() != null || hbReference.getAnyMetaDef() != null
+ || isEObject(oto.getTargetEntity());
+ if (isAny) {
+ final String assocName = getHbmContext().getPropertyName(hbReference.getModelEStructuralFeature());
+ final Element anyElement = createAny(assocName, hbReference, hbReference.getAny(), hbReference
+ .getAnyMetaDef(), false);
+ getHbmContext().getCurrent().add(anyElement);
+ return;
+ }
+
+ final Element associationElement = addManyToOne(getHbmContext().getCurrent(), paReference, specifiedName, false);
+ addAccessor(associationElement);
+
+ addCascadesForSingle(associationElement, getCascades(hbReference.getHbCascade(), oto.getCascade()));
+
+ final boolean isNullable = (oto.isOptional() || getHbmContext().isDoForceOptional(paReference) || getHbmContext()
+ .isCurrentElementFeatureMap());
+
+ associationElement.addAttribute("not-null", (isNullable ? "false" : "true"));
+
+ addLazyProxy(associationElement, oto.getFetch(), paReference);
+
+ if (hbReference.getHbFetch() != null) {
+ associationElement.addAttribute("fetch", hbReference.getHbFetch().getValue().getName().toLowerCase());
+ }
+
+ addForeignKeyAttribute(associationElement, paReference);
+ addLazyProxy(associationElement, oto.getFetch(), paReference);
+ final List<JoinColumn> joinColumns = getJoinColumns(paReference);
+ addJoinColumns(paReference, associationElement, joinColumns, isNullable);
+
+ // apparently sql server does not like a unique constraint on a
+ // nullable column
+ // null values also seem to be seen as a unique value.
+ if (!isNullable) {
+ associationElement.addAttribute("unique", "true");
+ }
+ }
+
+ /** Create hibernate one-to-one mapping */
+ private void createOneToOne(PAnnotatedEReference paReference) {
+ if (log.isDebugEnabled()) {
+ log.debug("Generating one to one bidirectional inverse mapping for " + paReference);
+ }
+
+ final OneToOne oto = paReference.getOneToOne();
+ String targetName = oto.getTargetEntity();
+ if (targetName == null) {
+ targetName = getHbmContext().getEntityName(paReference.getEReferenceType());
+ }
+
+ final HbAnnotatedEReference hbReference = (HbAnnotatedEReference) paReference;
+ final EReference eref = paReference.getModelEReference();
+ final EReference otherSide = eref.getEOpposite();
+ final Element associationElement = addOneToOne(paReference, getHbmContext().getPropertyName(eref), targetName);
+ addAccessor(associationElement);
+
+ addForeignKeyAttribute(associationElement, paReference);
+ addCascadesForSingle(associationElement, getCascades(hbReference.getHbCascade(), oto.getCascade()));
+ addLazyProxy(associationElement, oto.getFetch(), paReference);
+
+ if (hbReference.getHbFetch() != null) {
+ associationElement.addAttribute("fetch", hbReference.getHbFetch().getValue().getName().toLowerCase());
+ }
+
+ // add the other-side
+ final boolean primaryKeyJoin = !paReference.getPrimaryKeyJoinColumns().isEmpty()
+ || (otherSide != null && !getOtherSide(paReference).getPrimaryKeyJoinColumns().isEmpty());
+
+ if (!primaryKeyJoin && otherSide != null && oto.getMappedBy() != null) {
+ associationElement.addAttribute("property-ref", getHbmContext().getPropertyName(otherSide));
+ }
+
+ // apparently is always allowed for a one-to-one, if it is bidirectional
+ // if (paReference.getPrimaryKeyJoinColumns().size() > 0) {
+
+ // place constrained when:
+ // 1) this side has a primary key join column annotation
+ boolean addConstrained = !paReference.getPrimaryKeyJoinColumns().isEmpty();
+ if (!addConstrained && otherSide == null) {
+ // 2) there is no other side and it is mandatory see here:
+ // http://www.hibernate.org/162.html
+ addConstrained = eref.isRequired();
+ } else if (!addConstrained && otherSide != null) {
+ // 3) the most difficult one, the other side must be a many-to-one
+ // this is the case when it does not have a pk join column and
+ // mappedby is
+ // null, or when it has a many-to-one annotation.
+ final PAnnotatedEReference aOpposite = paReference.getPaModel().getPAnnotated(otherSide);
+ addConstrained = aOpposite.getManyToOne() != null && eref.isRequired();
+ if (!addConstrained) {
+ addConstrained = eref.isRequired() && aOpposite.getPrimaryKeyJoinColumns().isEmpty()
+ && aOpposite.getOneToOne() != null && aOpposite.getOneToOne().getMappedBy() == null;
+ }
+ }
+
+ if (addConstrained) {
+ associationElement.addAttribute("constrained", "true");
+ }
+ // }
+ }
+}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/classic/ClassicMappingContext.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/classic/ClassicMappingContext.java
new file mode 100755
index 000000000..0f9fb857c
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/mapper/classic/ClassicMappingContext.java
@@ -0,0 +1,131 @@
+/**
+ * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights
+ * reserved. This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal
+ * </copyright> $Id: ClassicMappingContext.java,v 1.8 2011/04/26 18:41:49 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.hibernate.mapper.classic;
+
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEAttribute;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEReference;
+import org.eclipse.emf.teneo.annotations.pannotation.PAnnotation;
+import org.eclipse.emf.teneo.hibernate.mapper.MappingContext;
+
+/**
+ * Maps a basic attribute with many=true, e.g. list of simpletypes.
+ *
+ * @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
+ * @version $Revision: 1.8 $
+ */
+public class ClassicMappingContext extends MappingContext {
+
+ /**
+ * Utilit method to truncate a column/table name. This method also repairs
+ * the name if an efeature was inherited and really belongs to another
+ * eclass. In this case jointables and join keys must be renamed to the new
+ * eclass. TODO: handle the case that the jointable/columns were set
+ * manually. This procedure will override them (only applies in case of
+ * multiple inheritance/mappedsuperclass).
+ *
+ * This renaming is required for the case that an ereference is inherited
+ * from a mapped superclass, in this case the join-column of the e-reference
+ * will be placed in another table. If one ereference is inherited by
+ * multiple subtypes then this goes wrong because they then all share the
+ * same join column with foreign keys relating it to different tables, and
+ * multiple foreign keys on one column can not point to different
+ * directions.
+ *
+ * TODO: is really only required for eattributes TODO: it ignores
+ * attributeoverrides
+ */
+ @Override
+ protected String trunc(PAnnotation pAnnotation, String truncName,
+ boolean truncSuffix) {
+ if (pAnnotation != null && !doTrunc(pAnnotation)) {
+ if (!truncName.startsWith(escapeCharacter)
+ && !truncName.endsWith(escapeCharacter)) {
+ return escapeCharacter + truncName + escapeCharacter;
+ }
+ return truncName;
+ }
+ final String useName;
+ // currentEFeature is null in the beginning
+ if (currentAFeature != null) {
+ boolean override = false;
+ if (currentAFeature instanceof PAnnotatedEAttribute) {
+ override = getAttributeOverride((PAnnotatedEAttribute) currentAFeature) != null;
+ } else {
+ override = getAssociationOverrides((PAnnotatedEReference) currentAFeature) != null;
+ }
+
+ final String otherEntityName = getEntityName(
+ currentEFeature.getEContainingClass(), false);
+ // if the current name starts with the name of the mapped superclass
+ // then
+ // change it back to the current eclass, do not do this in case of
+ // override
+ if (!override
+ && currentEFeature.getEContainingClass() != currentEClass
+ && otherEntityName != null
+ && truncName.toUpperCase().startsWith(
+ otherEntityName.toUpperCase())) {
+ log.debug("Replacing name of table/joincolumn " + truncName);
+ // get rid of the first part
+ useName = getEntityName(currentEClass)
+ + truncName
+ .substring(getEntityName(
+ currentEFeature.getEContainingClass())
+ .length());
+ log.debug("with " + useName + " because efeature is inherited");
+ log.debug("This renaming does not work in case of manually specified joincolumn/table names and mappedsuperclass or multiple inheritance!");
+ } else {
+ useName = truncName;
+ }
+ } else {
+ useName = truncName;
+ }
+
+ if (maximumSqlNameLength == -1) {
+ return escape(useName);
+ }
+ if (useName.length() < maximumSqlNameLength) {
+ return escape(useName);
+ }
+
+ // truncate the part before the last _ because this is often the suffix
+ final int underscore = useName.lastIndexOf('_');
+ if (truncSuffix && underscore != -1 && underscore > 0) {
+ final String usStr = useName.substring(underscore);
+ if ((maximumSqlNameLength - usStr.length()) < 0) {
+ return escape(useName);
+ }
+ return escape(useName.substring(0,
+ maximumSqlNameLength - usStr.length())
+ + usStr);
+ }
+
+ return escape(useName.substring(0, maximumSqlNameLength));
+ }
+
+ /** Escape the column name */
+ protected String escape(String name) {
+ if (getEscapeCharacter().length() == 0
+ || name.indexOf(getEscapeCharacter()) == 0) {
+ return getSqlNameStrategy().convert(name);
+ }
+
+ return getEscapeCharacter() + getSqlNameStrategy().convert(name)
+ + getEscapeCharacter();
+ }
+
+ /**
+ * @deprecated use {@link #trunc(PAnnotation, String, boolean)}
+ */
+ @Deprecated
+ protected String trunc(String truncName, boolean truncSuffix) {
+ return trunc(null, truncName, truncSuffix);
+ }
+
+} \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/text/description.txt b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/text/description.txt
new file mode 100755
index 000000000..e436edbdd
--- /dev/null
+++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/text/description.txt
@@ -0,0 +1,254 @@
+Model Hbannotation
+
+This model description is not a real EMF artifact. It was generated by the
+org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's
+code generator can be extended.
+This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+
+Contains packages:
+ hbannotation <http://www.eclipse.org/emf/teneo/2006/HbAnnotation>
+ hbmodel <http://www.eclipse.org/emf/teneo/2006/HbModel>
+
+Package hbannotation <http://www.eclipse.org/emf/teneo/2006/HbAnnotation>
+
+ Class HbAnnotation -> PAnnotation
+
+ Class Cascade -> HbAnnotation
+ Attribute value : HbCascadeType<<0..*>>
+
+ Class CollectionOfElements -> HbAnnotation
+ Attribute targetElement : EString
+ Attribute fetch : FetchType
+
+ Class HbMapKey -> HbAnnotation
+ Reference columns : Column<<0..*>>
+
+ Class Parameter -> HbAnnotation
+ Attribute name : EString<<1..1>>
+ Attribute value : EString<<1..1>>
+
+ Class Type -> HbAnnotation
+ Attribute type : EString<<1..1>>
+ Reference parameters : Parameter<<0..*>>
+
+ Class Where -> HbAnnotation
+ Attribute clause : EString
+
+ Class IdBag -> HbAnnotation
+ Attribute generator : EString
+ Attribute type : EString
+ Attribute table : EString
+
+ Class GenericGenerator -> HbAnnotation
+ Attribute name : EString<<1..1>>
+ Attribute strategy : EString<<1..1>>
+ Reference parameters : Parameter<<0..*>>
+
+ Class Cache -> HbAnnotation
+ Attribute usage : CacheConcurrencyStrategy
+ Attribute region : EString
+ Attribute include : EString
+
+ Class TypeDef -> HbAnnotation
+ Attribute name : EString<<1..1>>
+ Reference parameters : Parameter<<0..*>>
+ Attribute typeClass : EString<<1..1>>
+
+ Class Fetch -> HbAnnotation
+ Attribute value : HbFetchType
+
+ Class OnDelete -> HbAnnotation
+ Attribute action : OnDeleteAction
+
+ Class Proxy -> HbAnnotation
+ Attribute proxyClass : EString
+ Attribute lazy : EBoolean
+
+ Class Index -> HbAnnotation
+ Attribute name : EString
+ Attribute columnNames : EString<<0..*>>
+
+ Class Generated -> HbAnnotation
+ Attribute value : GenerationTime
+
+ Class NamedQuery -> HbAnnotation
+ Attribute name : EString
+ Attribute query : EString
+
+ Class Filter -> HbAnnotation
+ Attribute name : EString<<1..1>>
+ Attribute condition : EString
+
+ Class ParamDef -> HbAnnotation
+ Attribute name : EString<<1..1>>
+ Attribute type : EString<<1..1>>
+
+ Class FilterDef -> HbAnnotation
+ Attribute name : EString<<1..1>>
+ Attribute defaultCondition : EString
+ Reference parameters : ParamDef<<0..*>>
+
+ Class DiscriminatorFormula -> HbAnnotation
+ Attribute value : EString
+
+ Class NaturalId -> HbAnnotation
+ Attribute mutable : EBoolean<<1..1>>
+
+ Class MapKeyManyToMany -> HbAnnotation
+ Reference joinColumns : JoinColumn<<0..*>>
+ Attribute targetEntity : EString
+
+ Class ForceDiscriminator -> HbAnnotation
+
+ Class Immutable -> HbAnnotation
+
+ Class Formula -> HbAnnotation
+ Attribute value : EString
+
+ Class NotFound -> HbAnnotation
+ Attribute action : NotFoundAction<<1..1>>
+
+ Class HbEntity -> HbAnnotation
+ Attribute dynamicInsert : EBoolean
+ Attribute dynamicUpdate : EBoolean
+ Attribute selectBeforeUpdate : EBoolean
+ Attribute mutable : EBoolean
+ Attribute persister : EString
+ Attribute optimisticLock : OptimisticLockType
+ Attribute polymorphism : PolymorphismType
+
+ Class BatchSize -> HbAnnotation
+ Attribute size : EInt<<1..1>>
+
+ Class Any -> HbAnnotation
+ Attribute metaDef : EString
+ Reference metaColumn : Column
+ Attribute fetch : FetchType
+ Attribute optional : EBoolean
+
+ Class MetaValue -> HbAnnotation
+ Attribute targetEntity : EString
+ Attribute value : EString
+
+ Class AnyMetaDef -> HbAnnotation
+ Attribute name : EString
+ Attribute metaType : EString
+ Attribute idType : EString<<1..1>>
+ Reference metaValues : MetaValue<<0..*>>
+
+ Class HbTable -> HbAnnotation
+ Attribute appliesTo : EString<<1..1>>
+ Reference indexes : Index<<0..*>>
+
+ Enum CacheConcurrencyStrategy
+ Literal NONE = 0
+ Literal READ_ONLY = 1
+ Literal NONSTRICT_READ_WRITE = 2
+ Literal READ_WRITE = 3
+ Literal TRANSACTIONAL = 4
+
+ Enum HbFetchType
+ Literal JOIN = 0
+ Literal SELECT = 1
+ Literal SUBSELECT = 2
+
+ Enum OnDeleteAction
+ Literal NO_ACTION = 0
+ Literal CASCADE = 1
+
+ Enum GenerationTime
+ Literal NEVER = 0
+ Literal INSERT = 1
+ Literal ALWAYS = 2
+
+ Enum NotFoundAction
+ Literal EXCEPTION = 0
+ Literal IGNORE = 1
+
+ Enum OptimisticLockType
+ Literal ALL = 0
+ Literal DIRTY = 1
+ Literal NONE = 2
+ Literal VERSION = 3
+
+ Enum PolymorphismType
+ Literal IMPLICIT = 0
+ Literal EXPLICIT = 1
+
+ Enum HbCascadeType
+ Literal ALL = 0
+ Literal PERSIST = 1
+ Literal MERGE = 2
+ Literal REMOVE = 3
+ Literal REFRESH = 4
+ Literal DELETE = 5
+ Literal SAVE_UPDATE = 6
+ Literal REPLICATE = 7
+ Literal DELETE_ORPHAN = 8
+ Literal LOCK = 9
+ Literal EVICT = 10
+
+Package hbmodel <http://www.eclipse.org/emf/teneo/2006/HbModel>
+
+ Class HbAnnotatedETypeElement -> PAnnotatedEStructuralFeature, HbAnnotatedEModelElement
+ Reference hbWhere : Where
+ Reference hbCollectionOfElements : CollectionOfElements
+ Reference hbMapKey : HbMapKey
+ Reference hbColumns : Column<<0..*>>
+ Reference hbCascade : Cascade
+ Reference hbIdBag : IdBag
+ Reference hbIndex : Index
+ Reference Filter : Filter<<0..*>>
+ Reference mapKeyManyToMany : MapKeyManyToMany
+ Reference formula : Formula
+
+ Class HbAnnotatedEAttribute -> PAnnotatedEAttribute, HbAnnotatedETypeElement
+ Reference hbType : Type
+ Reference generated : Generated
+ Reference naturalId : NaturalId
+ Reference any : Any
+ Reference anyMetaDef : AnyMetaDef
+
+ Class HbAnnotatedEClass -> PAnnotatedEClass
+ Reference hbCache : Cache
+ Reference hbOnDelete : OnDelete
+ Reference hbWhere : Where
+ Reference hbProxy : Proxy
+ Reference hbNamedQuery : NamedQuery<<0..*>>
+ Reference FilterDef : FilterDef<<0..*>>
+ Reference Filter : Filter<<0..*>>
+ Reference discriminatorFormula : DiscriminatorFormula
+ Reference forceDiscriminator : ForceDiscriminator
+ Reference immutable : Immutable
+ Reference hbEntity : HbEntity
+ Reference batchSize : BatchSize
+ Reference hbTable : HbTable
+
+ Class HbAnnotatedEModelElement -> PAnnotatedEModelElement
+
+ Class HbAnnotatedEPackage -> PAnnotatedEPackage
+ Reference hbGenericGenerators : GenericGenerator<<0..*>>
+ Reference hbTypeDef : TypeDef<<0..*>>
+ Reference hbNamedQuery : NamedQuery<<0..*>>
+ Reference FilterDef : FilterDef<<0..*>>
+ Reference anyMetaDef : AnyMetaDef<<0..*>>
+
+ Class HbAnnotatedEReference -> PAnnotatedEReference, HbAnnotatedETypeElement
+ Reference hbCache : Cache
+ Reference hbFetch : Fetch
+ Reference hbOnDelete : OnDelete
+ Reference naturalId : NaturalId
+ Reference immutable : Immutable
+ Reference notFound : NotFound
+ Reference hbType : Type
+ Reference batchSize : BatchSize
+ Reference any : Any
+ Reference anyMetaDef : AnyMetaDef
+
+ Class HbAnnotatedEDataType -> PAnnotatedEDataType, HbAnnotatedEModelElement
+ Reference hbTypeDef : TypeDef
+ Reference hbWhere : Where
+ Reference hbColumns : Column<<0..*>>
+ Reference hbIdBag : IdBag
+ Reference hbIndex : Index
+ Reference hbType : Type

Back to the top