Skip to content

Commit

Permalink
General refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
sebersole committed Oct 21, 2023
1 parent 89b02cf commit 1c16c8f
Show file tree
Hide file tree
Showing 27 changed files with 178 additions and 193 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* SPDX-License-Identifier: Apache-2.0
* Copyright: Red Hat Inc. and Hibernate Authors
*/
package org.hibernate.models.orm.spi;
package org.hibernate.models.orm;

import java.lang.annotation.Annotation;
import java.util.function.Consumer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* SPDX-License-Identifier: Apache-2.0
* Copyright: Red Hat Inc. and Hibernate Authors
*/
package org.hibernate.models.orm.spi;
package org.hibernate.models.orm;

import java.lang.annotation.Annotation;
import java.util.function.Consumer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.hibernate.MappingException;
import org.hibernate.models.orm.spi.EntityHierarchy;
import org.hibernate.models.orm.spi.IdentifiableTypeMetadata;
import org.hibernate.models.orm.spi.JpaAnnotations;
import org.hibernate.models.orm.JpaAnnotations;
import org.hibernate.models.orm.spi.OrmModelBuildingContext;
import org.hibernate.models.source.spi.AnnotationUsage;
import org.hibernate.models.source.spi.ClassDetails;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
import org.hibernate.models.internal.IndexedConsumer;
import org.hibernate.models.orm.MultipleAttributeNaturesException;
import org.hibernate.models.orm.spi.AttributeMetadata;
import org.hibernate.models.orm.spi.HibernateAnnotations;
import org.hibernate.models.orm.spi.JpaAnnotations;
import org.hibernate.models.orm.HibernateAnnotations;
import org.hibernate.models.orm.JpaAnnotations;
import org.hibernate.models.orm.spi.ManagedTypeMetadata;
import org.hibernate.models.orm.spi.OrmModelBuildingContext;
import org.hibernate.models.source.spi.AnnotationUsage;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import java.util.function.Consumer;
import java.util.function.Function;

import org.hibernate.models.orm.spi.JpaAnnotations;
import org.hibernate.models.orm.JpaAnnotations;
import org.hibernate.models.orm.spi.OrmModelBuildingContext;
import org.hibernate.models.orm.spi.PersistentAttributeMemberResolver;
import org.hibernate.models.source.spi.ClassDetails;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import org.hibernate.models.orm.AccessTypeDeterminationException;
import org.hibernate.models.orm.spi.EntityHierarchy;
import org.hibernate.models.orm.spi.IdentifiableTypeMetadata;
import org.hibernate.models.orm.spi.JpaAnnotations;
import org.hibernate.models.orm.JpaAnnotations;
import org.hibernate.models.orm.spi.OrmModelBuildingContext;
import org.hibernate.models.source.spi.AnnotationTarget;
import org.hibernate.models.source.spi.AnnotationUsage;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import org.hibernate.models.orm.spi.EntityHierarchy;
import org.hibernate.models.orm.spi.EntityTypeMetadata;
import org.hibernate.models.orm.spi.IdentifiableTypeMetadata;
import org.hibernate.models.orm.spi.JpaAnnotations;
import org.hibernate.models.orm.JpaAnnotations;
import org.hibernate.models.orm.spi.OrmModelBuildingContext;
import org.hibernate.models.source.spi.AnnotationUsage;
import org.hibernate.models.source.spi.ClassDetails;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import org.hibernate.models.orm.spi.EntityHierarchy;
import org.hibernate.models.orm.spi.EntityTypeMetadata;
import org.hibernate.models.orm.spi.IdentifiableTypeMetadata;
import org.hibernate.models.orm.spi.JpaAnnotations;
import org.hibernate.models.orm.JpaAnnotations;
import org.hibernate.models.orm.spi.OrmModelBuildingContext;
import org.hibernate.models.source.spi.AnnotationUsage;
import org.hibernate.models.source.spi.ClassDetails;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@
import org.hibernate.internal.util.collections.CollectionHelper;
import org.hibernate.metamodel.CollectionClassification;
import org.hibernate.models.internal.StringHelper;
import org.hibernate.models.orm.spi.ConversionRegistration;
import org.hibernate.models.orm.spi.EntityListenerRegistration;
import org.hibernate.models.orm.spi.GlobalRegistrations;
import org.hibernate.models.orm.spi.JavaTypeRegistration;
import org.hibernate.models.orm.spi.JdbcTypeRegistration;
import org.hibernate.models.orm.spi.UserTypeRegistration;
import org.hibernate.models.source.internal.dynamic.DynamicAnnotationUsage;
import org.hibernate.models.source.spi.AnnotationDescriptorRegistry;
import org.hibernate.models.source.spi.AnnotationTarget;
Expand All @@ -48,24 +54,23 @@

import static java.util.Collections.emptyList;
import static java.util.Collections.emptyMap;
import static org.hibernate.models.orm.spi.HibernateAnnotations.COLLECTION_TYPE_REG;
import static org.hibernate.models.orm.spi.HibernateAnnotations.COMPOSITE_TYPE_REG;
import static org.hibernate.models.orm.spi.HibernateAnnotations.CONVERTER_REG;
import static org.hibernate.models.orm.spi.HibernateAnnotations.EMBEDDABLE_INSTANTIATOR_REG;
import static org.hibernate.models.orm.spi.HibernateAnnotations.FILTER_DEF;
import static org.hibernate.models.orm.spi.HibernateAnnotations.JAVA_TYPE_REG;
import static org.hibernate.models.orm.spi.HibernateAnnotations.JDBC_TYPE_REG;
import static org.hibernate.models.orm.spi.HibernateAnnotations.TYPE_REG;
import static org.hibernate.models.orm.HibernateAnnotations.COLLECTION_TYPE_REG;
import static org.hibernate.models.orm.HibernateAnnotations.COMPOSITE_TYPE_REG;
import static org.hibernate.models.orm.HibernateAnnotations.CONVERTER_REG;
import static org.hibernate.models.orm.HibernateAnnotations.EMBEDDABLE_INSTANTIATOR_REG;
import static org.hibernate.models.orm.HibernateAnnotations.FILTER_DEF;
import static org.hibernate.models.orm.HibernateAnnotations.JAVA_TYPE_REG;
import static org.hibernate.models.orm.HibernateAnnotations.JDBC_TYPE_REG;
import static org.hibernate.models.orm.HibernateAnnotations.TYPE_REG;

/**
* @author Steve Ebersole
*/
public class GlobalRegistrations {
public class GlobalRegistrationsImpl implements GlobalRegistrations {
private final ClassDetailsRegistry classDetailsRegistry;
private final AnnotationDescriptorRegistry annotationDescriptorRegistry;

private List<EntityListenerRegistration> entityListenerRegistrations;
private List<ClassDetails> autoAppliedConverters;
private List<ConversionRegistration> converterRegistrations;
private List<JavaTypeRegistration> javaTypeRegistrations;
private List<JdbcTypeRegistration> jdbcTypeRegistrations;
Expand All @@ -79,59 +84,75 @@ public class GlobalRegistrations {
private Map<String,TableGeneratorRegistration> tableGeneratorRegistrations;
private Map<String,GenericGeneratorRegistration> genericGeneratorRegistrations;

private Map<String, NamedQueryRegistration> jpaNamedQueries;
private Map<String, NamedQueryRegistration> hibernateNamedHqlQueries;
private Map<String, NamedQueryRegistration> hibernateNamedNativeQueries;

public GlobalRegistrations(SourceModelBuildingContext sourceModelBuildingContext) {
public GlobalRegistrationsImpl(SourceModelBuildingContext sourceModelBuildingContext) {
this( sourceModelBuildingContext.getClassDetailsRegistry(), sourceModelBuildingContext.getAnnotationDescriptorRegistry() );
}

public GlobalRegistrations(ClassDetailsRegistry classDetailsRegistry, AnnotationDescriptorRegistry annotationDescriptorRegistry) {
public GlobalRegistrationsImpl(ClassDetailsRegistry classDetailsRegistry, AnnotationDescriptorRegistry annotationDescriptorRegistry) {
this.classDetailsRegistry = classDetailsRegistry;
this.annotationDescriptorRegistry = annotationDescriptorRegistry;
}

@Override
public List<EntityListenerRegistration> getEntityListenerRegistrations() {
return entityListenerRegistrations;
}

@Override
public List<ConversionRegistration> getConverterRegistrations() {
return converterRegistrations == null ? emptyList() : converterRegistrations;
}

public List<ClassDetails> getAutoAppliedConverters() {
return autoAppliedConverters == null ? emptyList() : autoAppliedConverters;
}

@Override
public List<JavaTypeRegistration> getJavaTypeRegistrations() {
return javaTypeRegistrations == null ? emptyList() : javaTypeRegistrations;
}

@Override
public List<JdbcTypeRegistration> getJdbcTypeRegistrations() {
return jdbcTypeRegistrations == null ? emptyList() : jdbcTypeRegistrations;
}

@Override
public List<UserTypeRegistration> getUserTypeRegistrations() {
return userTypeRegistrations == null ? emptyList() : userTypeRegistrations;
}

@Override
public List<CompositeUserTypeRegistration> getCompositeUserTypeRegistrations() {
return compositeUserTypeRegistrations == null ? emptyList() : compositeUserTypeRegistrations;
}

@Override
public List<CollectionTypeRegistration> getCollectionTypeRegistrations() {
return collectionTypeRegistrations == null ? emptyList() : collectionTypeRegistrations;
}

@Override
public List<EmbeddableInstantiatorRegistration> getEmbeddableInstantiatorRegistrations() {
return embeddableInstantiatorRegistrations == null ? emptyList() : embeddableInstantiatorRegistrations;
}

@Override
public Map<String, FilterDefRegistration> getFilterDefRegistrations() {
return filterDefRegistrations == null ? emptyMap() : filterDefRegistrations;
}

@Override
public Map<String, SequenceGeneratorRegistration> getSequenceGeneratorRegistrations() {
return sequenceGeneratorRegistrations == null ? emptyMap() : sequenceGeneratorRegistrations;
}

@Override
public Map<String, TableGeneratorRegistration> getTableGeneratorRegistrations() {
return tableGeneratorRegistrations == null ? emptyMap() : tableGeneratorRegistrations;
}

@Override
public Map<String, GenericGeneratorRegistration> getGenericGeneratorRegistrations() {
return genericGeneratorRegistrations == null ? emptyMap() : genericGeneratorRegistrations;
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// JavaTypeRegistration

Expand All @@ -154,10 +175,14 @@ public void collectJavaTypeRegistrations(List<JaxbJavaTypeRegistration> registra
}

public void collectJavaTypeRegistration(ClassDetails javaType, ClassDetails descriptor) {
collectJavaTypeRegistration( new JavaTypeRegistration( javaType, descriptor ) );
}

public void collectJavaTypeRegistration(JavaTypeRegistration registration) {
if ( javaTypeRegistrations == null ) {
javaTypeRegistrations = new ArrayList<>();
}
javaTypeRegistrations.add( new JavaTypeRegistration( javaType, descriptor ) );
javaTypeRegistrations.add( registration );
}


Expand Down Expand Up @@ -198,7 +223,7 @@ public void collectConverterRegistrations(AnnotationTarget annotationTarget) {
final ClassDetails domainType = usage.getAttributeValue( "domainType" );
final ClassDetails converterType = usage.getAttributeValue( "converter" );
final boolean autoApply = usage.getAttributeValue( "autoApply" );
collectConverterRegistration( new ConversionRegistration( domainType, converterType, autoApply ) );
collectConverterRegistration( new ConversionRegistration( domainType, converterType, autoApply, CONVERTER_REG ) );
} );
}

Expand All @@ -218,7 +243,7 @@ public void collectConverterRegistrations(List<JaxbConverterRegistration> regist
}
final ClassDetails converterType = classDetailsRegistry.resolveClassDetails( registration.getConverter() );
final boolean autoApply = registration.isAutoApply();
collectConverterRegistration( new ConversionRegistration( explicitDomainType, converterType, autoApply ) );
collectConverterRegistration( new ConversionRegistration( explicitDomainType, converterType, autoApply, CONVERTER_REG ) );
} );
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@

import java.lang.annotation.Annotation;

import org.hibernate.models.orm.HibernateAnnotations;
import org.hibernate.models.orm.JpaAnnotations;
import org.hibernate.models.source.spi.AnnotationUsage;

/**
* @see org.hibernate.models.orm.spi.JpaAnnotations#NAMED_QUERY
* @see org.hibernate.models.orm.spi.JpaAnnotations#NAMED_NATIVE_QUERY
* @see org.hibernate.models.orm.spi.JpaAnnotations#NAMED_STORED_PROCEDURE_QUERY
* @see org.hibernate.models.orm.spi.HibernateAnnotations#NAMED_QUERY
* @see org.hibernate.models.orm.spi.HibernateAnnotations#NAMED_NATIVE_QUERY
* @see JpaAnnotations#NAMED_QUERY
* @see JpaAnnotations#NAMED_NATIVE_QUERY
* @see JpaAnnotations#NAMED_STORED_PROCEDURE_QUERY
* @see HibernateAnnotations#NAMED_QUERY
* @see HibernateAnnotations#NAMED_NATIVE_QUERY
*
* @author Steve Ebersole
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
import java.util.Locale;
import java.util.function.Consumer;

import org.hibernate.models.orm.spi.HibernateAnnotations;
import org.hibernate.models.orm.spi.JpaAnnotations;
import org.hibernate.models.orm.HibernateAnnotations;
import org.hibernate.models.orm.JpaAnnotations;
import org.hibernate.models.source.AnnotationAccessException;
import org.hibernate.models.source.spi.AnnotationDescriptor;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,15 @@
* @author Steve Ebersole
*/
public class ProcessResultCollector {
private final GlobalRegistrations globalRegistrations;
private final GlobalRegistrationsImpl globalRegistrations;
private final boolean areIdGeneratorsGlobal;

public ProcessResultCollector(boolean areIdGeneratorsGlobal, SourceModelBuildingContext sourceModelBuildingContext) {
this.globalRegistrations = new GlobalRegistrations( sourceModelBuildingContext );
this.globalRegistrations = new GlobalRegistrationsImpl( sourceModelBuildingContext );
this.areIdGeneratorsGlobal = areIdGeneratorsGlobal;
}

public GlobalRegistrations getGlobalRegistrations() {
public GlobalRegistrationsImpl getGlobalRegistrations() {
return globalRegistrations;
}

Expand Down Expand Up @@ -116,21 +116,7 @@ public ProcessResult createResult(
entityHierarchies,
mappedSuperclasses,
embeddables,
getGlobalRegistrations().getJavaTypeRegistrations(),
getGlobalRegistrations().getJdbcTypeRegistrations(),
getGlobalRegistrations().getConverterRegistrations(),
getGlobalRegistrations().getAutoAppliedConverters(),
getGlobalRegistrations().getUserTypeRegistrations(),
getGlobalRegistrations().getCompositeUserTypeRegistrations(),
getGlobalRegistrations().getCollectionTypeRegistrations(),
getGlobalRegistrations().getEmbeddableInstantiatorRegistrations(),
getGlobalRegistrations().getFilterDefRegistrations(),
// jpaNamedQueries == null ? emptyMap() : jpaNamedQueries,
// hibernateNamedHqlQueries == null ? emptyMap() : hibernateNamedHqlQueries,
// hibernateNamedNativeQueries == null ? emptyMap() : hibernateNamedNativeQueries
emptyMap(),
emptyMap(),
emptyMap()
getGlobalRegistrations()
);
}
}
Loading

0 comments on commit 1c16c8f

Please sign in to comment.