/** * Finds type arguments constraints for parameters. * * @param executable the executable * @param i the parameter index * * @return a set of type arguments constraints, or an empty set if no constrained type arguments are found */ protected Set<MetaConstraint<?>> findTypeAnnotationConstraintsForExecutableParameter(Executable executable, int i, AnnotatedType parameterAnnotatedType) { try { return findTypeArgumentsConstraints( executable, new TypeArgumentExecutableParameterLocation( executable, i ), parameterAnnotatedType ); } catch (ArrayIndexOutOfBoundsException ex) { LOG.warn( MESSAGES.constraintOnConstructorOfNonStaticInnerClass(), ex ); return Collections.emptySet(); } }
private CascadingMetaDataBuilder findCascadingMetaData(Executable executable, Parameter[] parameters, int i, AnnotatedType parameterAnnotatedType) { Parameter parameter = parameters[i]; TypeVariable<?>[] typeParameters = parameter.getType().getTypeParameters(); Map<TypeVariable<?>, CascadingMetaDataBuilder> containerElementTypesCascadingMetaData = getTypeParametersCascadingMetadata( parameterAnnotatedType, typeParameters ); try { return getCascadingMetaData( ReflectionHelper.typeOf( parameter.getDeclaringExecutable(), i ), parameter, containerElementTypesCascadingMetaData ); } catch (ArrayIndexOutOfBoundsException ex) { LOG.warn( MESSAGES.constraintOnConstructorOfNonStaticInnerClass(), ex ); return CascadingMetaDataBuilder.nonCascading(); } }
@Override protected Set<MetaConstraint<?>> findTypeAnnotationConstraintsForExecutableParameter(Member member, int i) { Parameter parameter = ( (Executable) member ).getParameters()[i]; try { return findTypeArgumentsConstraints( member, parameter.getAnnotatedType(), parameter.isAnnotationPresent( Valid.class ) ); } catch (ArrayIndexOutOfBoundsException ex) { log.warn( MESSAGES.constraintOnConstructorOfNonStaticInnerClass(), ex ); return Collections.emptySet(); } }
LOG.warn( MESSAGES.constraintOnConstructorOfNonStaticInnerClass(), ex ); parameterAnnotations = EMPTY_PARAMETER_ANNOTATIONS;