boolean isMethodCorrect(ResolvedMethod m) { if (m.getReturnType()!=null) { log.error("The method {} is annotated with @SelfValidation but does not return void. It is ignored", m.getRawMember()); return false; } else if (m.getArgumentCount() != 1 || !m.getArgumentType(0).getErasedType().equals(ViolationCollector.class)) { log.error("The method {} is annotated with @SelfValidation but does not have a single parameter of type {}", m.getRawMember(), ViolationCollector.class); return false; } else if (!m.isPublic()) { log.error("The method {} is annotated with @SelfValidation but is not public", m.getRawMember()); return false; } return true; }
if (!resolvedMethods[0].getArgumentType(i).equals(resolvedMethods[1].getArgumentType(i)))
@Override public boolean apply(ResolvedMethod input) { for (int index = 0; index < input.getArgumentCount(); index++) { if (!covariant(input.getArgumentType(index), methodToResolve.getGenericParameterTypes()[index])) { return false; } } ResolvedType candidateMethodReturnValue = returnTypeOrVoid(input); return bothAreVoids(candidateMethodReturnValue, methodToResolve.getGenericReturnType()) || contravariant(candidateMethodReturnValue, methodToResolve.getGenericReturnType()); } };
@Override public List<ResolvedMethodParameter> apply(ResolvedMethod input) { List<ResolvedMethodParameter> parameters = newArrayList(); MethodParameter[] methodParameters = methodToResolve.getMethodParameters(); for (int i = 0; i < input.getArgumentCount(); i++) { parameters.add(new ResolvedMethodParameter( discoveredName(methodParameters[i]).or(String.format("param%s", i)), methodParameters[i], input.getArgumentType(i))); } return parameters; } };
public boolean canOverride(ResolvedMethod m1, ResolvedMethod m2) { if (!m1.getName().equals(m2.getName())) return false; int count = m1.getArgumentCount(); if (count != m2.getArgumentCount()) return false; for (int i = 0; i < count; i++) { if (!m1.getArgumentType(i).equals(m2.getArgumentType(i))) return false; } return true; }
@Override public boolean apply(ResolvedMethod input) { for (int index = 0; index < input.getArgumentCount(); index++) { if (!covariant(input.getArgumentType(index), methodToResolve.getGenericParameterTypes()[index])) { return false; } } ResolvedType candidateMethodReturnValue = returnTypeOrVoid(input); return bothAreVoids(candidateMethodReturnValue, methodToResolve.getGenericReturnType()) || contravariant(candidateMethodReturnValue, methodToResolve.getGenericReturnType()); } };
@Override public boolean apply(ResolvedMethod input) { for (int index = 0; index < input.getArgumentCount(); index++) { if (!covariant(input.getArgumentType(index), methodToResolve.getGenericParameterTypes()[index])) { return false; } } ResolvedType candidateMethodReturnValue = returnTypeOrVoid(input); return bothAreVoids(candidateMethodReturnValue, methodToResolve.getGenericReturnType()) || contravariant(candidateMethodReturnValue, methodToResolve.getGenericReturnType()); } };
@Override protected ResolvedType realType() { if (isGetter) { if (method.getReturnType().getErasedType().getTypeParameters().length > 0) { return method.getReturnType(); } else { return typeResolver.resolve(method.getReturnType().getErasedType()); } } else { if (method.getArgumentType(0).getErasedType().getTypeParameters().length > 0) { return method.getArgumentType(0); } else { return typeResolver.resolve(method.getArgumentType(0).getErasedType()); } } }
@Override protected ResolvedType realType() { if (isGetter) { if (method.getReturnType().getErasedType().getTypeParameters().length > 0) { return method.getReturnType(); } else { return typeResolver.resolve(method.getReturnType().getErasedType()); } } else { if (method.getArgumentType(0).getErasedType().getTypeParameters().length > 0) { return method.getArgumentType(0); } else { return typeResolver.resolve(method.getArgumentType(0).getErasedType()); } } }
@Override protected ResolvedType realType() { if (isGetter) { if (method.getReturnType().getErasedType().getTypeParameters().length > 0) { return method.getReturnType(); } else { return typeResolver.resolve(method.getReturnType().getErasedType()); } } else { if (method.getArgumentType(0).getErasedType().getTypeParameters().length > 0) { return method.getArgumentType(0); } else { return typeResolver.resolve(method.getArgumentType(0).getErasedType()); } } } }
public List<ResolvedMethodParameter> methodParameters(final HandlerMethod methodToResolve) { Class hostClass = use(methodToResolve.getBeanType()) .or(methodToResolve.getMethod().getDeclaringClass()); ResolvedMethod resolvedMethod = getResolvedMethod(methodToResolve.getMethod(), hostClass); List<ResolvedMethodParameter> parameters = newArrayList(); MethodParameter[] methodParameters = methodToResolve.getMethodParameters(); if (resolvedMethod != null) { if (methodParameters.length == resolvedMethod.getArgumentCount()) { for (int index = 0; index < resolvedMethod.getArgumentCount(); index++) { MethodParameter methodParameter = methodParameters[index]; methodParameter.initParameterNameDiscovery(new LocalVariableTableParameterNameDiscoverer()); parameters.add(new ResolvedMethodParameter(methodParameter, resolvedMethod.getArgumentType(index))); } } else { log.warn(String.format("Problem trying to resolve a method named %s", methodToResolve.getMethod().getName())); log.warn(String.format("Method parameter count %s does not match resolved method argument count %s", methodParameters.length, resolvedMethod.getArgumentCount())); } } return parameters; }
public List<ResolvedMethodParameter> methodParameters(final HandlerMethod methodToResolve) { Class hostClass = useType(methodToResolve.getBeanType()) .or(methodToResolve.getMethod().getDeclaringClass()); ResolvedMethod resolvedMethod = getResolvedMethod(methodToResolve.getMethod(), hostClass); List<ResolvedMethodParameter> parameters = newArrayList(); MethodParameter[] methodParameters = methodToResolve.getMethodParameters(); if (resolvedMethod != null) { if (methodParameters.length == resolvedMethod.getArgumentCount()) { for (int index = 0; index < resolvedMethod.getArgumentCount(); index++) { MethodParameter methodParameter = methodParameters[index]; methodParameter.initParameterNameDiscovery(new LocalVariableTableParameterNameDiscoverer()); parameters.add(new ResolvedMethodParameter(methodParameter, resolvedMethod.getArgumentType(index))); } } else { log.warn(String.format("Problem trying to resolve a method named %s", methodToResolve.getMethod().getName())); log.warn(String.format("Method parameter count %s does not match resolved method argument count %s", methodParameters.length, resolvedMethod.getArgumentCount())); } } return parameters; }
@VisibleForTesting List<ModelProperty> addCandidateProperties(AnnotatedMember member, ResolvedMethod childProperty, Optional<BeanPropertyDefinition> jacksonProperty, ModelContext givenContext) { if (member instanceof AnnotatedMethod && memberIsUnwrapped(member)) { if (Accessors.isGetter(((AnnotatedMethod) member).getMember())) { return propertiesFor(childProperty.getReturnType(), fromParent(givenContext, childProperty.getReturnType())); } else { return propertiesFor(childProperty.getArgumentType(0), fromParent(givenContext, childProperty.getArgumentType(0))); } } else { return newArrayList(beanModelProperty(childProperty, jacksonProperty, givenContext)); } }
@VisibleForTesting Iterable<? extends ModelProperty> addDeserializationCandidates(AnnotatedMember member, ResolvedMethod childProperty, Optional<BeanPropertyDefinition> jacksonProperty) { if (member instanceof AnnotatedMethod && memberIsUnwrapped(member)) { Iterable<? extends ModelProperty> properties; if (isGetter(((AnnotatedMethod) member).getMember())) { properties = propertiesForDeserialization(childProperty.getReturnType()); } else { properties = propertiesForDeserialization(childProperty.getArgumentType(0)); } return properties; } else { return newArrayList(beanModelProperty(childProperty, jacksonProperty, true)); } }
@VisibleForTesting Iterable<? extends ModelProperty> addSerializationCandidates(AnnotatedMember member, ResolvedMethod childProperty, Optional<BeanPropertyDefinition> jacksonProperty) { if (member instanceof AnnotatedMethod && memberIsUnwrapped(member)) { Iterable<? extends ModelProperty> properties; if (isGetter(((AnnotatedMethod) member).getMember())) { properties = propertiesForSerialization(childProperty.getReturnType()); } else { properties = propertiesForSerialization(childProperty.getArgumentType(0)); } return properties; } else { return newArrayList(beanModelProperty(childProperty, jacksonProperty, true)); } }
if ( !resolvedMethods[0].getArgumentType( i ) .equals( resolvedMethods[1].getArgumentType( i ) ) ) { return false;
if ( !resolvedMethods[0].getArgumentType( i ) .equals( resolvedMethods[1].getArgumentType( i ) ) ) { return false;