19
19
import org .hibernate .boot .jaxb .mapping .spi .JaxbAnyMappingImpl ;
20
20
import org .hibernate .boot .jaxb .mapping .spi .JaxbAnyMappingKeyImpl ;
21
21
import org .hibernate .boot .jaxb .mapping .spi .JaxbColumnImpl ;
22
+ import org .hibernate .boot .models .HibernateAnnotations ;
23
+ import org .hibernate .boot .models .JpaAnnotations ;
22
24
import org .hibernate .boot .models .xml .internal .XmlAnnotationHelper ;
23
25
import org .hibernate .boot .models .xml .internal .XmlProcessingHelper ;
24
26
import org .hibernate .boot .models .xml .internal .db .ColumnProcessing ;
@@ -56,7 +58,10 @@ public static MutableMemberDetails processAnyMappingAttribute(
56
58
declarer
57
59
);
58
60
59
- final MutableAnnotationUsage <Any > anyAnn = XmlProcessingHelper .makeAnnotation ( Any .class , memberDetails , xmlDocumentContext );
61
+ final MutableAnnotationUsage <Any > anyAnn = memberDetails .applyAnnotationUsage (
62
+ HibernateAnnotations .ANY ,
63
+ xmlDocumentContext .getModelBuildingContext ()
64
+ );
60
65
61
66
CommonAttributeProcessing .applyAttributeBasics ( jaxbHbmAnyMapping , memberDetails , anyAnn , accessType , xmlDocumentContext );
62
67
@@ -73,7 +78,10 @@ private static void applyDiscriminator(
73
78
MutableAnnotationUsage <Any > anyAnn ,
74
79
XmlDocumentContext xmlDocumentContext ) {
75
80
final JaxbAnyMappingDiscriminatorImpl jaxbDiscriminator = jaxbHbmAnyMapping .getDiscriminator ();
76
- final MutableAnnotationUsage <AnyDiscriminator > anyDiscriminatorAnn = XmlProcessingHelper .makeAnnotation ( AnyDiscriminator .class , memberDetails , xmlDocumentContext );
81
+ final MutableAnnotationUsage <AnyDiscriminator > anyDiscriminatorAnn = memberDetails .applyAnnotationUsage (
82
+ HibernateAnnotations .ANY_DISCRIMINATOR ,
83
+ xmlDocumentContext .getModelBuildingContext ()
84
+ );
77
85
78
86
if ( jaxbDiscriminator == null ) {
79
87
return ;
@@ -83,29 +91,39 @@ private static void applyDiscriminator(
83
91
XmlProcessingHelper .applyAttributeIfSpecified ( "value" , discriminatorType , anyDiscriminatorAnn );
84
92
85
93
final JaxbColumnImpl jaxbColumn = jaxbDiscriminator .getColumn ();
86
- final MutableAnnotationUsage <Column > columnAnn = XmlProcessingHelper .makeAnnotation ( Column .class , memberDetails , xmlDocumentContext );
94
+ final MutableAnnotationUsage <Column > columnAnn = memberDetails .applyAnnotationUsage (
95
+ JpaAnnotations .COLUMN ,
96
+ xmlDocumentContext .getModelBuildingContext ()
97
+ );
87
98
if ( jaxbColumn != null ) {
88
99
ColumnProcessing .applyColumnDetails ( jaxbColumn , memberDetails , columnAnn , xmlDocumentContext );
89
100
}
90
101
102
+ final ClassDetailsRegistry classDetailsRegistry = xmlDocumentContext .getModelBuildingContext ().getClassDetailsRegistry ();
91
103
final List <JaxbAnyDiscriminatorValueMappingImpl > valueMappings = jaxbDiscriminator .getValueMappings ();
92
104
if ( CollectionHelper .isNotEmpty ( valueMappings ) ) {
93
- final MutableAnnotationUsage <AnyDiscriminatorValues > valuesAnn = XmlProcessingHelper .makeAnnotation ( AnyDiscriminatorValues .class , memberDetails , xmlDocumentContext );
105
+ final MutableAnnotationUsage <AnyDiscriminatorValues > discriminatorValuesUsage = memberDetails .applyAnnotationUsage (
106
+ HibernateAnnotations .ANY_DISCRIMINATOR_VALUES ,
107
+ xmlDocumentContext .getModelBuildingContext ()
108
+ );
94
109
final List <MutableAnnotationUsage <AnyDiscriminatorValue >> valueList = CollectionHelper .arrayList ( valueMappings .size () );
95
- final ClassDetailsRegistry classDetailsRegistry = xmlDocumentContext . getModelBuildingContext (). getClassDetailsRegistry ( );
96
- valuesAnn . setAttributeValue ( "value" , valueList );
110
+ discriminatorValuesUsage . setAttributeValue ( "value" , valueList );
111
+
97
112
valueMappings .forEach ( (valueMapping ) -> {
98
- final MutableAnnotationUsage <AnyDiscriminatorValue > valueAnn = XmlProcessingHelper .makeNestedAnnotation ( AnyDiscriminatorValue .class , memberDetails , xmlDocumentContext );
99
- valueList .add ( valueAnn );
113
+ final MutableAnnotationUsage <AnyDiscriminatorValue > discriminatorValueUsage = HibernateAnnotations .ANY_DISCRIMINATOR_VALUE .createUsage (
114
+ null ,
115
+ xmlDocumentContext .getModelBuildingContext ()
116
+ );
117
+ valueList .add ( discriminatorValueUsage );
100
118
101
- valueAnn .setAttributeValue ( "discriminator" , valueMapping .getDiscriminatorValue () );
119
+ discriminatorValueUsage .setAttributeValue ( "discriminator" , valueMapping .getDiscriminatorValue () );
102
120
103
121
final String name = StringHelper .qualifyConditionally (
104
122
xmlDocumentContext .getXmlDocument ().getDefaults ().getPackage (),
105
123
valueMapping .getCorrespondingEntityName ()
106
124
);
107
125
final ClassDetails entityClassDetails = classDetailsRegistry .resolveClassDetails ( name );
108
- valueAnn .setAttributeValue ( "entity" , entityClassDetails );
126
+ discriminatorValueUsage .setAttributeValue ( "entity" , entityClassDetails );
109
127
} );
110
128
}
111
129
}
@@ -117,22 +135,31 @@ private static void applyKey(
117
135
XmlDocumentContext xmlDocumentContext ) {
118
136
final JaxbAnyMappingKeyImpl jaxbKey = jaxbHbmAnyMapping .getKey ();
119
137
if ( StringHelper .isNotEmpty ( jaxbKey .getType () ) ) {
120
- final MutableAnnotationUsage <AnyKeyType > keyTypeAnn = XmlProcessingHelper .makeAnnotation ( AnyKeyType .class , memberDetails , xmlDocumentContext );
121
- keyTypeAnn .setAttributeValue ( "value" , jaxbKey .getType () );
138
+ final MutableAnnotationUsage <AnyKeyType > keyTypeUsage = memberDetails .applyAnnotationUsage (
139
+ HibernateAnnotations .ANY_KEY_TYPE ,
140
+ xmlDocumentContext .getModelBuildingContext ()
141
+ );
142
+ keyTypeUsage .setAttributeValue ( "value" , jaxbKey .getType () );
122
143
}
123
144
124
145
if ( jaxbKey .getColumns ().isEmpty () ) {
125
- XmlProcessingHelper . makeAnnotation ( JoinColumn . class , memberDetails , xmlDocumentContext );
146
+ memberDetails . applyAnnotationUsage ( JpaAnnotations . JOIN_COLUMN , xmlDocumentContext . getModelBuildingContext () );
126
147
}
127
148
else {
128
- final MutableAnnotationUsage <JoinColumns > columnsAnn = XmlProcessingHelper .makeAnnotation ( JoinColumns .class , memberDetails , xmlDocumentContext );
149
+ final MutableAnnotationUsage <JoinColumns > joinColumnsUsage = memberDetails .applyAnnotationUsage (
150
+ JpaAnnotations .JOIN_COLUMNS ,
151
+ xmlDocumentContext .getModelBuildingContext ()
152
+ );
129
153
final ArrayList <MutableAnnotationUsage <JoinColumn >> columnAnnList = CollectionHelper .arrayList ( jaxbKey .getColumns ().size () );
130
- columnsAnn .setAttributeValue ( "value" , columnAnnList );
154
+ joinColumnsUsage .setAttributeValue ( "value" , columnAnnList );
131
155
jaxbKey .getColumns ().forEach ( (jaxbColumn ) -> {
132
- final MutableAnnotationUsage <JoinColumn > columnAnn = XmlProcessingHelper .makeNestedAnnotation ( JoinColumn .class , memberDetails , xmlDocumentContext );
133
- columnAnnList .add ( columnAnn );
156
+ final MutableAnnotationUsage <JoinColumn > joinColumnUsage = JpaAnnotations .JOIN_COLUMN .createUsage (
157
+ null ,
158
+ xmlDocumentContext .getModelBuildingContext ()
159
+ );
160
+ columnAnnList .add ( joinColumnUsage );
134
161
135
- ColumnProcessing .applyColumnDetails ( jaxbColumn , memberDetails , columnAnn , xmlDocumentContext );
162
+ ColumnProcessing .applyColumnDetails ( jaxbColumn , memberDetails , joinColumnUsage , xmlDocumentContext );
136
163
} );
137
164
}
138
165
}
0 commit comments