8585import org .hibernate .engine .spi .SessionFactoryImplementor ;
8686import org .hibernate .internal .CoreLogging ;
8787import org .hibernate .internal .CoreMessageLogger ;
88- import org .hibernate .internal .util .collections .CollectionHelper ;
8988import org .hibernate .mapping .Collection ;
9089import org .hibernate .mapping .Column ;
9190import org .hibernate .mapping .Component ;
126125import static org .hibernate .boot .model .relational .internal .SqlStringGenerationContextImpl .fromExplicit ;
127126import static org .hibernate .cfg .MappingSettings .DEFAULT_CATALOG ;
128127import static org .hibernate .cfg .MappingSettings .DEFAULT_SCHEMA ;
128+ import static org .hibernate .internal .util .collections .CollectionHelper .isEmpty ;
129129import static org .hibernate .internal .util .collections .CollectionHelper .mapOfSize ;
130130
131131/**
@@ -409,7 +409,7 @@ public void addEntityBinding(PersistentClass persistentClass) throws DuplicateMa
409409 throw new DuplicateMappingException ( DuplicateMappingException .Type .ENTITY , entityName );
410410 }
411411
412- PersistentClass matchingPersistentClass = entityBindingMap .values ()
412+ final PersistentClass matchingPersistentClass = entityBindingMap .values ()
413413 .stream ()
414414 .filter ( existingPersistentClass -> existingPersistentClass .getJpaEntityName ().equals ( jpaEntityName ) )
415415 .findFirst ()
@@ -503,11 +503,8 @@ public void registerEmbeddableInstantiator(Class<?> embeddableType, Class<? exte
503503
504504 @ Override
505505 public Class <? extends EmbeddableInstantiator > findRegisteredEmbeddableInstantiator (Class <?> embeddableType ) {
506- if ( registeredInstantiators == null ) {
507- return null ;
508- }
506+ return registeredInstantiators == null ? null : registeredInstantiators .get ( embeddableType );
509507
510- return registeredInstantiators .get ( embeddableType );
511508 }
512509
513510 private Map <Class <?>, Class <? extends CompositeUserType <?>>> registeredCompositeUserTypes ;
@@ -522,11 +519,8 @@ public void registerCompositeUserType(Class<?> embeddableType, Class<? extends C
522519
523520 @ Override
524521 public Class <? extends CompositeUserType <?>> findRegisteredCompositeUserType (Class <?> embeddableType ) {
525- if ( registeredCompositeUserTypes == null ) {
526- return null ;
527- }
522+ return registeredCompositeUserTypes == null ? null : registeredCompositeUserTypes .get ( embeddableType );
528523
529- return registeredCompositeUserTypes .get ( embeddableType );
530524 }
531525
532526 private Map <Class <?>, Class <? extends UserType <?>>> registeredUserTypes ;
@@ -540,11 +534,8 @@ public void registerUserType(Class<?> basicType, Class<? extends UserType<?>> us
540534
541535 @ Override
542536 public Class <? extends UserType <?>> findRegisteredUserType (Class <?> basicType ) {
543- if ( registeredUserTypes == null ) {
544- return null ;
545- }
537+ return registeredUserTypes == null ? null : registeredUserTypes .get ( basicType );
546538
547- return registeredUserTypes .get ( basicType );
548539 }
549540
550541 private Map <CollectionClassification , CollectionTypeRegistrationDescriptor > collectionTypeRegistrations ;
@@ -582,15 +573,16 @@ private CollectionTypeRegistrationDescriptor toDescriptor(CollectionTypeRegistra
582573 }
583574
584575 private Map <String ,String > extractParameters (Parameter [] annotationUsages ) {
585- if ( CollectionHelper . isEmpty ( annotationUsages ) ) {
576+ if ( isEmpty ( annotationUsages ) ) {
586577 return null ;
587578 }
588-
589- final Map <String ,String > result = mapOfSize ( annotationUsages .length );
590- for ( Parameter parameter : annotationUsages ) {
591- result .put ( parameter .name (), parameter .value () );
579+ else {
580+ final Map <String , String > result = mapOfSize ( annotationUsages .length );
581+ for ( Parameter parameter : annotationUsages ) {
582+ result .put ( parameter .name (), parameter .value () );
583+ }
584+ return result ;
592585 }
593- return result ;
594586 }
595587
596588
@@ -703,7 +695,7 @@ public IdentifierGeneratorDefinition getIdentifierGenerator(String name) {
703695
704696 @ Override
705697 public java .util .Collection <Table > collectTableMappings () {
706- ArrayList <Table > tables = new ArrayList <>();
698+ final ArrayList <Table > tables = new ArrayList <>();
707699 for ( Namespace namespace : getDatabase ().getNamespaces () ) {
708700 tables .addAll ( namespace .getTables () );
709701 }
@@ -715,29 +707,27 @@ public void addIdentifierGenerator(IdentifierGeneratorDefinition generator) {
715707 if ( generator == null || generator .getName () == null ) {
716708 throw new IllegalArgumentException ( "ID generator object or name is null." );
717709 }
718-
719- if ( generator .getName ().isEmpty () ) {
720- return ;
721- }
722-
723- if ( defaultIdentifierGeneratorNames .contains ( generator .getName () ) ) {
724- return ;
725- }
726-
727- final IdentifierGeneratorDefinition old = idGeneratorDefinitionMap .put ( generator .getName (), generator );
728- if ( old != null && !old .equals ( generator ) ) {
729- if ( bootstrapContext .getJpaCompliance ().isGlobalGeneratorScopeEnabled () ) {
730- throw new IllegalArgumentException ( "Duplicate generator name " + old .getName () + "; you will likely want to set the property " + AvailableSettings .JPA_ID_GENERATOR_GLOBAL_SCOPE_COMPLIANCE + " to false " );
731- }
732- else {
733- log .duplicateGeneratorName ( old .getName () );
710+ else if ( !generator .getName ().isEmpty ()
711+ && !defaultIdentifierGeneratorNames .contains ( generator .getName () ) ) {
712+ final IdentifierGeneratorDefinition old =
713+ idGeneratorDefinitionMap .put ( generator .getName (), generator );
714+ if ( old != null && !old .equals ( generator ) ) {
715+ if ( bootstrapContext .getJpaCompliance ().isGlobalGeneratorScopeEnabled () ) {
716+ throw new IllegalArgumentException ( "Duplicate generator name " + old .getName ()
717+ + "; you will likely want to set the property "
718+ + AvailableSettings .JPA_ID_GENERATOR_GLOBAL_SCOPE_COMPLIANCE + " to false " );
719+ }
720+ else {
721+ log .duplicateGeneratorName ( old .getName () );
722+ }
734723 }
735724 }
725+
736726 }
737727
738728 @ Override
739729 public void addDefaultIdentifierGenerator (IdentifierGeneratorDefinition generator ) {
740- this . addIdentifierGenerator ( generator );
730+ addIdentifierGenerator ( generator );
741731 defaultIdentifierGeneratorNames .add ( generator .getName () );
742732 }
743733
@@ -761,8 +751,7 @@ public void addNamedEntityGraph(NamedEntityGraphDefinition definition) {
761751 final String name = definition .getRegisteredName ();
762752 final NamedEntityGraphDefinition previous = namedEntityGraphMap .put ( name , definition );
763753 if ( previous != null ) {
764- throw new DuplicateMappingException (
765- DuplicateMappingException .Type .NAMED_ENTITY_GRAPH , name );
754+ throw new DuplicateMappingException ( DuplicateMappingException .Type .NAMED_ENTITY_GRAPH , name );
766755 }
767756 }
768757
@@ -790,12 +779,9 @@ public void addNamedQuery(NamedHqlQueryDefinition<?> def) {
790779 else if ( def .getRegistrationName () == null ) {
791780 throw new IllegalArgumentException ( "Named query definition name is null: " + def .getHqlString () );
792781 }
793-
794- if ( defaultNamedQueryNames .contains ( def .getRegistrationName () ) ) {
795- return ;
782+ else if ( !defaultNamedQueryNames .contains ( def .getRegistrationName () ) ) {
783+ applyNamedQuery ( def .getRegistrationName (), def );
796784 }
797-
798- applyNamedQuery ( def .getRegistrationName (), def );
799785 }
800786
801787 private void applyNamedQuery (String name , NamedHqlQueryDefinition <?> query ) {
@@ -833,15 +819,12 @@ public void addNamedNativeQuery(NamedNativeQueryDefinition<?> def) {
833819 if ( def == null ) {
834820 throw new IllegalArgumentException ( "Named native query definition object is null" );
835821 }
836- if ( def .getRegistrationName () == null ) {
822+ else if ( def .getRegistrationName () == null ) {
837823 throw new IllegalArgumentException ( "Named native query definition name is null: " + def .getSqlQueryString () );
838824 }
839-
840- if ( defaultNamedNativeQueryNames .contains ( def .getRegistrationName () ) ) {
841- return ;
825+ else if ( !defaultNamedNativeQueryNames .contains ( def .getRegistrationName () ) ) {
826+ applyNamedNativeQuery ( def .getRegistrationName (), def );
842827 }
843-
844- applyNamedNativeQuery ( def .getRegistrationName (), def );
845828 }
846829
847830 private void applyNamedNativeQuery (String name , NamedNativeQueryDefinition <?> query ) {
@@ -877,14 +860,11 @@ public void addNamedProcedureCallDefinition(NamedProcedureCallDefinition definit
877860 }
878861
879862 final String name = definition .getRegistrationName ();
880-
881- if ( defaultNamedProcedureNames .contains ( name ) ) {
882- return ;
883- }
884-
885- final NamedProcedureCallDefinition previous = namedProcedureCallMap .put ( name , definition );
886- if ( previous != null ) {
887- throw new DuplicateMappingException ( DuplicateMappingException .Type .PROCEDURE , name );
863+ if ( !defaultNamedProcedureNames .contains ( name ) ) {
864+ final NamedProcedureCallDefinition previous = namedProcedureCallMap .put ( name , definition );
865+ if ( previous != null ) {
866+ throw new DuplicateMappingException ( DuplicateMappingException .Type .PROCEDURE , name );
867+ }
888868 }
889869 }
890870
@@ -918,12 +898,9 @@ public void addResultSetMapping(NamedResultSetMappingDescriptor resultSetMapping
918898 if ( name == null ) {
919899 throw new IllegalArgumentException ( "Result-set mapping name is null: " + resultSetMappingDescriptor );
920900 }
921-
922- if ( defaultSqlResultSetMappingNames .contains ( name ) ) {
923- return ;
901+ else if ( !defaultSqlResultSetMappingNames .contains ( name ) ) {
902+ applyResultSetMapping ( resultSetMappingDescriptor );
924903 }
925-
926- applyResultSetMapping ( resultSetMappingDescriptor );
927904 }
928905
929906 public void applyResultSetMapping (NamedResultSetMappingDescriptor resultSetMappingDescriptor ) {
@@ -1879,32 +1856,26 @@ public void processSecondPasses(MetadataBuildingContext buildingContext) {
18791856 }
18801857
18811858 private void processValueResolvers (MetadataBuildingContext buildingContext ) {
1882- if ( valueResolvers == null ) {
1883- return ;
1884- }
1885-
1886-
1887- while ( ! valueResolvers .isEmpty () ) {
1888- final boolean anyRemoved = valueResolvers .removeIf (
1889- resolver -> resolver .apply ( buildingContext )
1890- );
1859+ if ( valueResolvers != null ) {
1860+ while ( !valueResolvers .isEmpty () ) {
1861+ final boolean anyRemoved = valueResolvers .removeIf (
1862+ resolver -> resolver .apply ( buildingContext )
1863+ );
18911864
1892- if ( ! anyRemoved ) {
1893- throw new MappingException ( "Unable to complete initialization of boot meta-model" );
1865+ if ( !anyRemoved ) {
1866+ throw new MappingException ( "Unable to complete initialization of boot meta-model" );
1867+ }
18941868 }
18951869 }
18961870 }
18971871
18981872 private void processSecondPasses (ArrayList <? extends SecondPass > secondPasses ) {
1899- if ( secondPasses == null ) {
1900- return ;
1901- }
1902-
1903- for ( SecondPass secondPass : secondPasses ) {
1904- secondPass .doSecondPass ( getEntityBindingMap () );
1873+ if ( secondPasses != null ) {
1874+ for ( SecondPass secondPass : secondPasses ) {
1875+ secondPass .doSecondPass ( getEntityBindingMap () );
1876+ }
1877+ secondPasses .clear ();
19051878 }
1906-
1907- secondPasses .clear ();
19081879 }
19091880
19101881 private void processFkSecondPassesInOrder () {
@@ -1915,8 +1886,8 @@ private void processFkSecondPassesInOrder() {
19151886
19161887 // split FkSecondPass instances into primary key and non primary key FKs.
19171888 // While doing so build a map of class names to FkSecondPass instances depending on this class.
1918- Map <String , Set <FkSecondPass >> isADependencyOf = new HashMap <>();
1919- List <FkSecondPass > endOfQueueFkSecondPasses = new ArrayList <>( fkSecondPassList .size () );
1889+ final Map <String , Set <FkSecondPass >> isADependencyOf = new HashMap <>();
1890+ final List <FkSecondPass > endOfQueueFkSecondPasses = new ArrayList <>( fkSecondPassList .size () );
19201891 for ( FkSecondPass sp : fkSecondPassList ) {
19211892 if ( sp .isInPrimaryKey () ) {
19221893 final String referenceEntityName = sp .getReferencedEntityName ();
@@ -1933,7 +1904,7 @@ private void processFkSecondPassesInOrder() {
19331904 }
19341905
19351906 // using the isADependencyOf map we order the FkSecondPass recursively instances into the right order for processing
1936- List <FkSecondPass > orderedFkSecondPasses = new ArrayList <>( fkSecondPassList .size () );
1907+ final List <FkSecondPass > orderedFkSecondPasses = new ArrayList <>( fkSecondPassList .size () );
19371908 for ( String tableName : isADependencyOf .keySet () ) {
19381909 buildRecursiveOrderedFkSecondPasses ( orderedFkSecondPasses , isADependencyOf , tableName , tableName );
19391910 }
@@ -1968,7 +1939,7 @@ private void buildRecursiveOrderedFkSecondPasses(
19681939 Map <String , Set <FkSecondPass >> isADependencyOf ,
19691940 String startTable ,
19701941 String currentTable ) {
1971- Set <FkSecondPass > dependencies = isADependencyOf .get ( currentTable );
1942+ final Set <FkSecondPass > dependencies = isADependencyOf .get ( currentTable );
19721943 if ( dependencies != null ) {
19731944 for ( FkSecondPass pass : dependencies ) {
19741945 String dependentTable = pass .getValue ().getTable ().getQualifiedTableName ().render ();
@@ -2016,7 +1987,7 @@ private void processEndOfQueue(List<FkSecondPass> endOfQueueFkSecondPasses) {
20161987
20171988 private void secondPassCompileForeignKeys (MetadataBuildingContext buildingContext ) {
20181989 int uniqueInteger = 0 ;
2019- Set <ForeignKey > done = new HashSet <>();
1990+ final Set <ForeignKey > done = new HashSet <>();
20201991 for ( Table table : collectTableMappings () ) {
20211992 table .setUniqueInteger ( uniqueInteger ++ );
20221993 secondPassCompileForeignKeys ( table , done , buildingContext );
@@ -2052,26 +2023,22 @@ protected void secondPassCompileForeignKeys(Table table, Set<ForeignKey> done, M
20522023 }
20532024
20542025 private void processPropertyReferences () {
2055- if ( delayedPropertyReferenceHandlers == null ) {
2056- return ;
2057- }
2058- log .debug ( "Processing association property references" );
2026+ if ( delayedPropertyReferenceHandlers != null ) {
2027+ log .debug ( "Processing association property references" );
20592028
2060- for ( DelayedPropertyReferenceHandler delayedPropertyReferenceHandler : delayedPropertyReferenceHandlers ) {
2061- delayedPropertyReferenceHandler .process ( this );
2062- }
2029+ for ( DelayedPropertyReferenceHandler delayedPropertyReferenceHandler : delayedPropertyReferenceHandlers ) {
2030+ delayedPropertyReferenceHandler .process ( this );
2031+ }
20632032
2064- delayedPropertyReferenceHandlers .clear ();
2033+ delayedPropertyReferenceHandlers .clear ();
2034+ }
20652035 }
20662036
20672037 private Map <String ,NaturalIdUniqueKeyBinder > naturalIdUniqueKeyBinderMap ;
20682038
20692039 @ Override
20702040 public NaturalIdUniqueKeyBinder locateNaturalIdUniqueKeyBinder (String entityName ) {
2071- if ( naturalIdUniqueKeyBinderMap == null ) {
2072- return null ;
2073- }
2074- return naturalIdUniqueKeyBinderMap .get ( entityName );
2041+ return naturalIdUniqueKeyBinderMap == null ? null : naturalIdUniqueKeyBinderMap .get ( entityName );
20752042 }
20762043
20772044 @ Override
@@ -2086,15 +2053,12 @@ public void registerNaturalIdUniqueKeyBinder(String entityName, NaturalIdUniqueK
20862053 }
20872054
20882055 private void processNaturalIdUniqueKeyBinders () {
2089- if ( naturalIdUniqueKeyBinderMap == null ) {
2090- return ;
2091- }
2092-
2093- for ( NaturalIdUniqueKeyBinder naturalIdUniqueKeyBinder : naturalIdUniqueKeyBinderMap .values () ) {
2094- naturalIdUniqueKeyBinder .process ();
2056+ if ( naturalIdUniqueKeyBinderMap != null ) {
2057+ for ( NaturalIdUniqueKeyBinder naturalIdUniqueKeyBinder : naturalIdUniqueKeyBinderMap .values () ) {
2058+ naturalIdUniqueKeyBinder .process ();
2059+ }
2060+ naturalIdUniqueKeyBinderMap .clear ();
20952061 }
2096-
2097- naturalIdUniqueKeyBinderMap .clear ();
20982062 }
20992063
21002064 private void processCachingOverrides () {
0 commit comments