private boolean matches(InvokableAnnotatedMethod<?> decoratedMethod, Method candidate) { if (candidate.getParameterTypes().length != decoratedMethod.getParameters().size()) { return false; } if (!candidate.getName().equals(decoratedMethod.getJavaMember().getName())) { return false; } for (int i = 0; i < candidate.getParameterTypes().length; i++) { Type decoratedMethodParamType = decoratedMethod.getJavaMember().getGenericParameterTypes()[i]; Type candidateParamType = candidate.getGenericParameterTypes()[i]; if (Types.containsTypeVariable(decoratedMethodParamType) || Types.containsTypeVariable(candidateParamType)) { if (!decoratedMethod.getJavaMember().getParameterTypes()[i].isAssignableFrom(candidate.getParameterTypes()[i])) { return false; } } else { if (!CovariantTypes.isAssignableFrom(decoratedMethodParamType, candidateParamType)) { return false; } } } return true; }
private boolean matches(InvokableAnnotatedMethod<?> decoratedMethod, Method candidate) { if (candidate.getParameterTypes().length != decoratedMethod.getParameters().size()) { return false; } if (!candidate.getName().equals(decoratedMethod.getJavaMember().getName())) { return false; } for (int i = 0; i < candidate.getParameterTypes().length; i++) { Type decoratedMethodParamType = decoratedMethod.getJavaMember().getGenericParameterTypes()[i]; Type candidateParamType = candidate.getGenericParameterTypes()[i]; if (Types.containsTypeVariable(decoratedMethodParamType) || Types.containsTypeVariable(candidateParamType)) { if (!decoratedMethod.getJavaMember().getParameterTypes()[i].isAssignableFrom(candidate.getParameterTypes()[i])) { return false; } } else { if (!CovariantTypes.isAssignableFrom(decoratedMethodParamType, candidateParamType)) { return false; } } } return true; }
private boolean matches(InvokableAnnotatedMethod<?> decoratedMethod, Method candidate) { if (candidate.getParameterTypes().length != decoratedMethod.getParameters().size()) { return false; } if (!candidate.getName().equals(decoratedMethod.getJavaMember().getName())) { return false; } for (int i = 0; i < candidate.getParameterTypes().length; i++) { Type decoratedMethodParamType = decoratedMethod.getJavaMember().getGenericParameterTypes()[i]; Type candidateParamType = candidate.getGenericParameterTypes()[i]; if (Types.containsTypeVariable(decoratedMethodParamType) || Types.containsTypeVariable(candidateParamType)) { if (!decoratedMethod.getJavaMember().getParameterTypes()[i].isAssignableFrom(candidate.getParameterTypes()[i])) { return false; } } else { if (!CovariantTypes.isAssignableFrom(decoratedMethodParamType, candidateParamType)) { return false; } } } return true; }
private boolean matches(InvokableAnnotatedMethod<?> decoratedMethod, Method candidate) { if (candidate.getParameterTypes().length != decoratedMethod.getParameters().size()) { return false; } if (!candidate.getName().equals(decoratedMethod.getJavaMember().getName())) { return false; } for (int i = 0; i < candidate.getParameterTypes().length; i++) { Type decoratedMethodParamType = decoratedMethod.getJavaMember().getGenericParameterTypes()[i]; Type candidateParamType = candidate.getGenericParameterTypes()[i]; if (Types.containsTypeVariable(decoratedMethodParamType) || Types.containsTypeVariable(candidateParamType)) { if (!decoratedMethod.getJavaMember().getParameterTypes()[i].isAssignableFrom(candidate.getParameterTypes()[i])) { return false; } } else { if (!CovariantTypes.isAssignableFrom(decoratedMethodParamType, candidateParamType)) { return false; } } } return true; }
private boolean matches(InvokableAnnotatedMethod<?> decoratedMethod, Method candidate) { if (candidate.getParameterTypes().length != decoratedMethod.getParameters().size()) { return false; } if (!candidate.getName().equals(decoratedMethod.getJavaMember().getName())) { return false; } for (int i = 0; i < candidate.getParameterTypes().length; i++) { Type decoratedMethodParamType = decoratedMethod.getJavaMember().getGenericParameterTypes()[i]; Type candidateParamType = candidate.getGenericParameterTypes()[i]; if (Types.containsTypeVariable(decoratedMethodParamType) || Types.containsTypeVariable(candidateParamType)) { if (!decoratedMethod.getJavaMember().getParameterTypes()[i].isAssignableFrom(candidate.getParameterTypes()[i])) { return false; } } else { if (!CovariantTypes.isAssignableFrom(decoratedMethodParamType, candidateParamType)) { return false; } } } return true; }
private boolean matches(InvokableAnnotatedMethod<?> decoratedMethod, Method candidate) { if (candidate.getParameterTypes().length != decoratedMethod.getParameters().size()) { return false; } if (!candidate.getName().equals(decoratedMethod.getJavaMember().getName())) { return false; } for (int i = 0; i < candidate.getParameterTypes().length; i++) { Type decoratedMethodParamType = decoratedMethod.getJavaMember().getGenericParameterTypes()[i]; Type candidateParamType = candidate.getGenericParameterTypes()[i]; if (Types.containsTypeVariable(decoratedMethodParamType) || Types.containsTypeVariable(candidateParamType)) { if (!decoratedMethod.getJavaMember().getParameterTypes()[i].isAssignableFrom(candidate.getParameterTypes()[i])) { return false; } } else { if (!CovariantTypes.isAssignableFrom(decoratedMethodParamType, candidateParamType)) { return false; } } } return true; }