diff options
Diffstat (limited to 'core/org.eclipse.emf.teneo')
11 files changed, 52 insertions, 10 deletions
diff --git a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/Constants.java b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/Constants.java index 2bb2ec427..24969f983 100755 --- a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/Constants.java +++ b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/Constants.java @@ -94,6 +94,7 @@ public class Constants { public final static String COLUMN_ECONTAINER_FEATURE_NAME = "e_container_feature_name"; public final static String ANNOTATION_SOURCE_TENEO_JPA = "teneo.jpa"; + public final static String ANNOTATION_SOURCE_TENEO_HIBERNATE = "teneo.hibernate"; public final static String ANNOTATION_SOURCE_TENEO_MAPPING = "teneo.mapping"; public final static String ANNOTATION_SOURCE_AUDITING = "teneo.auditing"; diff --git a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/ERuntime.java b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/ERuntime.java index e4313a236..1340c0d30 100755 --- a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/ERuntime.java +++ b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/ERuntime.java @@ -59,9 +59,6 @@ public class ERuntime extends EModelResolver { /** The list of epackages processed here */ private final ArrayList<EPackage> epackages = new ArrayList<EPackage>(); - /** Count of times that an epackage got registered */ - private final ArrayList<Integer> registrationCount = new ArrayList<Integer>(); - /** The mapping from concrete classes to eclass and back */ private final HashMap<Class<?>, EClass> concreteToEClass = new HashMap<Class<?>, EClass>(); diff --git a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/PersistenceOptions.java b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/PersistenceOptions.java index 3b9ed25f7..ee497bdcb 100755 --- a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/PersistenceOptions.java +++ b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/PersistenceOptions.java @@ -60,6 +60,8 @@ public class PersistenceOptions implements ExtensionPoint { public static final String ENABLE_AUDITING = MAPPING_PREFIX + "auditing.enable"; public static final String AUDITING_ENTITY_PREFIX = NAMING_PREFIX + "auditing.entity.prefix"; public static final String AUDITING_ENTITY_POSTFIX = NAMING_PREFIX + "auditing.entity.postfix"; + public static final String AUDITING_JOINTABLE_POSTFIX = NAMING_PREFIX + + "auditing.jointable.postfix"; // START: ++++++++++++++++++++++ SQL Naming related Options // ++++++++++++++++++++++++++++++++++++ @@ -463,6 +465,7 @@ public class PersistenceOptions implements ExtensionPoint { props.setProperty(ENABLE_AUDITING, "false"); props.setProperty(AUDITING_ENTITY_PREFIX, ""); props.setProperty(AUDITING_ENTITY_POSTFIX, "Auditing"); + props.setProperty(AUDITING_JOINTABLE_POSTFIX, "Auditing"); props.setProperty(HANDLE_UNSET_AS_NULL, "false"); props.setProperty(CONVERT_UNSET_TO_NULL, "false"); @@ -547,14 +550,33 @@ public class PersistenceOptions implements ExtensionPoint { * @return value of {@link #AUDITING_ENTITY_PREFIX} */ public String getAuditingEntityPrefix() { - return properties.getProperty(AUDITING_ENTITY_PREFIX); + final String value = properties.getProperty(AUDITING_ENTITY_PREFIX); + if (value == null) { + return ""; + } + return value; } /** * @return value of {@link #AUDITING_ENTITY_POSTFIX} */ public String getAuditingEntityPostfix() { - return properties.getProperty(AUDITING_ENTITY_POSTFIX); + final String value = properties.getProperty(AUDITING_ENTITY_POSTFIX); + if (value == null) { + return ""; + } + return value; + } + + /** + * @return value of {@link #AUDITING_JOINTABLE_POSTFIX} + */ + public String getAuditingJoinTablePostfix() { + final String value = properties.getProperty(AUDITING_JOINTABLE_POSTFIX); + if (value == null) { + return ""; + } + return value; } /** diff --git a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/mapper/AbstractProcessingContext.java b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/mapper/AbstractProcessingContext.java index 71dcedbe8..66a39fead 100755 --- a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/mapper/AbstractProcessingContext.java +++ b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/mapper/AbstractProcessingContext.java @@ -35,7 +35,6 @@ import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedModel; import org.eclipse.emf.teneo.annotations.pannotation.AssociationOverride; import org.eclipse.emf.teneo.annotations.pannotation.AttributeOverride; import org.eclipse.emf.teneo.annotations.pannotation.Column; -import org.eclipse.emf.teneo.annotations.pannotation.JoinColumn; import org.eclipse.emf.teneo.mapping.strategy.SQLNameStrategy; /** diff --git a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/mapper/EClassAnnotator.java b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/mapper/EClassAnnotator.java index 10fe8feca..775b22900 100755 --- a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/mapper/EClassAnnotator.java +++ b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/mapper/EClassAnnotator.java @@ -41,6 +41,7 @@ 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.mapping.strategy.StrategyUtil; +import org.eclipse.emf.teneo.util.StoreUtil; /** * Sets the annotation on an eclass. @@ -111,6 +112,11 @@ public class EClassAnnotator extends AbstractAnnotator implements ExtensionPoint aClass.setEavMapping(PannotationFactory.eINSTANCE.createEAVMapping()); } + // prevent eav mapping for audit entry classes + if (StoreUtil.isAuditEntryEClass(eclass)) { + aClass.setNoEAVMapping(PannotationFactory.eINSTANCE.createNoEAVMapping()); + } + if (log.isDebugEnabled()) { log.debug(" Adding default annotations for EClass: " + aClass.getModelElement().getName()); } diff --git a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/parser/EAnnotationParserImporter.java b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/parser/EAnnotationParserImporter.java index a0594e7bc..5f522c488 100755 --- a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/parser/EAnnotationParserImporter.java +++ b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/annotations/parser/EAnnotationParserImporter.java @@ -228,6 +228,10 @@ public class EAnnotationParserImporter implements EClassResolver, ExtensionPoint } } + if (source.equals(Constants.ANNOTATION_SOURCE_TENEO_JPA_AUDITING)) { + return false; + } + return source.startsWith(Constants.ANNOTATION_SOURCE_TENEO_JPA) || source.startsWith(Constants.ANNOTATION_SOURCE_TENEO_MAPPING); } diff --git a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/mapping/strategy/EntityNameStrategy.java b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/mapping/strategy/EntityNameStrategy.java index d1efb51d8..4f6f66591 100755 --- a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/mapping/strategy/EntityNameStrategy.java +++ b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/mapping/strategy/EntityNameStrategy.java @@ -48,7 +48,7 @@ public interface EntityNameStrategy extends ExtensionPoint, ExtensionManagerAwar /** * Return the EClass for a certain name, searches in the array of epackages */ - public EClass toEClass(String eClassName); + public EClass toEClass(String entityName); /** * @param paModel diff --git a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/mapping/strategy/impl/ClassicSQLNameStrategy.java b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/mapping/strategy/impl/ClassicSQLNameStrategy.java index 99b21eca7..1870bb85b 100755 --- a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/mapping/strategy/impl/ClassicSQLNameStrategy.java +++ b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/mapping/strategy/impl/ClassicSQLNameStrategy.java @@ -37,6 +37,7 @@ import org.eclipse.emf.teneo.mapping.strategy.EntityNameStrategy; import org.eclipse.emf.teneo.mapping.strategy.SQLNameStrategy; import org.eclipse.emf.teneo.mapping.strategy.StrategyUtil; import org.eclipse.emf.teneo.util.AssertUtil; +import org.eclipse.emf.teneo.util.StoreUtil; /** * Implements the sql naming strategy of older versions of Teneo. This @@ -363,7 +364,13 @@ public class ClassicSQLNameStrategy implements SQLNameStrategy, String truncedName = getEntityName(aClass.getPaModel(), aClass.getModelEClass()) + "_" + aAttribute.getModelEAttribute().getName(); - return optionTableNamePrefix + convert(truncedName, true); + + String auditPostFix = ""; + if (StoreUtil.isAuditEntryEClass(aAttribute.getModelEAttribute().getEContainingClass())) { + auditPostFix = persistenceOptions.getAuditingJoinTablePostfix(); + } + + return optionTableNamePrefix + convert(truncedName + auditPostFix, true); } /* @@ -625,4 +632,8 @@ public class ClassicSQLNameStrategy implements SQLNameStrategy, return correctedName.substring(0, optionMaximumSqlLength); } + public PersistenceOptions getPersistenceOptions() { + return persistenceOptions; + } + }
\ No newline at end of file diff --git a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/type/PersistentStoreAdapter.java b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/type/PersistentStoreAdapter.java index df61a7bd1..dba28db8b 100644 --- a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/type/PersistentStoreAdapter.java +++ b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/type/PersistentStoreAdapter.java @@ -43,7 +43,6 @@ import org.eclipse.emf.teneo.util.StoreUtil; */ public class PersistentStoreAdapter implements Adapter { - private static final long serialVersionUID = 1L; private Notifier target; private boolean targetCreatedByORM; diff --git a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/util/FieldUtil.java b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/util/FieldUtil.java index ddec40db3..3c0608dea 100755 --- a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/util/FieldUtil.java +++ b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/util/FieldUtil.java @@ -10,7 +10,6 @@ package org.eclipse.emf.teneo.util; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.util.Hashtable; import java.util.concurrent.ConcurrentHashMap; import org.eclipse.emf.teneo.TeneoException; diff --git a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/util/StoreUtil.java b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/util/StoreUtil.java index c7100cf96..78a0f97f3 100755 --- a/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/util/StoreUtil.java +++ b/core/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/util/StoreUtil.java @@ -77,6 +77,10 @@ public class StoreUtil { /** The Annotation source name */ public static final String ANNOTATION_SOURCE = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData"; + public static boolean isAuditEntryEClass(EClass eClass) { + return null != eClass.getEAnnotation(Constants.ANNOTATION_AUDITING_MODELELEMENT); + } + public static void resetSyntheticListInfo(EStructuralFeature eFeature, Object target) { if (target == null || eFeature instanceof EAttribute) { return; |