}
protected Method getMethod(Bindings bindings, ELContext context, Class<?> returnType, Class<?>[] paramTypes) {
Object value = eval(bindings, context);
if (value == null) {
throw new MethodNotFoundException(LocalMessages.get("error.identifier.method.notfound", name));
}
if (value instanceof Method) {
Method method = (Method)value;
if (returnType != null && !returnType.isAssignableFrom(method.getReturnType())) {
throw new MethodNotFoundException(LocalMessages.get("error.identifier.method.notfound", name));
}
if (!Arrays.equals(method.getParameterTypes(), paramTypes)) {
throw new MethodNotFoundException(LocalMessages.get("error.identifier.method.notfound", name));
}
return method;
}
throw new MethodNotFoundException(LocalMessages.get("error.identifier.method.notamethod", name, value.getClass()));
}