Skip to content

Commit cf729a0

Browse files
mbelladesebersole
authored andcommitted
#68 - Remove lambda configuration argument from AnnotationDescriptor#createUsage and DynamicClassDetails#applyAttribute
1 parent 7545f02 commit cf729a0

File tree

6 files changed

+18
-71
lines changed

6 files changed

+18
-71
lines changed

src/main/java/org/hibernate/models/internal/dynamic/DynamicClassDetails.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import java.util.ArrayList;
1010
import java.util.Collections;
1111
import java.util.List;
12-
import java.util.function.Consumer;
1312

1413
import org.hibernate.models.internal.ClassDetailsSupport;
1514
import org.hibernate.models.internal.ClassTypeDetailsImpl;
@@ -177,14 +176,12 @@ public DynamicFieldDetails applyAttribute(
177176
ClassDetails type,
178177
boolean isArray,
179178
boolean isPlural,
180-
Consumer<DynamicFieldDetails> configuration,
181179
SourceModelBuildingContext context) {
182180
return applyAttribute(
183181
name,
184182
new ClassTypeDetailsImpl( type, TypeDetails.Kind.CLASS ),
185183
isArray,
186184
isPlural,
187-
configuration,
188185
context
189186
);
190187
}
@@ -197,7 +194,6 @@ public DynamicFieldDetails applyAttribute(
197194
TypeDetails type,
198195
boolean isArray,
199196
boolean isPlural,
200-
Consumer<DynamicFieldDetails> configuration,
201197
SourceModelBuildingContext context) {
202198
final DynamicFieldDetails attribute = new DynamicFieldDetails(
203199
name,
@@ -208,9 +204,6 @@ public DynamicFieldDetails applyAttribute(
208204
isPlural,
209205
context
210206
);
211-
if ( configuration != null ) {
212-
configuration.accept( attribute );
213-
}
214207
addField( attribute );
215208
return attribute;
216209
}

src/main/java/org/hibernate/models/spi/AnnotationDescriptor.java

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import java.lang.annotation.Repeatable;
1111
import java.util.EnumSet;
1212
import java.util.List;
13-
import java.util.function.Consumer;
1413

1514
import org.hibernate.models.IllegalCastException;
1615
import org.hibernate.models.UnknownAnnotationAttributeException;
@@ -96,27 +95,7 @@ default <V> AttributeDescriptor<V> getAttribute(String name) {
9695
* @param context Access to needed services
9796
*/
9897
default MutableAnnotationUsage<A> createUsage(SourceModelBuildingContext context) {
99-
return createUsage( null, context );
100-
}
101-
102-
/**
103-
* Create a usage of this annotation with all attribute values defaulted, allowing customization prior to return.
104-
*
105-
* @param adjuster Callback to allow adjusting the created usage prior to return.
106-
* @param context Access to needed services
107-
*/
108-
default MutableAnnotationUsage<A> createUsage(
109-
Consumer<MutableAnnotationUsage<A>> adjuster,
110-
SourceModelBuildingContext context) {
111-
// create the "empty" usage
112-
final DynamicAnnotationUsage<A> usage = new DynamicAnnotationUsage<>( this, context );
113-
114-
// allow configuration
115-
if ( adjuster != null ) {
116-
adjuster.accept( usage );
117-
}
118-
119-
return usage;
98+
return new DynamicAnnotationUsage<>( this, context );
12099
}
121100

122101
@Override

src/main/java/org/hibernate/models/spi/MutableAnnotationTarget.java

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
package org.hibernate.models.spi;
88

99
import java.lang.annotation.Annotation;
10-
import java.util.function.Consumer;
1110

1211
/**
1312
* Extension of AnnotationTarget which allows manipulation of the annotations
@@ -33,27 +32,12 @@ public interface MutableAnnotationTarget extends AnnotationTarget {
3332
default <A extends Annotation> MutableAnnotationUsage<A> applyAnnotationUsage(
3433
AnnotationDescriptor<A> annotationType,
3534
SourceModelBuildingContext buildingContext) {
36-
return applyAnnotationUsage( annotationType, null, buildingContext );
37-
}
38-
39-
/**
40-
* Applies a usage of the given {@code annotationType} to this target, allowing
41-
* for configuration of the applied usage. Will return an existing usage, if one,
42-
* or create a new usage.
43-
*/
44-
default <A extends Annotation> MutableAnnotationUsage<A> applyAnnotationUsage(
45-
AnnotationDescriptor<A> annotationType,
46-
Consumer<MutableAnnotationUsage<A>> configuration,
47-
SourceModelBuildingContext buildingContext) {
4835
final MutableAnnotationUsage<A> existing = (MutableAnnotationUsage<A>) getAnnotationUsage( annotationType );
4936
if ( existing != null ) {
50-
if ( configuration != null ) {
51-
configuration.accept( existing );
52-
}
5337
return existing;
5438
}
5539

56-
final MutableAnnotationUsage<A> usage = annotationType.createUsage( configuration, buildingContext );
40+
final MutableAnnotationUsage<A> usage = annotationType.createUsage( buildingContext );
5741
addAnnotationUsage( usage );
5842
return usage;
5943
}

src/test/java/org/hibernate/models/annotations/AnnotationUsageTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ private void compositionChecks(Index index) {
158158
@Test
159159
void testDynamicAttributeCreation() {
160160
final SourceModelBuildingContextImpl buildingContext = createBuildingContext( (Index) null, SimpleEntity.class );
161-
final AnnotationUsage<Column> usage = JpaAnnotations.COLUMN.createUsage( null, buildingContext );
161+
final AnnotationUsage<Column> usage = JpaAnnotations.COLUMN.createUsage( buildingContext );
162162
// check the attribute defaults
163163
assertThat( usage.getString( "name" ) ).isEqualTo( "" );
164164
assertThat( usage.getString( "table" ) ).isEqualTo( "" );

src/test/java/org/hibernate/models/annotations/DefaultValueTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ private void doTest(Index index) {
6969
assertThat( annotationUsage.getClassDetails( "someClassValue" ).toJavaClass() ).isEqualTo( Entity.class );
7070

7171
// apparently the models code does not use this method directly, but ORM does. This is the one that was leading to NPE
72-
final MutableAnnotationUsage<CustomAnnotation> created = descriptor.createUsage( null, buildingContext );
72+
final MutableAnnotationUsage<CustomAnnotation> created = descriptor.createUsage( buildingContext );
7373
assertThat( created.getClassDetails( "someClassValue" ) ).isNull();
7474
}
7575

src/test/java/org/hibernate/models/dynamic/SimpleDynamicModelTests.java

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -60,31 +60,28 @@ void testSimpleBasics() {
6060
);
6161
assertThat( created ).isSameAs( preExisting );
6262

63-
entityDetails.applyAttribute(
63+
final DynamicFieldDetails idMember = entityDetails.applyAttribute(
6464
"id",
6565
integerTypeDetails,
6666
false,
6767
false,
68-
fieldDetails -> {
69-
final MutableAnnotationUsage<Id> first = fieldDetails.applyAnnotationUsage(
70-
JpaAnnotations.ID,
71-
buildingContext
72-
);
73-
final MutableAnnotationUsage<Id> second = fieldDetails.applyAnnotationUsage(
74-
JpaAnnotations.ID,
75-
buildingContext
76-
);
77-
assertThat( first ).isSameAs( second );
78-
},
7968
buildingContext
8069
);
70+
final MutableAnnotationUsage<Id> first = idMember.applyAnnotationUsage(
71+
JpaAnnotations.ID,
72+
buildingContext
73+
);
74+
final MutableAnnotationUsage<Id> second = idMember.applyAnnotationUsage(
75+
JpaAnnotations.ID,
76+
buildingContext
77+
);
78+
assertThat( first ).isSameAs( second );
8179

8280
entityDetails.applyAttribute(
8381
"name",
8482
stringTypeDetails,
8583
false,
8684
false,
87-
null,
8885
buildingContext
8986
);
9087

@@ -137,7 +134,6 @@ void testSimpleEmbedded() {
137134
stringClassDetails,
138135
false,
139136
false,
140-
null,
141137
buildingContext
142138
);
143139

@@ -146,7 +142,6 @@ void testSimpleEmbedded() {
146142
stringClassDetails,
147143
false,
148144
false,
149-
null,
150145
buildingContext
151146
);
152147

@@ -169,24 +164,20 @@ void testSimpleEmbedded() {
169164
integerTypeDetails,
170165
false,
171166
false,
172-
(fieldDetails) -> {
173-
final MutableAnnotationUsage<Id> idUsage = fieldDetails.applyAnnotationUsage( JpaAnnotations.ID, buildingContext );
174-
assertThat( idUsage ).isNotNull();
175-
},
176167
buildingContext
177168
);
169+
final MutableAnnotationUsage<Id> idUsage = idMember.applyAnnotationUsage( JpaAnnotations.ID, buildingContext );
170+
assertThat( idUsage ).isNotNull();
178171

179172
final DynamicFieldDetails nameMember = entityDetails.applyAttribute(
180173
"name",
181174
new ClassTypeDetailsImpl( nameEmbeddableDetails, TypeDetails.Kind.CLASS ),
182175
false,
183176
false,
184-
(fieldDetails) -> {
185-
final MutableAnnotationUsage<Embedded> embeddedUsage = fieldDetails.applyAnnotationUsage( JpaAnnotations.EMBEDDED, buildingContext );
186-
assertThat( embeddedUsage ).isNotNull();
187-
},
188177
buildingContext
189178
);
179+
final MutableAnnotationUsage<Embedded> embeddedUsage = nameMember.applyAnnotationUsage( JpaAnnotations.EMBEDDED, buildingContext );
180+
assertThat( embeddedUsage ).isNotNull();
190181

191182

192183
// ASSERTIONS

0 commit comments

Comments
 (0)