class ConvertingImpl extends AbstractSpecifying<Converting> implements Converting, InternalConverting
Modifier and Type | Field and Description |
---|---|
(package private) InternalConverter |
converter |
private static java.util.Map<java.lang.Class<?>,java.lang.Class<?>> |
INTERFACE_IMPLS |
private static java.util.Collection<java.lang.Class<?>> |
NO_MAP_VIEW_TYPES |
private java.lang.Object |
object |
private java.lang.Class<?> |
sourceClass |
private java.lang.Class<?> |
targetClass |
private java.lang.reflect.Type |
targetType |
private java.lang.reflect.Type[] |
typeArguments |
defaultValue, hasDefault, keysIgnoreCase, liveView, sourceAsClass, sourceAsDTO, sourceAsJavaBean, targetAsClass, targetAsDTO, targetAsJavaBean
Constructor and Description |
---|
ConvertingImpl(InternalConverter c,
java.lang.Object obj) |
Modifier and Type | Method and Description |
---|---|
private static java.lang.Object |
asBoxedArray(java.lang.Object obj) |
private java.util.Collection<?> |
asCollection() |
private java.util.Collection<?> |
collectionView() |
private java.lang.Object |
convertArrayToSingleValue(java.lang.Class<?> cls) |
private java.lang.Object |
convertCollectionToSingleValue(java.lang.Class<?> cls) |
(package private) java.lang.Object |
convertCollectionValue(java.lang.Object element) |
private java.lang.Object |
convertMapElement(java.lang.Object element,
int typeIdx) |
private java.lang.Object |
convertMapEntryToSingleValue(java.lang.Class<?> cls) |
(package private) java.lang.Object |
convertMapKey(java.lang.Object key) |
private java.lang.Object |
convertMapToSingleValue(java.lang.Class<?> cls) |
(package private) java.lang.Object |
convertMapValue(java.lang.Object value) |
private <T> T |
convertToArray(java.lang.Class<?> componentClz,
java.lang.reflect.Type componentType) |
private <T> T |
convertToCollection() |
private java.util.Collection<?> |
convertToCollectionDelegate() |
private <T> T |
convertToCollectionType() |
private java.lang.Object |
convertToDictionary() |
private <T> T |
convertToDTO(java.lang.Class<?> sourceCls,
java.lang.Class<?> targetAsCls) |
private java.lang.Object |
convertToInterface(java.lang.Class<?> sourceCls,
java.lang.Class<?> targetCls) |
private java.lang.Object |
convertToJavaBean(java.lang.Class<?> sourceCls,
java.lang.Class<?> targetCls) |
private java.util.Map |
convertToMap() |
private java.util.Map |
convertToMapDelegate() |
private java.lang.Object |
convertToMapType() |
private static java.util.Map |
createMapFromBeanAccessors(java.lang.Object obj,
java.lang.Class<?> sourceCls) |
private java.util.Map |
createMapFromDTO(java.lang.Object obj,
InternalConverter ic) |
private static java.util.Map |
createMapFromInterface(java.lang.Object obj,
java.lang.Class<?> srcCls) |
private static java.lang.Object |
createMapOrCollection(java.lang.Class<?> cls,
int initialSize) |
private java.lang.Object |
createProxy(java.lang.Class<?> cls,
java.util.Map<?,?> data) |
private static java.lang.Class<?> |
getConstructableType(java.lang.Class<?> targetCls) |
private static java.util.Set<java.lang.Class<?>> |
getInterfaces(java.lang.Class<?> cls) |
private static java.util.Set<java.lang.Class<?>> |
getInterfaces0(java.lang.Class<?> cls) |
private java.util.List<java.lang.String> |
getNames(java.lang.Class<?> cls) |
private java.util.Map<?,?> |
getPropertiesDelegate(java.lang.Object obj,
java.lang.Class<?> cls) |
private static java.util.Set<java.lang.reflect.Method> |
getSetters(java.lang.Class<?> cls) |
private static void |
handleBeanMethod(java.lang.Object obj,
java.lang.reflect.Method md,
java.util.Set<java.lang.String> invokedMethods,
java.util.Map res) |
private void |
handleDTOField(java.lang.Object obj,
java.lang.reflect.Field field,
java.util.Set<java.lang.String> handledFields,
java.util.Map result,
InternalConverter ic) |
private static void |
handleInterfaceMethod(java.lang.Object obj,
java.lang.Class<?> intf,
java.lang.reflect.Method md,
java.util.Set<java.lang.String> invokedMethods,
java.util.Map res) |
private java.lang.Object |
handleNull(java.lang.Class<?> cls) |
private boolean |
hasGetProperties(java.lang.Class<?> cls) |
private static boolean |
isCopyRequiredType(java.lang.Class<?> cls) |
private static boolean |
isMapType(java.lang.Class<?> cls,
boolean asJavaBean,
boolean asDTO) |
private boolean |
isMarkerAnnotation(java.lang.Class<?> annClass) |
private static boolean |
isWriteableJavaBean(java.lang.Class<?> cls) |
private java.util.Map<?,?> |
mapView(java.lang.Object obj,
java.lang.Class<?> sourceCls,
InternalConverter ic) |
(package private) static java.lang.reflect.Type |
reifyType(java.lang.reflect.Type typeToReify,
java.lang.Class<?> ownerClass,
java.lang.reflect.Type[] typeArgs) |
void |
setConverter(Converter c)
Set the current converter.
|
<T> T |
to(java.lang.Class<T> cls)
Specify the target object type for the conversion as a class object.
|
<T> T |
to(java.lang.reflect.Type type)
Specify the target object type as a Java Reflection Type object.
|
<T> T |
to(TypeReference<T> ref)
Specify the target object type as a
TypeReference . |
private java.lang.Object |
trySpecialCases() |
private <T> T |
tryStandardMethods() |
defaultValue, keysIgnoreCase, sourceAs, sourceAsBean, sourceAsDTO, targetAs, targetAsBean, targetAsDTO, view
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
defaultValue, keysIgnoreCase, sourceAs, sourceAsBean, sourceAsDTO, targetAs, targetAsBean, targetAsDTO, view
private static final java.util.Map<java.lang.Class<?>,java.lang.Class<?>> INTERFACE_IMPLS
private static final java.util.Collection<java.lang.Class<?>> NO_MAP_VIEW_TYPES
volatile InternalConverter converter
private volatile java.lang.Object object
private volatile java.lang.Class<?> sourceClass
private volatile java.lang.Class<?> targetClass
private volatile java.lang.reflect.Type[] typeArguments
private volatile java.lang.reflect.Type targetType
ConvertingImpl(InternalConverter c, java.lang.Object obj)
public void setConverter(Converter c)
InternalConverting
setConverter
in interface InternalConverting
c
- The current converter.public <T> T to(java.lang.Class<T> cls)
Converting
to
in interface Converting
cls
- The class to convert to.public <T> T to(TypeReference<T> ref)
Converting
TypeReference
. If the target
class carries generics information a TypeReference should be used as this
preserves the generic information whereas a Class object has this
information erased. Example use:
List<String> result = converter.convert(Arrays.asList(1, 2, 3)) .to(new TypeReference<List<String>>() {});
to
in interface Converting
ref
- A type reference to the object being converted to.public <T> T to(java.lang.reflect.Type type)
Converting
to
in interface Converting
type
- A Type object to represent the target type to be converted
to.private java.lang.Object convertArrayToSingleValue(java.lang.Class<?> cls)
private java.lang.Object convertCollectionToSingleValue(java.lang.Class<?> cls)
private java.lang.Object convertMapToSingleValue(java.lang.Class<?> cls)
private java.lang.Object convertMapEntryToSingleValue(java.lang.Class<?> cls)
private <T> T convertToArray(java.lang.Class<?> componentClz, java.lang.reflect.Type componentType)
private <T> T convertToCollectionType()
private java.util.Collection<?> convertToCollectionDelegate()
private <T> T convertToCollection()
private <T> T convertToDTO(java.lang.Class<?> sourceCls, java.lang.Class<?> targetAsCls)
static java.lang.reflect.Type reifyType(java.lang.reflect.Type typeToReify, java.lang.Class<?> ownerClass, java.lang.reflect.Type[] typeArgs)
private java.util.List<java.lang.String> getNames(java.lang.Class<?> cls)
private java.util.Map convertToMap()
java.lang.Object convertCollectionValue(java.lang.Object element)
java.lang.Object convertMapKey(java.lang.Object key)
java.lang.Object convertMapValue(java.lang.Object value)
private java.lang.Object convertMapElement(java.lang.Object element, int typeIdx)
private java.util.Map convertToMapDelegate()
private java.lang.Object convertToMapType()
private java.lang.Object convertToDictionary()
private java.lang.Object convertToJavaBean(java.lang.Class<?> sourceCls, java.lang.Class<?> targetCls)
private java.lang.Object convertToInterface(java.lang.Class<?> sourceCls, java.lang.Class<?> targetCls)
private java.lang.Object createProxy(java.lang.Class<?> cls, java.util.Map<?,?> data)
private java.lang.Object handleNull(java.lang.Class<?> cls)
private static boolean isMapType(java.lang.Class<?> cls, boolean asJavaBean, boolean asDTO)
private java.lang.Object trySpecialCases()
private boolean isMarkerAnnotation(java.lang.Class<?> annClass)
private <T> T tryStandardMethods()
private java.util.Collection<?> collectionView()
private java.util.Collection<?> asCollection()
private static java.lang.Object asBoxedArray(java.lang.Object obj)
private static java.util.Map createMapFromBeanAccessors(java.lang.Object obj, java.lang.Class<?> sourceCls)
private java.util.Map createMapFromDTO(java.lang.Object obj, InternalConverter ic)
private static java.util.Map createMapFromInterface(java.lang.Object obj, java.lang.Class<?> srcCls)
private static java.lang.Object createMapOrCollection(java.lang.Class<?> cls, int initialSize)
private static java.lang.Class<?> getConstructableType(java.lang.Class<?> targetCls)
private static java.util.Set<java.lang.Class<?>> getInterfaces(java.lang.Class<?> cls)
private static java.util.Set<java.lang.Class<?>> getInterfaces0(java.lang.Class<?> cls)
private void handleDTOField(java.lang.Object obj, java.lang.reflect.Field field, java.util.Set<java.lang.String> handledFields, java.util.Map result, InternalConverter ic)
private static void handleBeanMethod(java.lang.Object obj, java.lang.reflect.Method md, java.util.Set<java.lang.String> invokedMethods, java.util.Map res)
private static void handleInterfaceMethod(java.lang.Object obj, java.lang.Class<?> intf, java.lang.reflect.Method md, java.util.Set<java.lang.String> invokedMethods, java.util.Map res)
private java.util.Map<?,?> mapView(java.lang.Object obj, java.lang.Class<?> sourceCls, InternalConverter ic)
private boolean hasGetProperties(java.lang.Class<?> cls)
private java.util.Map<?,?> getPropertiesDelegate(java.lang.Object obj, java.lang.Class<?> cls)
private static boolean isCopyRequiredType(java.lang.Class<?> cls)
private static boolean isWriteableJavaBean(java.lang.Class<?> cls)
private static java.util.Set<java.lang.reflect.Method> getSetters(java.lang.Class<?> cls)