Spring Data Core

org.springframework.data.util
Class ClassTypeInformation<S>

java.lang.Object
  extended by org.springframework.data.util.ClassTypeInformation<S>
All Implemented Interfaces:
TypeInformation<S>

public class ClassTypeInformation<S>
extends Object

TypeInformation for a plain Class.

Author:
Oliver Gierke

Field Summary
static TypeInformation<Collection> COLLECTION
           
static TypeInformation<List> LIST
           
static TypeInformation<Map> MAP
           
static TypeInformation<Object> OBJECT
           
static TypeInformation<Set> SET
           
 
Method Summary
protected  TypeInformation<?> createInfo(Type fieldType)
          Creates TypeInformation for the given Type.
 boolean equals(Object obj)
           
static
<S> TypeInformation<S>
from(Class<S> type)
          Simple factory method to easily create new instances of ClassTypeInformation.
static
<S> TypeInformation<S>
fromReturnTypeOf(Method method)
          Creates a TypeInformation from the given method's return type.
 TypeInformation<?> getActualType()
          Transparently returns the Map value type if the type is a Map, returns the component type if the type TypeInformation.isCollectionLike() or the simple type if none of this applies.
 TypeInformation<?> getComponentType()
          Returns the component type for Collections or the key type for Maps.
 TypeInformation<?> getMapValueType()
          Will return the type of the value in case the underlying type is a Map.
 List<TypeInformation<?>> getParameterTypes(Constructor<?> constructor)
          Returns the TypeInformations for the parameters of the given Constructor.
 List<TypeInformation<?>> getParameterTypes(Method method)
          Returns the TypeInformations for the parameters of the given Method.
 TypeInformation<?> getProperty(String fieldname)
          Returns the property information for the property with the given name.
 TypeInformation<?> getReturnType(Method method)
          Returns a TypeInformation for the return type of the given Method.
 TypeInformation<?> getSuperTypeInformation(Class<?> superType)
          Returns the TypeInformation for the given raw super type.
 Class<S> getType()
          Returns the type of the property.
 List<TypeInformation<?>> getTypeArguments()
          Returns the TypeInformation for the type arguments of the current TypeInformation.
protected  Map<TypeVariable,Type> getTypeVariableMap()
          Returns the type variable map.
 int hashCode()
           
 boolean isAssignableFrom(TypeInformation<?> target)
          Returns if the current TypeInformation can be safely assigned to the given one.
 boolean isCollectionLike()
          Returns whether the type can be considered a collection, which means it's a container of elements, e.g. a Collection and Array or anything implementing Iterable.
 boolean isMap()
          Returns whether the property is a Map.
protected  Class<S> resolveType(Type type)
          Resolves the given type into a plain Class.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COLLECTION

public static final TypeInformation<Collection> COLLECTION

LIST

public static final TypeInformation<List> LIST

SET

public static final TypeInformation<Set> SET

MAP

public static final TypeInformation<Map> MAP

OBJECT

public static final TypeInformation<Object> OBJECT
Method Detail

from

public static <S> TypeInformation<S> from(Class<S> type)
Simple factory method to easily create new instances of ClassTypeInformation.

Type Parameters:
S -
Parameters:
type -
Returns:

fromReturnTypeOf

public static <S> TypeInformation<S> fromReturnTypeOf(Method method)
Creates a TypeInformation from the given method's return type.

Parameters:
method -
Returns:

getType

public Class<S> getType()
Description copied from interface: TypeInformation
Returns the type of the property. Will resolve generics and the generic context of

Specified by:
getType in interface TypeInformation<S>
Returns:

isAssignableFrom

public boolean isAssignableFrom(TypeInformation<?> target)
Description copied from interface: TypeInformation
Returns if the current TypeInformation can be safely assigned to the given one. Mimics semantics of Class.isAssignableFrom(Class) but takes generics into account. Thus it will allow to detect that a List<Long> is assignable to List<? extends Number>.

