|
6 | 6 | */
|
7 | 7 | package org.hibernate.validator.internal.metadata.aggregated;
|
8 | 8 |
|
| 9 | +import java.lang.invoke.MethodHandles; |
9 | 10 | import java.lang.reflect.Type;
|
10 | 11 | import java.util.ArrayDeque;
|
11 | 12 | import java.util.Collections;
|
|
37 | 38 | import org.hibernate.validator.internal.properties.Property;
|
38 | 39 | import org.hibernate.validator.internal.util.CollectionHelper;
|
39 | 40 | import org.hibernate.validator.internal.util.TypeResolutionHelper;
|
| 41 | +import org.hibernate.validator.internal.util.logging.Log; |
| 42 | +import org.hibernate.validator.internal.util.logging.LoggerFactory; |
40 | 43 | import org.hibernate.validator.internal.util.stereotypes.Immutable;
|
41 | 44 |
|
42 | 45 | /**
|
|
57 | 60 | */
|
58 | 61 | public class PropertyMetaData extends AbstractConstraintMetaData {
|
59 | 62 |
|
| 63 | + private static final Log LOG = LoggerFactory.make( MethodHandles.lookup() ); |
| 64 | + |
60 | 65 | @Immutable
|
61 | 66 | private final Set<Cascadable> cascadables;
|
62 | 67 |
|
@@ -200,27 +205,37 @@ public final void add(ConstrainedElement constrainedElement) {
|
200 | 205 | if ( constrainedElement.getCascadingMetaDataBuilder().isMarkedForCascadingOnAnnotatedObjectOrContainerElements() ||
|
201 | 206 | constrainedElement.getCascadingMetaDataBuilder().hasGroupConversionsOnAnnotatedObjectOrContainerElements() ) {
|
202 | 207 | if ( constrainedElement.getKind() == ConstrainedElementKind.PROPERTY ) {
|
203 |
| - Property property = ( (ConstrainedProperty) constrainedElement ).getProperty(); |
204 |
| - Cascadable.Builder builder = cascadableBuilders.get( property ); |
| 208 | + if ( constrainedElement instanceof ConstrainedProperty ) { |
| 209 | + Property property = ( (ConstrainedProperty) constrainedElement ).getProperty(); |
| 210 | + Cascadable.Builder builder = cascadableBuilders.get( property ); |
205 | 211 |
|
206 |
| - if ( builder == null ) { |
207 |
| - builder = new PropertyCascadable.Builder( valueExtractorManager, property, constrainedElement.getCascadingMetaDataBuilder() ); |
208 |
| - cascadableBuilders.put( property, builder ); |
| 212 | + if ( builder == null ) { |
| 213 | + builder = new PropertyCascadable.Builder( valueExtractorManager, property, constrainedElement.getCascadingMetaDataBuilder() ); |
| 214 | + cascadableBuilders.put( property, builder ); |
| 215 | + } |
| 216 | + else { |
| 217 | + builder.mergeCascadingMetaData( constrainedElement.getCascadingMetaDataBuilder() ); |
| 218 | + } |
209 | 219 | }
|
210 | 220 | else {
|
211 |
| - builder.mergeCascadingMetaData( constrainedElement.getCascadingMetaDataBuilder() ); |
| 221 | + LOG.getUnexpectedConstraintElementType( ConstrainedProperty.class, constrainedElement.getClass() ); |
212 | 222 | }
|
213 | 223 | }
|
214 | 224 | else if ( constrainedElement.getKind() == ConstrainedElementKind.METHOD ) {
|
215 |
| - Property property = ( (ConstrainedExecutable) constrainedElement ).getCallable().as( Property.class ); |
216 |
| - Cascadable.Builder builder = cascadableBuilders.get( property ); |
| 225 | + if ( constrainedElement instanceof ConstrainedExecutable ) { |
| 226 | + Property property = ( (ConstrainedExecutable) constrainedElement ).getCallable().as( Property.class ); |
| 227 | + Cascadable.Builder builder = cascadableBuilders.get( property ); |
217 | 228 |
|
218 |
| - if ( builder == null ) { |
219 |
| - builder = new PropertyCascadable.Builder( valueExtractorManager, property, constrainedElement.getCascadingMetaDataBuilder() ); |
220 |
| - cascadableBuilders.put( property, builder ); |
| 229 | + if ( builder == null ) { |
| 230 | + builder = new PropertyCascadable.Builder( valueExtractorManager, property, constrainedElement.getCascadingMetaDataBuilder() ); |
| 231 | + cascadableBuilders.put( property, builder ); |
| 232 | + } |
| 233 | + else { |
| 234 | + builder.mergeCascadingMetaData( constrainedElement.getCascadingMetaDataBuilder() ); |
| 235 | + } |
221 | 236 | }
|
222 | 237 | else {
|
223 |
| - builder.mergeCascadingMetaData( constrainedElement.getCascadingMetaDataBuilder() ); |
| 238 | + LOG.getUnexpectedConstraintElementType( ConstrainedExecutable.class, constrainedElement.getClass() ); |
224 | 239 | }
|
225 | 240 | }
|
226 | 241 | }
|
|
0 commit comments