|
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