|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.core.convert.TypeDescriptor
public class TypeDescriptor
Context about a type to convert to.
Field Summary | |
---|---|
private java.lang.annotation.Annotation[] |
annotations
|
private TypeDescriptor |
elementType
|
private static java.lang.annotation.Annotation[] |
EMPTY_ANNOTATION_ARRAY
|
private java.lang.reflect.Field |
field
|
private int |
fieldNestingLevel
|
private TypeDescriptor |
mapKeyType
|
private TypeDescriptor |
mapValueType
|
private MethodParameter |
methodParameter
|
static TypeDescriptor |
NULL
Constant defining a TypeDescriptor for a null value |
private java.lang.Class<?> |
type
|
private static java.util.Map<java.lang.Class<?>,TypeDescriptor> |
typeDescriptorCache
|
private static TypeDescriptor |
UNKNOWN
Constant defining a TypeDescriptor for 'unknown type' |
private java.lang.Object |
value
|
Constructor Summary | |
---|---|
private |
TypeDescriptor()
Internal constructor for a NULL descriptor. |
private |
TypeDescriptor(java.lang.Class<?> type)
Create a new descriptor for the given type. |
|
TypeDescriptor(java.lang.reflect.Field field)
Create a new type descriptor for a field. |
|
TypeDescriptor(java.lang.reflect.Field field,
java.lang.Class<?> type)
Create a new type descriptor for a field. |
private |
TypeDescriptor(java.lang.reflect.Field field,
int nestingLevel,
java.lang.Class<?> type)
Create a new type descriptor for a field. |
|
TypeDescriptor(MethodParameter methodParameter)
Create a new type descriptor from a method or constructor parameter. |
|
TypeDescriptor(MethodParameter methodParameter,
java.lang.Class<?> type)
Create a new type descriptor from a method or constructor parameter. |
private |
TypeDescriptor(java.lang.Object value)
Create a new descriptor for the type of the given value. |
Method Summary | |
---|---|
java.lang.String |
asString()
A textual representation of the type descriptor (eg. |
boolean |
equals(java.lang.Object obj)
|
TypeDescriptor |
forElementType(java.lang.Class<?> elementType)
Create a copy of this type descriptor, preserving the context information but exposing the specified element type (e.g. |
static TypeDescriptor |
forObject(java.lang.Object object)
Create a new type descriptor for the class of the given object. |
java.lang.annotation.Annotation |
getAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Obtain the annotation associated with the wrapped parameter/field, if any. |
java.lang.annotation.Annotation[] |
getAnnotations()
Obtain the annotations associated with the wrapped parameter/field, if any. |
java.lang.Class<?> |
getElementType()
If this type is an array type or Collection type, returns the underlying element type. |
TypeDescriptor |
getElementTypeDescriptor()
Return the element type as a type descriptor. |
TypeDescriptor |
getElementTypeDescriptor(java.lang.Object element)
Return the element type as a type descriptor. |
java.lang.reflect.Field |
getField()
Return the wrapped Field, if any. |
java.lang.Class<?> |
getMapKeyType()
Determine the generic key type of the wrapped Map parameter/field, if any. |
TypeDescriptor |
getMapKeyTypeDescriptor()
Returns map key type as a type descriptor. |
TypeDescriptor |
getMapKeyTypeDescriptor(java.lang.Object key)
Return the map key type as a type descriptor. |
java.lang.Class<?> |
getMapValueType()
Determine the generic value type of the wrapped Map parameter/field, if any. |
TypeDescriptor |
getMapValueTypeDescriptor()
Returns map value type as a type descriptor. |
TypeDescriptor |
getMapValueTypeDescriptor(java.lang.Object value)
Return the map value type as a type descriptor. |
MethodParameter |
getMethodParameter()
Return the wrapped MethodParameter, if any. |
java.lang.String |
getName()
Returns the name of this type: the fully qualified class name. |
java.lang.Class<?> |
getObjectType()
Determine the declared type of the wrapped parameter/field. |
java.lang.Class<?> |
getType()
Determine the declared (non-generic) type of the wrapped parameter/field. |
int |
hashCode()
|
boolean |
isArray()
Is this type an array type? |
boolean |
isAssignableTo(TypeDescriptor targetType)
Returns true if an object of this type can be assigned to a reference of given targetType. |
boolean |
isCollection()
Is this type a Collection type? |
boolean |
isMap()
Is this type a Map type? |
boolean |
isMapEntryTypeKnown()
Is this descriptor for a map where the key type and value type are known? |
boolean |
isPrimitive()
Is this type a primitive type? |
private java.lang.annotation.Annotation[] |
resolveAnnotations()
|
private java.lang.Class<?> |
resolveCollectionElementType()
|
private java.lang.Class<?> |
resolveElementType()
|
private java.lang.Class<?> |
resolveMapKeyType()
|
private java.lang.Class<?> |
resolveMapValueType()
|
java.lang.String |
toString()
|
static TypeDescriptor |
valueOf(java.lang.Class<?> type)
Create a new type descriptor for the given class. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final TypeDescriptor NULL
null
value
private static final TypeDescriptor UNKNOWN
private static final java.util.Map<java.lang.Class<?>,TypeDescriptor> typeDescriptorCache
private static final java.lang.annotation.Annotation[] EMPTY_ANNOTATION_ARRAY
private java.lang.Class<?> type
private MethodParameter methodParameter
private java.lang.reflect.Field field
private int fieldNestingLevel
private java.lang.Object value
private volatile TypeDescriptor elementType
private volatile TypeDescriptor mapKeyType
private volatile TypeDescriptor mapValueType
private volatile java.lang.annotation.Annotation[] annotations
Constructor Detail |
---|
public TypeDescriptor(MethodParameter methodParameter)
Use this constructor when a target conversion point originates from a method parameter, such as a setter method argument.
methodParameter
- the MethodParameter to wrappublic TypeDescriptor(java.lang.reflect.Field field)
field
- the field to wrappublic TypeDescriptor(MethodParameter methodParameter, java.lang.Class<?> type)
Use this constructor when a target conversion point originates from a method parameter, such as a setter method argument.
methodParameter
- the MethodParameter to wraptype
- the specific type to expose (may be an array/collection element)public TypeDescriptor(java.lang.reflect.Field field, java.lang.Class<?> type)
field
- the field to wraptype
- the specific type to expose (may be an array/collection element)private TypeDescriptor(java.lang.reflect.Field field, int nestingLevel, java.lang.Class<?> type)
field
- the field to wraptype
- the specific type to expose (may be an array/collection element)private TypeDescriptor()
private TypeDescriptor(java.lang.Object value)
Use this constructor when a conversion point comes from a source such as a Map or Collection, where no additional context is available but elements can be introspected.
value
- the value to determine the actual type fromprivate TypeDescriptor(java.lang.Class<?> type)
Use this constructor when a conversion point comes from a plain source type, where no additional context is available.
type
- the actual type to wrapMethod Detail |
---|
public MethodParameter getMethodParameter()
Note: Either MethodParameter or Field is available.
null
if nonepublic java.lang.reflect.Field getField()
Note: Either MethodParameter or Field is available.
null
if nonepublic java.lang.Class<?> getType()
null
if this is NULL
public java.lang.Class<?> getObjectType()
public java.lang.String getName()
public boolean isPrimitive()
public boolean isArray()
public boolean isCollection()
Collection
type?
public java.lang.Class<?> getElementType()
Collection
type, returns the underlying element type.
Returns null
if the type is neither an array or collection.
public TypeDescriptor getElementTypeDescriptor()
public TypeDescriptor getElementTypeDescriptor(java.lang.Object element)
element
- the element
public boolean isMap()
Map
type?
public boolean isMapEntryTypeKnown()
public java.lang.Class<?> getMapKeyType()
null
if nonepublic TypeDescriptor getMapKeyTypeDescriptor()
public TypeDescriptor getMapKeyTypeDescriptor(java.lang.Object key)
null
(cannot be determined), the type descriptor is derived from the key argument.
key
- the key
public java.lang.Class<?> getMapValueType()
null
if nonepublic TypeDescriptor getMapValueTypeDescriptor()
public TypeDescriptor getMapValueTypeDescriptor(java.lang.Object value)
value
- the value
public java.lang.annotation.Annotation[] getAnnotations()
public java.lang.annotation.Annotation getAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
public boolean isAssignableTo(TypeDescriptor targetType)
targetType
- the target type
public TypeDescriptor forElementType(java.lang.Class<?> elementType)
elementType
- the desired type to expose
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String asString()
public java.lang.String toString()
toString
in class java.lang.Object
private java.lang.Class<?> resolveElementType()
private java.lang.Class<?> resolveCollectionElementType()
private java.lang.Class<?> resolveMapKeyType()
private java.lang.Class<?> resolveMapValueType()
private java.lang.annotation.Annotation[] resolveAnnotations()
public static TypeDescriptor forObject(java.lang.Object object)
object
- the object
public static TypeDescriptor valueOf(java.lang.Class<?> type)
type
- the class
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |