diff --git a/hibernate-core/src/main/java/org/hibernate/boot/internal/MetadataBuildingContextRootImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/internal/MetadataBuildingContextRootImpl.java index 181ca0341a..f38f7ef5b2 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/internal/MetadataBuildingContextRootImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/internal/MetadataBuildingContextRootImpl.java @@ -36,12 +36,7 @@ public class MetadataBuildingContextRootImpl implements MetadataBuildingContext this.options = options; this.mappingDefaults = mappingDefaults; this.metadataCollector = metadataCollector; - this.objectNameNormalizer = new ObjectNameNormalizer() { - @Override - protected MetadataBuildingContext getBuildingContext() { - return MetadataBuildingContextRootImpl.this; - } - }; + this.objectNameNormalizer = new ObjectNameNormalizer(this); this.typeDefinitionRegistry = new TypeDefinitionRegistryStandardImpl(); } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/naming/ObjectNameNormalizer.java b/hibernate-core/src/main/java/org/hibernate/boot/model/naming/ObjectNameNormalizer.java index 08155aee23..c8dce07e76 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/naming/ObjectNameNormalizer.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/naming/ObjectNameNormalizer.java @@ -15,8 +15,12 @@ import org.hibernate.internal.util.StringHelper; * * @author Steve Ebersole */ -public abstract class ObjectNameNormalizer { - private Database database; +public class ObjectNameNormalizer { + private final MetadataBuildingContext context; + + public ObjectNameNormalizer(MetadataBuildingContext context) { + this.context = context; + } /** * Normalizes the quoting of identifiers. @@ -35,17 +39,11 @@ public abstract class ObjectNameNormalizer { } protected Database database() { - if ( database == null ) { - database = getBuildingContext().getMetadataCollector().getDatabase(); - } - return database; + return getBuildingContext().getMetadataCollector().getDatabase(); } public Identifier normalizeIdentifierQuoting(Identifier identifier) { - return getBuildingContext().getMetadataCollector() - .getDatabase() - .getJdbcEnvironment() - .getIdentifierHelper() + return database().getJdbcEnvironment().getIdentifierHelper() .normalizeQuoting( identifier ); } @@ -74,20 +72,10 @@ public abstract class ObjectNameNormalizer { * @return The logical name */ public Identifier determineLogicalName(String explicitName, NamingStrategyHelper namingStrategyHelper) { - Identifier logicalName; - if ( StringHelper.isEmpty( explicitName ) ) { - logicalName = namingStrategyHelper.determineImplicitName( getBuildingContext() ); - } - else { - logicalName = namingStrategyHelper.handleExplicitName( explicitName, getBuildingContext() ); - } - logicalName = getBuildingContext().getMetadataCollector() - .getDatabase() - .getJdbcEnvironment() - .getIdentifierHelper() - .normalizeQuoting( logicalName ); - - return logicalName; + final Identifier logicalName = StringHelper.isEmpty( explicitName ) + ? namingStrategyHelper.determineImplicitName( getBuildingContext() ) + : namingStrategyHelper.handleExplicitName( explicitName, getBuildingContext() ); + return database().getJdbcEnvironment().getIdentifierHelper().normalizeQuoting( logicalName ); } /** @@ -116,5 +104,7 @@ public abstract class ObjectNameNormalizer { * * @return The current building context */ - protected abstract MetadataBuildingContext getBuildingContext(); + protected MetadataBuildingContext getBuildingContext() { + return context; + } } diff --git a/hibernate-core/src/main/java/org/hibernate/id/IncrementGenerator.java b/hibernate-core/src/main/java/org/hibernate/id/IncrementGenerator.java index c145f5d510..40be894699 100644 --- a/hibernate-core/src/main/java/org/hibernate/id/IncrementGenerator.java +++ b/hibernate-core/src/main/java/org/hibernate/id/IncrementGenerator.java @@ -90,8 +90,7 @@ public class IncrementGenerator implements IdentifierGenerator, StandardGenerato returnClass = type.getReturnedClass(); final JdbcEnvironment jdbcEnvironment = serviceRegistry.requireService( JdbcEnvironment.class ); - final ObjectNameNormalizer normalizer = - (ObjectNameNormalizer) parameters.get( IDENTIFIER_NORMALIZER ); + final ObjectNameNormalizer normalizer = (ObjectNameNormalizer) parameters.get( IDENTIFIER_NORMALIZER ); column = parameters.getProperty( COLUMN ); if ( column == null ) { @@ -101,12 +100,8 @@ public class IncrementGenerator implements IdentifierGenerator, StandardGenerato IdentifierHelper identifierHelper = jdbcEnvironment.getIdentifierHelper(); - final String schema = normalizer.toDatabaseIdentifierText( - parameters.getProperty( SCHEMA ) - ); - final String catalog = normalizer.toDatabaseIdentifierText( - parameters.getProperty( CATALOG ) - ); + final String schema = normalizer.toDatabaseIdentifierText( parameters.getProperty( SCHEMA ) ); + final String catalog = normalizer.toDatabaseIdentifierText( parameters.getProperty( CATALOG ) ); String tableList = parameters.getProperty( TABLES ); if ( tableList == null ) { diff --git a/hibernate-envers/src/main/java/org/hibernate/envers/boot/internal/EnversMetadataBuildingContextImpl.java b/hibernate-envers/src/main/java/org/hibernate/envers/boot/internal/EnversMetadataBuildingContextImpl.java index b07c180629..debf6b4763 100644 --- a/hibernate-envers/src/main/java/org/hibernate/envers/boot/internal/EnversMetadataBuildingContextImpl.java +++ b/hibernate-envers/src/main/java/org/hibernate/envers/boot/internal/EnversMetadataBuildingContextImpl.java @@ -48,12 +48,7 @@ public class EnversMetadataBuildingContextImpl implements EnversMetadataBuilding this.auditEntityNameRegistry = new AuditEntityNameRegister(); this.auditEntityConfigurationRegistry = new AuditEntityConfigurationRegistry(); - this.objectNameNormalizer = new ObjectNameNormalizer() { - @Override - protected MetadataBuildingContext getBuildingContext() { - return EnversMetadataBuildingContextImpl.this; - } - }; + this.objectNameNormalizer = new ObjectNameNormalizer(this); } @Override diff --git a/hibernate-testing/src/main/java/org/hibernate/testing/boot/MetadataBuildingContextTestingImpl.java b/hibernate-testing/src/main/java/org/hibernate/testing/boot/MetadataBuildingContextTestingImpl.java index 186e2c2256..1fea61d22f 100644 --- a/hibernate-testing/src/main/java/org/hibernate/testing/boot/MetadataBuildingContextTestingImpl.java +++ b/hibernate-testing/src/main/java/org/hibernate/testing/boot/MetadataBuildingContextTestingImpl.java @@ -17,7 +17,6 @@ import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.boot.spi.BootstrapContext; import org.hibernate.boot.spi.EffectiveMappingDefaults; import org.hibernate.boot.spi.InFlightMetadataCollector; -import org.hibernate.boot.spi.MappingDefaults; import org.hibernate.boot.spi.MetadataBuildingContext; import org.hibernate.boot.spi.MetadataBuildingOptions; @@ -41,12 +40,7 @@ public class MetadataBuildingContextTestingImpl implements MetadataBuildingConte new PersistenceUnitMetadataImpl() ); metadataCollector = new InFlightMetadataCollectorImpl( bootstrapContext, buildingOptions ); - objectNameNormalizer = new ObjectNameNormalizer() { - @Override - protected MetadataBuildingContext getBuildingContext() { - return MetadataBuildingContextTestingImpl.this; - } - }; + objectNameNormalizer = new ObjectNameNormalizer(this); typeDefinitionRegistry = new TypeDefinitionRegistryStandardImpl(); bootstrapContext.getTypeConfiguration().scope( this ); }