/*
* Try to use iPojo metadata
*/
MethodMetadata methodIPojoMetadata = null;
if (pojoMetadata != null) {
for (MethodMetadata method : pojoMetadata.getMethods(methodName)) {
if (methodSignature == null) {
methodIPojoMetadata = method;
break;
}
String signature[] = methodSignature.split(",");
String arguments[] = method.getMethodArguments();
boolean match = (signature.length == arguments.length);
for (int i = 0; match && i < signature.length; i++) {
if (!signature[i].equals(arguments[i])) {
match = false;
}
}
if (match) {
methodIPojoMetadata = method;
break;
}
}
}
if (methodIPojoMetadata != null) {
return boxed(methodIPojoMetadata.getMethodReturn());
}
throw new NoSuchMethodException("unavailable metadata for method " + methodName + "(" + methodSignature != null ? methodSignature : "" + ")");
}