if (!actualName.equals(name)) {
continue;
}
TypeMirror actualReturnType = methodEl.getReturnType();
if (actualReturnType.getKind() == TypeKind.TYPEVAR) {
TypeVariable tv = (TypeVariable) actualReturnType;
actualReturnType = tv.getUpperBound();
}
if (requiredReturnType != null && !types.isSubtype(requiredReturnType, actualReturnType)) {
continue;
}
if (requiredParamType == null && methodEl.getParameters().size() > 0) {
continue;
}
if (requiredParamType != null) {
if (methodEl.getParameters().size() != 1) {
continue;
}
TypeMirror actParamType = methodEl.getParameters().get(0).asType();
if (actParamType.getKind() == TypeKind.TYPEVAR) {
TypeVariable tv = (TypeVariable) actualReturnType;
actParamType = tv.getUpperBound();
}
if (!types.isSubtype(requiredParamType, actParamType)) {
continue;
}
}