Skip to content

Commit 7757ab4

Browse files
marko-bekhtagsmet
authored andcommitted
HV-1363 Clean up property metadata
- changed Constrainable to Property to better represent the intended objects to be processed by the builder - removed unused parameters, fields and methods
1 parent 6187951 commit 7757ab4

File tree

1 file changed

+7
-42
lines changed

1 file changed

+7
-42
lines changed

engine/src/main/java/org/hibernate/validator/internal/metadata/aggregated/PropertyMetaData.java

Lines changed: 7 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@
66
*/
77
package org.hibernate.validator.internal.metadata.aggregated;
88

9-
import java.lang.reflect.Method;
109
import java.lang.reflect.Type;
11-
import java.security.AccessController;
12-
import java.security.PrivilegedAction;
1310
import java.util.ArrayDeque;
1411
import java.util.Collections;
1512
import java.util.Deque;
@@ -23,7 +20,6 @@
2320

2421
import javax.validation.ElementKind;
2522

26-
import org.hibernate.validator.HibernateValidatorPermission;
2723
import org.hibernate.validator.internal.engine.valueextraction.ValueExtractorManager;
2824
import org.hibernate.validator.internal.metadata.core.ConstraintHelper;
2925
import org.hibernate.validator.internal.metadata.core.MetaConstraint;
@@ -38,12 +34,9 @@
3834
import org.hibernate.validator.internal.metadata.raw.ConstrainedExecutable;
3935
import org.hibernate.validator.internal.metadata.raw.ConstrainedProperty;
4036
import org.hibernate.validator.internal.metadata.raw.ConstrainedType;
41-
import org.hibernate.validator.internal.properties.Callable;
42-
import org.hibernate.validator.internal.properties.Constrainable;
4337
import org.hibernate.validator.internal.properties.Property;
4438
import org.hibernate.validator.internal.util.CollectionHelper;
4539
import org.hibernate.validator.internal.util.TypeResolutionHelper;
46-
import org.hibernate.validator.internal.util.privilegedactions.GetDeclaredMethod;
4740
import org.hibernate.validator.internal.util.stereotypes.Immutable;
4841

4942
/**
@@ -71,8 +64,7 @@ private PropertyMetaData(String propertyName,
7164
Type type,
7265
Set<MetaConstraint<?>> constraints,
7366
Set<MetaConstraint<?>> containerElementsConstraints,
74-
Set<Cascadable> cascadables,
75-
boolean cascadingProperty) {
67+
Set<Cascadable> cascadables) {
7668
super(
7769
propertyName,
7870
type,
@@ -157,9 +149,8 @@ public static class Builder extends MetaDataBuilder {
157149
);
158150

159151
private final String propertyName;
160-
private final Map<Constrainable, Cascadable.Builder> cascadableBuilders = new HashMap<>();
152+
private final Map<Property, Cascadable.Builder> cascadableBuilders = new HashMap<>();
161153
private final Type propertyType;
162-
private boolean cascadingProperty = false;
163154

164155
public Builder(Class<?> beanClass, ConstrainedProperty constrainedProperty, ConstraintHelper constraintHelper, TypeResolutionHelper typeResolutionHelper,
165156
ValueExtractorManager valueExtractorManager) {
@@ -206,8 +197,6 @@ public boolean accepts(ConstrainedElement constrainedElement) {
206197
public final void add(ConstrainedElement constrainedElement) {
207198
super.add( constrainedElement );
208199

209-
cascadingProperty = cascadingProperty || constrainedElement.getCascadingMetaDataBuilder().isCascading();
210-
211200
if ( constrainedElement.getCascadingMetaDataBuilder().isMarkedForCascadingOnAnnotatedObjectOrContainerElements() ||
212201
constrainedElement.getCascadingMetaDataBuilder().hasGroupConversionsOnAnnotatedObjectOrContainerElements() ) {
213202
if ( constrainedElement.getKind() == ConstrainedElementKind.PROPERTY ) {
@@ -223,12 +212,12 @@ public final void add(ConstrainedElement constrainedElement) {
223212
}
224213
}
225214
else if ( constrainedElement.getKind() == ConstrainedElementKind.METHOD ) {
226-
Callable method = ( (ConstrainedExecutable) constrainedElement ).getCallable();
227-
Cascadable.Builder builder = cascadableBuilders.get( method );
215+
Property property = ( (ConstrainedExecutable) constrainedElement ).getCallable().as( Property.class );
216+
Cascadable.Builder builder = cascadableBuilders.get( property );
228217

229218
if ( builder == null ) {
230-
builder = new PropertyCascadable.Builder( valueExtractorManager, method.as( Property.class ), constrainedElement.getCascadingMetaDataBuilder() );
231-
cascadableBuilders.put( method, builder );
219+
builder = new PropertyCascadable.Builder( valueExtractorManager, property, constrainedElement.getCascadingMetaDataBuilder() );
220+
cascadableBuilders.put( property, builder );
232221
}
233222
else {
234223
builder.mergeCascadingMetaData( constrainedElement.getCascadingMetaDataBuilder() );
@@ -315,29 +304,6 @@ else if ( constrainedElement.getKind() == ConstrainedElementKind.METHOD ) {
315304
return null;
316305
}
317306

318-
/**
319-
* Returns an accessible version of the given member. Will be the given member itself in case it is accessible,
320-
* otherwise a copy which is set accessible.
321-
*/
322-
private Method getAccessible(Method original) {
323-
if ( original.isAccessible() ) {
324-
return original;
325-
}
326-
327-
SecurityManager sm = System.getSecurityManager();
328-
if ( sm != null ) {
329-
sm.checkPermission( HibernateValidatorPermission.ACCESS_PRIVATE_MEMBERS );
330-
}
331-
332-
Class<?> clazz = original.getDeclaringClass();
333-
334-
return run( GetDeclaredMethod.andMakeAccessible( clazz, original.getName() ) );
335-
}
336-
337-
private <T> T run(PrivilegedAction<T> action) {
338-
return System.getSecurityManager() != null ? AccessController.doPrivileged( action ) : action.run();
339-
}
340-
341307
@Override
342308
public PropertyMetaData build() {
343309
Set<Cascadable> cascadables = cascadableBuilders.values()
@@ -350,8 +316,7 @@ public PropertyMetaData build() {
350316
propertyType,
351317
adaptOriginsAndImplicitGroups( getDirectConstraints() ),
352318
adaptOriginsAndImplicitGroups( getContainerElementConstraints() ),
353-
cascadables,
354-
cascadingProperty
319+
cascadables
355320
);
356321
}
357322
}

0 commit comments

Comments
 (0)