2525import org .hibernate .boot .models .internal .ModelsHelper ;
2626import org .hibernate .boot .models .xml .spi .XmlDocumentContext ;
2727import org .hibernate .boot .spi .BootstrapContext ;
28- import org .hibernate .internal .util .StringHelper ;
2928import org .hibernate .internal .util .collections .CollectionHelper ;
3029import org .hibernate .models .internal .ClassTypeDetailsImpl ;
3130import org .hibernate .models .internal .MutableClassDetailsRegistry ;
3231import org .hibernate .models .internal .dynamic .DynamicClassDetails ;
3332import org .hibernate .models .internal .dynamic .DynamicFieldDetails ;
34- import org .hibernate .models .internal .jdk .JdkBuilders ;
3533import org .hibernate .models .internal .jdk .JdkClassDetails ;
3634import org .hibernate .models .spi .ClassDetails ;
3735import org .hibernate .models .spi .ClassDetailsRegistry ;
3836import org .hibernate .models .spi .MutableClassDetails ;
39- import org .hibernate .models .spi .SourceModelBuildingContext ;
37+ import org .hibernate .models .spi .ModelsContext ;
4038import org .hibernate .models .spi .TypeDetails ;
4139import org .hibernate .type .descriptor .java .JavaType ;
4240import org .hibernate .type .descriptor .jdbc .JdbcType ;
4846import java .util .Set ;
4947
5048import static org .hibernate .internal .util .NullnessHelper .nullif ;
51- import static org .hibernate .internal .util .StringHelper .isEmpty ;
5249import static org .hibernate .internal .util .StringHelper .isNotEmpty ;
5350import static org .hibernate .models .internal .ModifierUtils .DYNAMIC_ATTRIBUTE_MODIFIERS ;
5451
@@ -395,11 +392,11 @@ private static ClassDetails determineAttributeJavaType(
395392 final String target = jaxbBasicMapping .getTarget ();
396393 if ( isNotEmpty ( target ) ) {
397394 final SimpleTypeInterpretation simpleTypeInterpretation = SimpleTypeInterpretation .interpret ( target );
398- return resolveBasicMappingTarget ( target , xmlDocumentContext );
395+ return resolveBasicMappingTarget ( simpleTypeInterpretation , xmlDocumentContext );
399396 }
400397
401398 final BootstrapContext bootstrapContext = xmlDocumentContext .getBootstrapContext ();
402- final SourceModelBuildingContext modelsContext = bootstrapContext .getModelsContext ();
399+ final ModelsContext modelsContext = bootstrapContext .getModelsContext ();
403400
404401 // UserType
405402 final JaxbUserTypeImpl userTypeNode = jaxbBasicMapping .getType ();
@@ -460,30 +457,16 @@ else if ( jdbcTypeCode != null ) {
460457 * primitive and wrapper ({@code boolean} and {@code Boolean} e.g.) is important while in
461458 * SimpleTypeInterpretation we only care about the wrapper.
462459 */
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 ();
465462 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 () );
481464 }
482465
483466 private static MutableClassDetails resolveTemporalJavaType (
484467 TemporalType temporalType ,
485468 XmlDocumentContext xmlDocumentContext ) {
486- final SourceModelBuildingContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
469+ final ModelsContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
487470 final MutableClassDetailsRegistry classDetailsRegistry = modelsContext .getClassDetailsRegistry ().as ( MutableClassDetailsRegistry .class );
488471 switch ( temporalType ) {
489472 case DATE -> {
@@ -516,7 +499,7 @@ private static TypeDetails determineAttributeJavaTypeDetails(
516499 XmlDocumentContext xmlDocumentContext ) {
517500 final String target = jaxbEmbeddedMapping .getTarget ();
518501 if ( isNotEmpty ( target ) ) {
519- final SourceModelBuildingContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
502+ final ModelsContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
520503 final ClassDetails memberTypeClassDetails = ModelsHelper .resolveClassDetails (
521504 target ,
522505 modelsContext .getClassDetailsRegistry (),
@@ -539,7 +522,7 @@ private static TypeDetails determineAttributeJavaTypeDetails(
539522 XmlDocumentContext xmlDocumentContext ) {
540523 final String target = jaxbAssociationAttribute .getTargetEntity ();
541524 if ( isNotEmpty ( target ) ) {
542- final SourceModelBuildingContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
525+ final ModelsContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
543526 final ClassDetails classDetails = ModelsHelper .resolveClassDetails (
544527 target ,
545528 modelsContext .getClassDetailsRegistry (),
@@ -568,7 +551,7 @@ private static TypeDetails determineAttributeJavaTypeDetails(
568551 XmlDocumentContext xmlDocumentContext ) {
569552 // Logically this is Object, which is what we return here for now.
570553 // todo : might be nice to allow specifying a "common interface"
571- final SourceModelBuildingContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
554+ final ModelsContext modelsContext = xmlDocumentContext .getBootstrapContext ().getModelsContext ();
572555 final ClassDetails objectClassDetails = modelsContext .getClassDetailsRegistry ().resolveClassDetails ( Object .class .getName () );
573556 return new ClassTypeDetailsImpl ( objectClassDetails , TypeDetails .Kind .CLASS );
574557 }
0 commit comments