[hibernate-commits] Hibernate SVN: r17067 - jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Fri Jul 10 11:04:18 EDT 2009
Author: hardy.ferentschik
Date: 2009-07-10 11:04:18 -0400 (Fri, 10 Jul 2009)
New Revision: 17067
Modified:
jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/JPAMetaModelEntityProcessor.java
Log:
reading access defaults from xml
Modified: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/JPAMetaModelEntityProcessor.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/JPAMetaModelEntityProcessor.java 2009-07-10 13:19:47 UTC (rev 17066)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/JPAMetaModelEntityProcessor.java 2009-07-10 15:04:18 UTC (rev 17067)
@@ -17,6 +17,7 @@
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.TypeElement;
import javax.lang.model.util.Elements;
+import javax.persistence.AccessType;
import javax.persistence.Embeddable;
import javax.persistence.MappedSuperclass;
import javax.tools.Diagnostic;
@@ -32,6 +33,8 @@
import org.hibernate.jpa.metamodel.xml.jaxb.EntityMappings;
import org.hibernate.jpa.metamodel.xml.jaxb.ObjectFactory;
import org.hibernate.jpa.metamodel.xml.jaxb.Persistence;
+import org.hibernate.jpa.metamodel.xml.jaxb.PersistenceUnitDefaults;
+import org.hibernate.jpa.metamodel.xml.jaxb.PersistenceUnitMetadata;
/**
* Main annotation processor.
@@ -46,10 +49,11 @@
private static final String PATH_SEPARATOR = "/";
private static final String PERSISTENCE_XML = "/META-INF/persistence.xml";
- private static final Boolean ALLOW_OTHER_PROCESSORS_TO_CLAIM_ANNOTATIONS = Boolean.TRUE;
+ private static final Boolean ALLOW_OTHER_PROCESSORS_TO_CLAIM_ANNOTATIONS = Boolean.FALSE;
private static final String ENTITY_ANN = javax.persistence.Entity.class.getName();
private static final String MAPPED_SUPERCLASS_ANN = MappedSuperclass.class.getName();
private static final String EMBEDDABLE_ANN = Embeddable.class.getName();
+ private static final AccessType DEFAULT_XML_ACCESS_TYPE = AccessType.PROPERTY;
private boolean xmlProcessed = false;
private Context context;
@@ -91,7 +95,7 @@
handleRootElementAnnotationMirrors( element );
}
- return !ALLOW_OTHER_PROCESSORS_TO_CLAIM_ANNOTATIONS;
+ return ALLOW_OTHER_PROCESSORS_TO_CLAIM_ANNOTATIONS;
}
private void createMetaModelClasses() {
@@ -152,12 +156,47 @@
return;
}
- parseEntities( mappings );
- parseEmbeddable( mappings );
- parseMappedSuperClass( mappings );
+ AccessType accessType = determineGlobalAccessType( mappings );
+
+ parseEntities( mappings, accessType );
+ parseEmbeddable( mappings, accessType );
+ parseMappedSuperClass( mappings, accessType );
}
- private void parseEntities(EntityMappings mappings) {
+ private AccessType determineGlobalAccessType(EntityMappings mappings) {
+ AccessType accessType = DEFAULT_XML_ACCESS_TYPE;
+
+ if ( mappings.getAccess() != null ) {
+ accessType = mapXmlAccessTypeToJpaAccessType( mappings.getAccess() );
+ return accessType; // no need to check persistence unit default
+ }
+
+ PersistenceUnitMetadata meta = mappings.getPersistenceUnitMetadata();
+ if ( meta != null ) {
+ PersistenceUnitDefaults persistenceUnitDefaults = meta.getPersistenceUnitDefaults();
+ if ( persistenceUnitDefaults != null ) {
+ org.hibernate.jpa.metamodel.xml.jaxb.AccessType xmlAccessType = persistenceUnitDefaults.getAccess();
+ if ( xmlAccessType != null ) {
+ accessType = mapXmlAccessTypeToJpaAccessType( xmlAccessType );
+ }
+ }
+ }
+ return accessType;
+ }
+
+ private AccessType mapXmlAccessTypeToJpaAccessType(org.hibernate.jpa.metamodel.xml.jaxb.AccessType xmlAccessType) {
+ switch ( xmlAccessType ) {
+ case FIELD: {
+ return AccessType.FIELD;
+ }
+ case PROPERTY: {
+ return AccessType.PROPERTY;
+ }
+ }
+ return null;
+ }
+
+ private void parseEntities(EntityMappings mappings, AccessType accessType) {
String packageName = mappings.getPackage();
Collection<Entity> entities = mappings.getEntity();
for ( Entity entity : entities ) {
@@ -195,7 +234,7 @@
return utils.getTypeElement( fullyQualifiedClassName );
}
- private void parseEmbeddable(EntityMappings mappings) {
+ private void parseEmbeddable(EntityMappings mappings, AccessType accessType) {
String packageName = mappings.getPackage();
Collection<org.hibernate.jpa.metamodel.xml.jaxb.Embeddable> embeddables = mappings.getEmbeddable();
for ( org.hibernate.jpa.metamodel.xml.jaxb.Embeddable embeddable : embeddables ) {
@@ -223,7 +262,7 @@
}
}
- private void parseMappedSuperClass(EntityMappings mappings) {
+ private void parseMappedSuperClass(EntityMappings mappings, AccessType accessType) {
String packageName = mappings.getPackage();
Collection<org.hibernate.jpa.metamodel.xml.jaxb.MappedSuperclass> mappedSuperClasses = mappings.getMappedSuperclass();
for ( org.hibernate.jpa.metamodel.xml.jaxb.MappedSuperclass mappedSuperClass : mappedSuperClasses ) {
More information about the hibernate-commits
mailing list