Spring Data Core

org.springframework.data.util
Interface TypeInformation<S>

All Known Implementing Classes:
ClassTypeInformation, ParentTypeAwareTypeInformation

public interface TypeInformation<S>

Interface to access property types and resolving generics on the way. Starting with a ClassTypeInformation you can travers properties using getProperty(String) to access type information.

Author:
Oliver Gierke

Method Summary
 TypeInformation<?> getActualType()
          Transparently returns the Map value type if the type is a Map, returns the component type if the type 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.
 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.
 

Method Detail

getParameterTypes

List<TypeInformation<?>> getParameterTypes(Constructor<?> constructor)
Returns the TypeInformations for the parameters of the given Constructor.

Parameters:
constructor - must not be null.
Returns:

getProperty

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

Parameters:
fieldname -
Returns:

isCollectionLike

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. If this returns true you can expect getComponentType() to return a non-null value.

Returns:

getComponentType

TypeInformation<?> getComponentType()
Returns the component type for Collections or the key type for Maps.

Returns:

isMap

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

Returns:

getMapValueType

TypeInformation<?> getMapValueType()
Will return the type of the value in case the underlying type is a Map.

Returns:

getType

Class<S> getType()
Returns the type of the property. Will resolve generics and the generic context of

Returns:

getActualType

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

Returns:

getReturnType

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

Parameters:
method - must not be null.
Returns:

getParameterTypes

List<TypeInformation<?>> getParameterTypes(Method method)
Returns the TypeInformations for the parameters of the given Method.

Parameters:
method - must not be null.
Returns:

getSuperTypeInformation

TypeInformation<?> getSuperTypeInformation(Class<?> superType)
Returns the TypeInformation for the given raw super type.

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.

isAssignableFrom

boolean isAssignableFrom(TypeInformation<?> target)
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>.

Parameters:
target -
Returns:

getTypeArguments

List<TypeInformation<?>> getTypeArguments()
Returns the TypeInformation for the type arguments of the current TypeInformation.

Returns:

Spring Data Core

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