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) 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
-
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.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 aTypeReference
.private java.lang.Object
trySpecialCases()
private <T> T
tryStandardMethods()
-
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:InternalConverting
Set the current converter.- Specified by:
setConverter
in interfaceInternalConverting
- Parameters:
c
- The current converter.
-
to
public <T> T to(java.lang.Class<T> cls)
Description copied from interface:Converting
Specify the target object type for the conversion as a class object.- Specified by:
to
in interfaceConverting
- Parameters:
cls
- The class to convert to.- Returns:
- The converted object.
-
to
public <T> T to(TypeReference<T> ref)
Description copied from interface:Converting
Specify 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:
to
in 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:Converting
Specify the target object type as a Java Reflection Type object.- Specified by:
to
in 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)
-
-