private Class<?> findAdapterBoundType(XmlAdapter<?,?> adapter)
{
TypeFactory tf = getTypeFactory();
JavaType adapterType = tf.constructType(adapter.getClass());
JavaType[] params = tf.findTypeParameters(adapterType, XmlAdapter.class);
// should not happen, except if our type resolution has a flaw, but:
if (params == null || params.length < 2) {
return Object.class;
}
return params[1].getRawClass();