|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.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 wrap
public 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 wrap| Method 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 NULLpublic 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.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String asString()
public java.lang.String toString()
toString in class java.lang.Objectprivate 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 | ||||||||