Skip to content

Commit 93c7dd7

Browse files
committed
HV-1812 Avoid reflection-based metadata extraction for built-in value extractors
1 parent d2db40b commit 93c7dd7

27 files changed

+102
-27
lines changed

engine/src/main/java/org/hibernate/validator/internal/engine/valueextraction/BooleanArrayValueExtractor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
*/
77
package org.hibernate.validator.internal.engine.valueextraction;
88

9+
import java.util.Optional;
10+
911
import javax.validation.valueextraction.ExtractedValue;
1012
import javax.validation.valueextraction.ValueExtractor;
1113

1214
import org.hibernate.validator.internal.engine.path.NodeImpl;
1315

1416
class BooleanArrayValueExtractor implements ValueExtractor<boolean @ExtractedValue[]> {
1517

16-
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new BooleanArrayValueExtractor() );
18+
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new BooleanArrayValueExtractor(), boolean[].class,
19+
new ArrayElement( boolean[].class ), false, Optional.empty() );
1720

1821
private BooleanArrayValueExtractor() {
1922
}

engine/src/main/java/org/hibernate/validator/internal/engine/valueextraction/ByteArrayValueExtractor.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
*/
77
package org.hibernate.validator.internal.engine.valueextraction;
88

9+
import java.util.Optional;
10+
911
import javax.validation.valueextraction.ExtractedValue;
1012
import javax.validation.valueextraction.ValueExtractor;
1113

1214
import org.hibernate.validator.internal.engine.path.NodeImpl;
1315

14-
class ByteArrayValueExtractor implements ValueExtractor<byte @ExtractedValue[]> {
16+
class ByteArrayValueExtractor implements ValueExtractor<byte @ExtractedValue []> {
1517

16-
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new ByteArrayValueExtractor() );
18+
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new ByteArrayValueExtractor(), byte[].class,
19+
new ArrayElement( byte[].class ), false, Optional.empty() );
1720

1821
private ByteArrayValueExtractor() {
1922
}

engine/src/main/java/org/hibernate/validator/internal/engine/valueextraction/CharArrayValueExtractor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
*/
77
package org.hibernate.validator.internal.engine.valueextraction;
88

9+
import java.util.Optional;
10+
911
import javax.validation.valueextraction.ExtractedValue;
1012
import javax.validation.valueextraction.ValueExtractor;
1113

1214
import org.hibernate.validator.internal.engine.path.NodeImpl;
1315

1416
class CharArrayValueExtractor implements ValueExtractor<char @ExtractedValue[]> {
1517

16-
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new CharArrayValueExtractor() );
18+
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new CharArrayValueExtractor(), char[].class,
19+
new ArrayElement( char[].class ), false, Optional.empty() );
1720

1821
private CharArrayValueExtractor() {
1922
}

engine/src/main/java/org/hibernate/validator/internal/engine/valueextraction/DoubleArrayValueExtractor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
*/
77
package org.hibernate.validator.internal.engine.valueextraction;
88

9+
import java.util.Optional;
10+
911
import javax.validation.valueextraction.ExtractedValue;
1012
import javax.validation.valueextraction.ValueExtractor;
1113

1214
import org.hibernate.validator.internal.engine.path.NodeImpl;
1315

1416
class DoubleArrayValueExtractor implements ValueExtractor<double @ExtractedValue[]> {
1517

16-
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new DoubleArrayValueExtractor() );
18+
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new DoubleArrayValueExtractor(), double[].class,
19+
new ArrayElement( double[].class ), false, Optional.empty() );
1720

1821
private DoubleArrayValueExtractor() {
1922
}

engine/src/main/java/org/hibernate/validator/internal/engine/valueextraction/FloatArrayValueExtractor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
*/
77
package org.hibernate.validator.internal.engine.valueextraction;
88

9+
import java.util.Optional;
10+
911
import javax.validation.valueextraction.ExtractedValue;
1012
import javax.validation.valueextraction.ValueExtractor;
1113

1214
import org.hibernate.validator.internal.engine.path.NodeImpl;
1315

1416
class FloatArrayValueExtractor implements ValueExtractor<float @ExtractedValue[]> {
1517

16-
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new FloatArrayValueExtractor() );
18+
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new FloatArrayValueExtractor(), float[].class,
19+
new ArrayElement( float[].class ), false, Optional.empty() );
1720

