Package org.osgi.util.converter
Class ConvertingImpl
- java.lang.Object
-
- org.osgi.util.converter.AbstractSpecifying<Converting>
-
- org.osgi.util.converter.ConvertingImpl
-
- All Implemented Interfaces:
Converting,InternalConverting,Specifying<Converting>
class ConvertingImpl extends AbstractSpecifying<Converting> implements Converting, InternalConverting
-
-
Field Summary
Fields Modifier and Type Field Description (package private) InternalConverterconverterprivate static java.util.Map<java.lang.Class<?>,java.lang.Class<?>>INTERFACE_IMPLSprivate static java.util.Collection<java.lang.Class<?>>NO_MAP_VIEW_TYPESprivate java.lang.Objectobjectprivate java.lang.Class<?>sourceClassprivate java.lang.Class<?>targetClassprivate java.lang.reflect.TypetargetTypeprivate java.lang.reflect.Type[]typeArguments-
Fields inherited from class org.osgi.util.converter.AbstractSpecifying
defaultValue, hasDefault, keysIgnoreCase, liveView, sourceAsClass, sourceAsDTO, sourceAsJavaBean, targetAsClass, targetAsDTO, targetAsJavaBean
-
-
Constructor Summary
Constructors Constructor Description ConvertingImpl(InternalConverter c, java.lang.Object obj)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.lang.ObjectasBoxedArray(java.lang.Object obj)private java.util.Collection<?>asCollection()private java.util.Collection<?>collectionView()private java.lang.ObjectconvertArrayToSingleValue(java.lang.Class<?> cls)private java.lang.ObjectconvertCollectionToSingleValue(java.lang.Class<?> cls)(package private) java.lang.ObjectconvertCollectionValue(java.lang.Object element)private java.lang.ObjectconvertMapElement(java.lang.Object element, int typeIdx)private java.lang.ObjectconvertMapEntryToSingleValue(java.lang.Class<?> cls)(package private) java.lang.ObjectconvertMapKey(java.lang.Object key)private java.lang.ObjectconvertMapToSingleValue(java.lang.Class<?> cls)(package private) java.lang.ObjectconvertMapValue(java.lang.Object value)private <T> TconvertToArray(java.lang.Class<?> componentClz, java.lang.reflect.Type componentType)private <T> TconvertToCollection()private java.util.Collection<?>convertToCollectionDelegate()private <T> TconvertToCollectionType()private java.lang.ObjectconvertToDictionary()private <T> TconvertToDTO(java.lang.Class<?> sourceCls, java.lang.Class<?> targetAsCls)private java.lang.ObjectconvertToInterface(java.lang.Class<?> sourceCls, java.lang.Class<?> targetCls)private java.lang.ObjectconvertToJavaBean(java.lang.Class<?> sourceCls, java.lang.Class<?> targetCls)private java.util.MapconvertToMap()private java.util.MapconvertToMapDelegate()private java.lang.ObjectconvertToMapType()private static java.util.MapcreateMapFromBeanAccessors(java.lang.Object obj, java.lang.Class<?> sourceCls)private java.util.MapcreateMapFromDTO(java.lang.Object obj, InternalConverter ic)private static java.util.MapcreateMapFromInterface(java.lang.Object obj, java.lang.Class<?> srcCls)private static java.lang.ObjectcreateMapOrCollection(java.lang.Class<?> cls, int initialSize)private java.lang.ObjectcreateProxy(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 voidhandleBeanMethod(java.lang.Object obj, java.lang.reflect.Method md, java.util.Set<java.lang.String> invokedMethods, java.util.Map res)private voidhandleDTOField(java.lang.Object obj, java.lang.reflect.Field field, java.util.Set<java.lang.String> handledFields, java.util.Map result, InternalConverter ic)private static voidhandleInterfaceMethod(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.ObjecthandleNull(java.lang.Class<?> cls)private booleanhasGetProperties(java.lang.Class<?> cls)private static booleanisCopyRequiredType(java.lang.Class<?> cls)private static booleanisMapType(java.lang.Class<?> cls, boolean asJavaBean, boolean asDTO)private booleanisMarkerAnnotation(java.lang.Class<?> annClass)private static booleanisWriteableJavaBean(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.TypereifyType(java.lang.reflect.Type typeToReify, java.lang.Class<?> ownerClass, java.lang.reflect.Type[] typeArgs)voidsetConverter(Converter c)Set the current converter.<T> Tto(java.lang.Class<T> cls)Specify the target object type for the conversion as a class object.<T> Tto(java.lang.reflect.Type type)Specify the target object type as a Java Reflection Type object.<T> Tto(TypeReference<T> ref)Specify the target object type as aTypeReference.private java.lang.ObjecttrySpecialCases()private <T> TtryStandardMethods()-
Methods inherited from class org.osgi.util.converter.AbstractSpecifying
defaultValue, keysIgnoreCase, sourceAs, sourceAsBean, sourceAsDTO, targetAs, targetAsBean, targetAsDTO, view
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.osgi.util.converter.Specifying
defaultValue, keysIgnoreCase, sourceAs, sourceAsBean, sourceAsDTO, targetAs, targetAsBean, targetAsDTO, view
-
-
-
-
Field Detail
-
INTERFACE_IMPLS
private static final java.util.Map<java.lang.Class<?>,java.lang.Class<?>> INTERFACE_IMPLS
-
NO_MAP_VIEW_TYPES
private static final java.util.Collection<java.lang.Class<?>> NO_MAP_VIEW_TYPES
-
converter
volatile InternalConverter converter
-
object
private volatile java.lang.Object object
-
sourceClass
private volatile java.lang.Class<?> sourceClass
-
targetClass
private volatile java.lang.Class<?> targetClass
-
typeArguments
private volatile java.lang.reflect.Type[] typeArguments
-
targetType
private volatile java.lang.reflect.Type targetType
-
-
Constructor Detail
-
ConvertingImpl
ConvertingImpl(InternalConverter c, java.lang.Object obj)
-
-
Method Detail
-
setConverter
public void setConverter(Converter c)
Description copied from interface:InternalConvertingSet the current converter.- Specified by:
setConverterin interfaceInternalConverting- Parameters:
c- The current converter.
-
to
public <T> T to(java.lang.Class<T> cls)
Description copied from interface:ConvertingSpecify the target object type for the conversion as a class object.- Specified by:
toin interfaceConverting- Parameters:
cls- The class to convert to.- Returns:
- The converted object.
-
to
public <T> T to(TypeReference<T> ref)
Description copied from interface:ConvertingSpecify the target object type as aTypeReference. 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>>() {});- Specified by:
toin interfaceConverting- Parameters:
ref- A type reference to the object being converted to.- Returns:
- The converted object.
-
to
public <T> T to(java.lang.reflect.Type type)
Description copied from interface:ConvertingSpecify the target object type as a Java Reflection Type object.- Specified by:
toin interfaceConverting- Parameters:
type- A Type object to represent the target type to be converted to.- Returns:
- The converted object.
-
convertArrayToSingleValue
private java.lang.Object convertArrayToSingleValue(java.lang.Class<?> cls)
-
convertCollectionToSingleValue
private java.lang.Object convertCollectionToSingleValue(java.lang.Class<?> cls)
-
convertMapToSingleValue
private java.lang.Object convertMapToSingleValue(java.lang.Class<?> cls)
-
convertMapEntryToSingleValue
private java.lang.Object convertMapEntryToSingleValue(java.lang.Class<?> cls)
-
convertToArray
private <T> T convertToArray(java.lang.Class<?> componentClz, java.lang.reflect.Type componentType)
-
convertToCollectionType
private <T> T convertToCollectionType()
-
convertToCollectionDelegate
private java.util.Collection<?> convertToCollectionDelegate()
-
convertToCollection
private <T> T convertToCollection()
-
convertToDTO
private <T> T convertToDTO(java.lang.Class<?> sourceCls, java.lang.Class<?> targetAsCls)
-
reifyType
static java.lang.reflect.Type reifyType(java.lang.reflect.Type typeToReify, java.lang.Class<?> ownerClass, java.lang.reflect.Type[] typeArgs)
-
getNames
private java.util.List<java.lang.String> getNames(java.lang.Class<?> cls)
-
convertToMap
private java.util.Map convertToMap()
-
convertCollectionValue
java.lang.Object convertCollectionValue(java.lang.Object element)
-
convertMapKey
java.lang.Object convertMapKey(java.lang.Object key)
-
convertMapValue
java.lang.Object convertMapValue(java.lang.Object value)
-
convertMapElement
private java.lang.Object convertMapElement(java.lang.Object element, int typeIdx)
-
convertToMapDelegate
private java.util.Map convertToMapDelegate()
-
convertToMapType
private java.lang.Object convertToMapType()
-
convertToDictionary
private java.lang.Object convertToDictionary()
-
convertToJavaBean
private java.lang.Object convertToJavaBean(java.lang.Class<?> sourceCls, java.lang.Class<?> targetCls)
-
convertToInterface
private java.lang.Object convertToInterface(java.lang.Class<?> sourceCls, java.lang.Class<?> targetCls)
-
createProxy
private java.lang.Object createProxy(java.lang.Class<?> cls, java.util.Map<?,?> data)
-
handleNull
private java.lang.Object handleNull(java.lang.Class<?> cls)
-
isMapType
private static boolean isMapType(java.lang.Class<?> cls, boolean asJavaBean, boolean asDTO)
-
trySpecialCases
private java.lang.Object trySpecialCases()
-
isMarkerAnnotation
private boolean isMarkerAnnotation(java.lang.Class<?> annClass)
-
tryStandardMethods
private <T> T tryStandardMethods()
-
collectionView
private java.util.Collection<?> collectionView()
-
asCollection
private java.util.Collection<?> asCollection()
-
asBoxedArray
private static java.lang.Object asBoxedArray(java.lang.Object obj)
-
createMapFromBeanAccessors
private static java.util.Map createMapFromBeanAccessors(java.lang.Object obj, java.lang.Class<?> sourceCls)
-
createMapFromDTO
private java.util.Map createMapFromDTO(java.lang.Object obj, InternalConverter ic)
-
createMapFromInterface
private static java.util.Map createMapFromInterface(java.lang.Object obj, java.lang.Class<?> srcCls)
-
createMapOrCollection
private static java.lang.Object createMapOrCollection(java.lang.Class<?> cls, int initialSize)
-
getConstructableType
private static java.lang.Class<?> getConstructableType(java.lang.Class<?> targetCls)
-
getInterfaces
private static java.util.Set<java.lang.Class<?>> getInterfaces(java.lang.Class<?> cls)
-
getInterfaces0
private static java.util.Set<java.lang.Class<?>> getInterfaces0(java.lang.Class<?> cls)
-
handleDTOField
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)
-
handleBeanMethod
private static void handleBeanMethod(java.lang.Object obj, java.lang.reflect.Method md, java.util.Set<java.lang.String> invokedMethods, java.util.Map res)
-
handleInterfaceMethod
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)
-
mapView
private java.util.Map<?,?> mapView(java.lang.Object obj, java.lang.Class<?> sourceCls, InternalConverter ic)
-
hasGetProperties
private boolean hasGetProperties(java.lang.Class<?> cls)
-
getPropertiesDelegate
private java.util.Map<?,?> getPropertiesDelegate(java.lang.Object obj, java.lang.Class<?> cls)
-
isCopyRequiredType
private static boolean isCopyRequiredType(java.lang.Class<?> cls)
-
isWriteableJavaBean
private static boolean isWriteableJavaBean(java.lang.Class<?> cls)
-
getSetters
private static java.util.Set<java.lang.reflect.Method> getSetters(java.lang.Class<?> cls)
-
-