Specified by:
isAssignableFrom in interface TypeInformation<S>
Returns:

getTypeVariableMap

protected Map<TypeVariable,Type> getTypeVariableMap()
Returns the type variable map. Will traverse the parents up to the root on and use it's map.

Returns:

createInfo

protected TypeInformation<?> createInfo(Type fieldType)
Creates TypeInformation for the given Type.

Parameters:
fieldType -
Returns:

resolveType

protected Class<S> resolveType(Type type)
Resolves the given type into a plain Class.

Parameters:
type -
Returns:

getParameterTypes

public List<TypeInformation<?>> getParameterTypes(Constructor<?> constructor)
Description copied from interface: TypeInformation
Returns the TypeInformations for the parameters of the given Constructor.

Specified by:
getParameterTypes in interface TypeInformation<S>
Parameters:
constructor - must not be null.
Returns:

getProperty

public TypeInformation<?> getProperty(String fieldname)
Description copied from interface: TypeInformation
Returns the property information for the property with the given name. Supports proeprty traversal through dot notation.

Specified by:
getProperty in interface TypeInformation<S>
Returns:

getActualType

public TypeInformation<?> getActualType()
Description copied from interface: TypeInformation
Transparently returns the Map value type if the type is a Map, returns the component type if the type TypeInformation.isCollectionLike() or the simple type if none of this applies.

Specified by:
getActualType in interface TypeInformation<S>
Returns:

isMap

public boolean isMap()
Description copied from interface: TypeInformation
Returns whether the property is a Map. If this returns true you can expect TypeInformation.getComponentType() as well as TypeInformation.getMapValueType() to return something not null.

Specified by:
isMap in interface TypeInformation<S>
Returns:

getMapValueType

public TypeInformation<?> getMapValueType()
Description copied from interface: TypeInformation
Will return the type of the value in case the underlying type is a Map.

Specified by:
getMapValueType in interface TypeInformation<S>
Returns:

isCollectionLike

public boolean isCollectionLike()
Description copied from interface: TypeInformation
Returns whether the type can be considered a collection, which means it's a container of elements, e.g. a Collection and Array or anything implementing Iterable. If this returns true you can expect TypeInformation.getComponentType() to return a non-null value.

Specified by:
isCollectionLike in interface TypeInformation<S>
Returns:

getComponentType

public TypeInformation<?> getComponentType()
Description copied from interface: TypeInformation
Returns the component type for Collections or the key type for Maps.

Specified by:
getComponentType in interface TypeInformation<S>
Returns:

getReturnType

public TypeInformation<?> getReturnType(Method method)
Description copied from interface: TypeInformation
Returns a TypeInformation for the return type of the given Method. Will potentially resolve generics information against the current types type parameter bindings.

Specified by:
getReturnType in interface TypeInformation<S>
Parameters:
method - must not be null.
Returns:

getParameterTypes

public List<TypeInformation<?>> getParameterTypes(Method method)
Description copied from interface: TypeInformation
Returns the TypeInformations for the parameters of the given Method.

Specified by:
getParameterTypes in interface TypeInformation<S>
Parameters:
method - must not be null.
Returns:

getSuperTypeInformation

public TypeInformation<?> getSuperTypeInformation(Class<?> superType)
Description copied from interface: TypeInformation
Returns the TypeInformation for the given raw super type.

Specified by:
getSuperTypeInformation in interface TypeInformation<S>
Parameters:
superType - must not be null.
Returns:
the TypeInformation for the given raw super type or null in case the current TypeInformation does not implement the given type.

getTypeArguments

public List<TypeInformation<?>> getTypeArguments()
Description copied from interface: TypeInformation
Returns the TypeInformation for the type arguments of the current TypeInformation.

Specified by:
getTypeArguments in interface TypeInformation<S>
Returns:

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

Spring Data Core

Copyright © 2011-2013-2013 Pivotal. All Rights Reserved.