Class<?> cls = callback.getMethod().getParameterTypes()[idx];
if (param.mode() != WebParam.Mode.IN) {
//INOUT and OUT Params are mapped to Holder<T>.
Type[] genericParameterTypes = callback.getMethod().getGenericParameterTypes();
//ParameterizedType represents Holder<?>
ParameterizedType paramType = (ParameterizedType)genericParameterTypes[idx];
Class<?> c =
JAXBEncoderDecoder.getClassFromType(paramType.getActualTypeArguments()[0]);
Object partValue = callback.getWrappedPart(param.name(), obj, c);
//TO avoid type safety warning the Holder
//needs tobe set as below.
cls.getField("value").set(methodArgs[idx], partValue);
} else {