1821
private FloatArrayValueExtractor() {
1922
}

engine/src/main/java/org/hibernate/validator/internal/engine/valueextraction/IntArrayValueExtractor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
*/
77
package org.hibernate.validator.internal.engine.valueextraction;
88

9+
import java.util.Optional;
10+
911
import javax.validation.valueextraction.ExtractedValue;
1012
import javax.validation.valueextraction.ValueExtractor;
1113

1214
import org.hibernate.validator.internal.engine.path.NodeImpl;
1315

1416
class IntArrayValueExtractor implements ValueExtractor<int @ExtractedValue[]> {
1517

16-
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new IntArrayValueExtractor() );
18+
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new IntArrayValueExtractor(), int[].class,
19+
new ArrayElement( int[].class ), false, Optional.empty() );
1720

1821
private IntArrayValueExtractor() {
1922
}

engine/src/main/java/org/hibernate/validator/internal/engine/valueextraction/IterableValueExtractor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
*/
77
package org.hibernate.validator.internal.engine.valueextraction;
88

9+
import java.util.Optional;
10+
911
import javax.validation.valueextraction.ExtractedValue;
1012
import javax.validation.valueextraction.ValueExtractor;
1113

1214
import org.hibernate.validator.internal.engine.path.NodeImpl;
1315

1416
class IterableValueExtractor implements ValueExtractor<Iterable<@ExtractedValue ?>> {
1517

16-
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new IterableValueExtractor() );
18+
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new IterableValueExtractor(), Iterable.class,
19+
Iterable.class.getTypeParameters()[0], false, Optional.empty() );
1720

1821
private IterableValueExtractor() {
1922
}

engine/src/main/java/org/hibernate/validator/internal/engine/valueextraction/ListPropertyValueExtractor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
package org.hibernate.validator.internal.engine.valueextraction;
88

99
import java.util.List;
10+
import java.util.Optional;
1011

1112
import javax.validation.valueextraction.ExtractedValue;
1213
import javax.validation.valueextraction.ValueExtractor;
@@ -29,7 +30,8 @@
2930
@IgnoreForbiddenApisErrors(reason = "Usage of JavaFX classes")
3031
class ListPropertyValueExtractor implements ValueExtractor<ListProperty<@ExtractedValue ?>> {
3132

32-
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new ListPropertyValueExtractor() );
33+
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new ListPropertyValueExtractor(), ListProperty.class,
34+
ListProperty.class.getTypeParameters()[0], false, Optional.empty() );
3335

3436
private ListPropertyValueExtractor() {
3537
}

engine/src/main/java/org/hibernate/validator/internal/engine/valueextraction/ListValueExtractor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
package org.hibernate.validator.internal.engine.valueextraction;
88

99
import java.util.List;
10+
import java.util.Optional;
1011

1112
import javax.validation.valueextraction.ExtractedValue;
1213
import javax.validation.valueextraction.ValueExtractor;
@@ -15,7 +16,8 @@
1516

1617
class ListValueExtractor implements ValueExtractor<List<@ExtractedValue ?>> {
1718

18-
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new ListValueExtractor() );
19+
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new ListValueExtractor(), List.class, List.class.getTypeParameters()[0],
20+
false, Optional.empty() );
1921

2022
private ListValueExtractor() {
2123
}

engine/src/main/java/org/hibernate/validator/internal/engine/valueextraction/LongArrayValueExtractor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
*/
77
package org.hibernate.validator.internal.engine.valueextraction;
88

9+
import java.util.Optional;
10+
911
import javax.validation.valueextraction.ExtractedValue;
1012
import javax.validation.valueextraction.ValueExtractor;
1113

1214
import org.hibernate.validator.internal.engine.path.NodeImpl;
1315

1416
class LongArrayValueExtractor implements ValueExtractor<long @ExtractedValue[]> {
1517

16-
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new LongArrayValueExtractor() );
18+
static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new LongArrayValueExtractor(), long[].class,
19+
new ArrayElement( long[].class ), false, Optional.empty() );
1720

1821
private LongArrayValueExtractor() {
1922
}

0 commit comments

Comments
 (0)