25
25
import org .hibernate .boot .models .internal .ModelsHelper ;
26
26
import org .hibernate .boot .models .xml .spi .XmlDocumentContext ;
27
27
import org .hibernate .boot .spi .BootstrapContext ;
28
- import org .hibernate .internal .util .StringHelper ;
29
28
import org .hibernate .internal .util .collections .CollectionHelper ;
30
29
import org .hibernate .models .internal .ClassTypeDetailsImpl ;
31
30
import org .hibernate .models .internal .MutableClassDetailsRegistry ;
32
31
import org .hibernate .models .internal .dynamic .DynamicClassDetails ;
33
32
import org .hibernate .models .internal .dynamic .DynamicFieldDetails ;
34
- import org .hibernate .models .internal .jdk .JdkBuilders ;
35
33
import org .hibernate .models .internal .jdk .JdkClassDetails ;
36
34
import org .hibernate .models .spi .ClassDetails ;
37
35
import org .hibernate .models .spi .ClassDetailsRegistry ;
38
36
import org .hibernate .models .spi .MutableClassDetails ;
39
- import org .hibernate .models .spi .SourceModelBuildingContext ;
37
+ import org .hibernate .models .spi .ModelsContext ;
40
38
import org .hibernate .models .spi .TypeDetails ;
41
39
import org .hibernate .type .descriptor .java .JavaType ;
42
40
import org .hibernate .type .descriptor .jdbc .JdbcType ;
48
46
import java .util .Set ;
49
47
50
48
import static org .hibernate .internal .util .NullnessHelper .nullif ;
51
- import static org .hibernate .internal .util .StringHelper .isEmpty ;
52
49
import static org .hibernate .internal .util .StringHelper .isNotEmpty ;
53
50
import static org .hibernate .models .internal .ModifierUtils .DYNAMIC_ATTRIBUTE_MODIFIERS ;
54
51
@@ -395,11 +392,11 @@ private static ClassDetails determineAttributeJavaType(
395
392
final String target = jaxbBasicMapping .getTarget ();
396
393
if ( isNotEmpty ( target ) ) {
397
394
final SimpleTypeInterpretation simpleTypeInterpretation = SimpleTypeInterpretation .interpret ( target );
398
- return resolveBasicMappingTarget ( target , xmlDocumentContext );
395
+ return resolveBasicMappingTarget ( simpleTypeInterpretation , xmlDocumentContext );
399
396
}
400
397
401
398
final BootstrapContext bootstrapContext = xmlDocumentContext .getBootstrapContext ();
402
- final SourceModelBuildingContext modelsContext = bootstrapContext .getModelsContext ();
399
+ final ModelsContext modelsContext = bootstrapContext .getModelsContext ();
403
400
404
401
// UserType
405
402
final JaxbUserTypeImpl userTypeNode = jaxbBasicMapping .getType ();
@@ -460,30 +457,16 @@ else if ( jdbcTypeCode != null ) {
460
457
* primitive and wrapper ({@code boolean} and {@code Boolean} e.g.) is important while in
461
458
* SimpleTypeInterpretation we only care about the wrapper.
462
459
*/
463
- private static ClassDetails resolveBasicMappingTarget (String name , XmlDocumentContext xmlDocumentContext ) {
464
- final SourceModelBuildingContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
460
+ private static ClassDetails resolveBasicMappingTarget (SimpleTypeInterpretation targetInterpretation , XmlDocumentContext xmlDocumentContext ) {
461
+ final ModelsContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
465
462
final ClassDetailsRegistry classDetailsRegistry = modelsContext .getClassDetailsRegistry ();
466
-
467
- if ( isEmpty ( name ) ) {
468
- return classDetailsRegistry .resolveClassDetails ( Object .class .getName () );
469
- }
470
-
471
- final SimpleTypeInterpretation simpleTypeInterpretation = SimpleTypeInterpretation .interpret ( name );
472
- if ( simpleTypeInterpretation != null ) {
473
- return classDetailsRegistry .resolveClassDetails ( simpleTypeInterpretation .getJavaType ().getName () );
474
- }
475
-
476
- name = StringHelper .qualifyConditionallyIfNot ( xmlDocumentContext .getXmlDocument ().getDefaults ().getPackage (), name );
477
- return classDetailsRegistry .as ( MutableClassDetailsRegistry .class ).resolveClassDetails (
478
- name ,
479
- (s ) -> JdkBuilders .buildClassDetailsStatic ( s , modelsContext )
480
- );
463
+ return classDetailsRegistry .resolveClassDetails ( targetInterpretation .getJavaType ().getName () );
481
464
}
482
465
483
466
private static MutableClassDetails resolveTemporalJavaType (
484
467
TemporalType temporalType ,
485
468
XmlDocumentContext xmlDocumentContext ) {
486
- final SourceModelBuildingContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
469
+ final ModelsContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
487
470
final MutableClassDetailsRegistry classDetailsRegistry = modelsContext .getClassDetailsRegistry ().as ( MutableClassDetailsRegistry .class );
488
471
switch ( temporalType ) {
489
472
case DATE -> {
@@ -516,7 +499,7 @@ private static TypeDetails determineAttributeJavaTypeDetails(
516
499
XmlDocumentContext xmlDocumentContext ) {
517
500
final String target = jaxbEmbeddedMapping .getTarget ();
518
501
if ( isNotEmpty ( target ) ) {
519
- final SourceModelBuildingContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
502
+ final ModelsContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
520
503
final ClassDetails memberTypeClassDetails = ModelsHelper .resolveClassDetails (
521
504
target ,
522
505
modelsContext .getClassDetailsRegistry (),
@@ -539,7 +522,7 @@ private static TypeDetails determineAttributeJavaTypeDetails(
539
522
XmlDocumentContext xmlDocumentContext ) {
540
523
final String target = jaxbAssociationAttribute .getTargetEntity ();
541
524
if ( isNotEmpty ( target ) ) {
542
- final SourceModelBuildingContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
525
+ final ModelsContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
543
526
final ClassDetails classDetails = ModelsHelper .resolveClassDetails (
544
527
target ,
545
528
modelsContext .getClassDetailsRegistry (),
@@ -568,7 +551,7 @@ private static TypeDetails determineAttributeJavaTypeDetails(
568
551
XmlDocumentContext xmlDocumentContext ) {
569
552
// Logically this is Object, which is what we return here for now.
570
553
// todo : might be nice to allow specifying a "common interface"
571
- final SourceModelBuildingContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
554
+ final ModelsContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
572
555
final ClassDetails objectClassDetails = modelsContext .getClassDetailsRegistry ().resolveClassDetails ( Object .class .getName () );
573
556
return new ClassTypeDetailsImpl ( objectClassDetails , TypeDetails .Kind .CLASS );
574
557
}
0 commit comments