if (Map.class.isAssignableFrom(klass)) {
Class<?> secondTypeParam = ReflectionUtils.getParam(pt, 1, paramName);
UDTMapper<?> keyMapper = firstTypeParam.isAnnotationPresent(UDT.class) ? mappingManager.getUDTMapper(firstTypeParam) : null;
UDTMapper<?> valueMapper = secondTypeParam.isAnnotationPresent(UDT.class) ? mappingManager.getUDTMapper(secondTypeParam) : null;
if (keyMapper != null || valueMapper != null) {
return new UDTMapParamMapper(paramName, idx, keyMapper, valueMapper);
}
}
return new ParamMapper(paramName, idx);
} else {
throw new IllegalArgumentException(String.format("Cannot map class %s for parameter %s of %s.%s", paramType, paramName, className, methodName));