package com.fasterxml.jackson.dataformat.xml.util;
import java.util.Collection;
import com.fasterxml.jackson.databind.JavaType;
public class TypeUtil
{
Helper method used for figuring out if given raw type is a collection ("indexed") type;
in which case a wrapper element is typically added.
/**
* Helper method used for figuring out if given raw type is a collection ("indexed") type;
* in which case a wrapper element is typically added.
*/
public static boolean isIndexedType(JavaType type)
{
if (type.isContainerType()) {
Class<?> cls = type.getRawClass();
// One special case; byte[] will be serialized as base64-encoded String, not real array, so:
// (actually, ditto for char[]; thought to be a String)
if (cls == byte[].class || cls == char[].class) {
return false;
}
// Also, should not add wrapping for Maps
// [dataformat-xml#220]: nor map-like (Scala Map) types
if (type.isMapLikeType()) {
return false;
}
return true;
}
return false;
}
public static boolean isIndexedType(Class<?> cls)
{
return (cls.isArray() && cls != byte[].class && cls != char[].class)
|| Collection.class.isAssignableFrom(cls);
}
}