|
16 | 16 | import java.util.List;
|
17 | 17 | import java.util.Map;
|
18 | 18 | import java.util.Objects;
|
19 |
| -import java.util.Optional; |
20 | 19 | import java.util.Set;
|
21 | 20 | import java.util.stream.Collectors;
|
22 | 21 |
|
|
35 | 34 | import org.hibernate.validator.internal.metadata.raw.ConstrainedElement.ConstrainedElementKind;
|
36 | 35 | import org.hibernate.validator.internal.metadata.raw.ConstrainedExecutable;
|
37 | 36 | import org.hibernate.validator.internal.metadata.raw.ConstrainedField;
|
38 |
| -import org.hibernate.validator.internal.properties.Constrainable; |
| 37 | +import org.hibernate.validator.internal.properties.Getter; |
39 | 38 | import org.hibernate.validator.internal.properties.Property;
|
40 | 39 | import org.hibernate.validator.internal.properties.javabean.JavaBeanGetter;
|
41 | 40 | import org.hibernate.validator.internal.util.CollectionHelper;
|
@@ -192,41 +191,39 @@ public final void add(ConstrainedElement constrainedElement) {
|
192 | 191 | if ( constrainedElement.getCascadingMetaDataBuilder().isMarkedForCascadingOnAnnotatedObjectOrContainerElements() ||
|
193 | 192 | constrainedElement.getCascadingMetaDataBuilder().hasGroupConversionsOnAnnotatedObjectOrContainerElements() ) {
|
194 | 193 |
|
195 |
| - Optional<Constrainable> constrainable = getConstrainableFromConstrainedElement( constrainedElement ); |
| 194 | + Property property = getConstrainableFromConstrainedElement( constrainedElement ); |
196 | 195 |
|
197 |
| - if ( constrainable.isPresent() ) { |
198 |
| - Property property = constrainable.get().as( Property.class ); |
199 |
| - Cascadable.Builder builder = cascadableBuilders.get( property ); |
200 |
| - if ( builder == null ) { |
201 |
| - builder = AbstractPropertyCascadable.AbstractBuilder.builder( valueExtractorManager, property, |
202 |
| - constrainedElement.getCascadingMetaDataBuilder() ); |
203 |
| - cascadableBuilders.put( property, builder ); |
204 |
| - } |
205 |
| - else { |
206 |
| - builder.mergeCascadingMetaData( constrainedElement.getCascadingMetaDataBuilder() ); |
207 |
| - } |
208 |
| - } |
209 |
| - } |
210 |
| - } |
211 |
| - |
212 |
| - private Optional<Constrainable> getConstrainableFromConstrainedElement(ConstrainedElement constrainedElement) { |
213 |
| - if ( constrainedElement.getKind() == ConstrainedElementKind.FIELD ) { |
214 |
| - if ( constrainedElement instanceof ConstrainedField ) { |
215 |
| - return Optional.of( ( (ConstrainedField) constrainedElement ).getField() ); |
| 196 | + Cascadable.Builder builder = cascadableBuilders.get( property ); |
| 197 | + if ( builder == null ) { |
| 198 | + builder = AbstractPropertyCascadable.AbstractBuilder.builder( valueExtractorManager, property, |
| 199 | + constrainedElement.getCascadingMetaDataBuilder() ); |
| 200 | + cascadableBuilders.put( property, builder ); |
216 | 201 | }
|
217 | 202 | else {
|
218 |
| - LOG.getUnexpectedConstraintElementType( ConstrainedField.class, constrainedElement.getClass() ); |
| 203 | + builder.mergeCascadingMetaData( constrainedElement.getCascadingMetaDataBuilder() ); |
219 | 204 | }
|
220 | 205 | }
|
221 |
| - else if ( constrainedElement.getKind() == ConstrainedElementKind.GETTER ) { |
222 |
| - if ( constrainedElement instanceof ConstrainedExecutable ) { |
223 |
| - return Optional.of( ( (ConstrainedExecutable) constrainedElement ).getCallable() ); |
224 |
| - } |
225 |
| - else { |
226 |
| - LOG.getUnexpectedConstraintElementType( ConstrainedExecutable.class, constrainedElement.getClass() ); |
227 |
| - } |
| 206 | + } |
| 207 | + |
| 208 | + private Property getConstrainableFromConstrainedElement(ConstrainedElement constrainedElement) { |
| 209 | + switch ( constrainedElement.getKind() ) { |
| 210 | + case FIELD: |
| 211 | + if ( constrainedElement instanceof ConstrainedField ) { |
| 212 | + return ( (ConstrainedField) constrainedElement ).getField(); |
| 213 | + } |
| 214 | + else { |
| 215 | + throw LOG.getUnexpectedConstraintElementType( ConstrainedField.class, constrainedElement.getClass() ); |
| 216 | + } |
| 217 | + case GETTER: |
| 218 | + if ( constrainedElement instanceof ConstrainedExecutable ) { |
| 219 | + return ( (ConstrainedExecutable) constrainedElement ).getCallable().as( Getter.class ); |
| 220 | + } |
| 221 | + else { |
| 222 | + throw LOG.getUnexpectedConstraintElementType( ConstrainedExecutable.class, constrainedElement.getClass() ); |
| 223 | + } |
| 224 | + default: |
| 225 | + throw LOG.getUnsupportedConstraintElementType( constrainedElement.getKind() ); |
228 | 226 | }
|
229 |
| - return Optional.empty(); |
230 | 227 | }
|
231 | 228 |
|
232 | 229 | @Override
|
|
0 commit comments