org.springframework.core
Class GenericCollectionTypeResolver

java.lang.Object
  extended by org.springframework.core.GenericCollectionTypeResolver

public abstract class GenericCollectionTypeResolver
extends Object

Helper class for determining element types of collections and maps.

Mainly intended for usage within the framework, determining the target type of values to be added to a collection or map (to be able to attempt type conversion if appropriate).

Only usable on Java 5. Use an appropriate JdkVersion check before calling this class, if a fallback for JDK 1.4 is desirable.

Since:
2.0
Author:
Juergen Hoeller
See Also:
BeanWrapper

Constructor Summary
GenericCollectionTypeResolver()
           
 
Method Summary
static Class getCollectionFieldType(Field collectionField)
          Determine the generic element type of the given Collection field.
static Class getCollectionFieldType(Field collectionField, int nestingLevel)
          Determine the generic element type of the given Collection field.
static Class getCollectionParameterType(MethodParameter methodParam)
          Determine the generic element type of the given Collection parameter.
static Class getCollectionReturnType(Method method)
          Determine the generic element type of the given Collection return type.
static Class getCollectionReturnType(Method method, int nestingLevel)
          Determine the generic element type of the given Collection return type.
static Class getCollectionType(Class collectionClass)
          Determine the generic element type of the given Collection class (if it declares one through a generic superclass or generic interface).
static Class getMapKeyFieldType(Field mapField)
          Determine the generic key type of the given Map field.
static Class getMapKeyFieldType(Field mapField, int nestingLevel)
          Determine the generic key type of the given Map field.
static Class getMapKeyParameterType(MethodParameter methodParam)
          Determine the generic key type of the given Map parameter.
static Class getMapKeyReturnType(Method method)
          Determine the generic key type of the given Map return type.
static Class getMapKeyReturnType(Method method, int nestingLevel)
          Determine the generic key type of the given Map return type.
static Class getMapKeyType(Class mapClass)
          Determine the generic key type of the given Map class (if it declares one through a generic superclass or generic interface).
static Class getMapValueFieldType(Field mapField)
          Determine the generic value type of the given Map field.
static Class getMapValueFieldType(Field mapField, int nestingLevel)
          Determine the generic value type of the given Map field.
static Class getMapValueParameterType(MethodParameter methodParam)
          Determine the generic value type of the given Map parameter.
static Class getMapValueReturnType(Method method)
          Determine the generic value type of the given Map return type.
static Class getMapValueReturnType(Method method, int nestingLevel)
          Determine the generic value type of the given Map return type.
static Class getMapValueType(Class mapClass)
          Determine the generic value type of the given Map class (if it declares one through a generic superclass or generic interface).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GenericCollectionTypeResolver

public GenericCollectionTypeResolver()
Method Detail

getCollectionType

public static Class getCollectionType(Class collectionClass)
Determine the generic element type of the given Collection class (if it declares one through a generic superclass or generic interface).

Parameters:
collectionClass - the collection class to introspect
Returns:
the generic type, or null if none

getMapKeyType

public static Class getMapKeyType(Class mapClass)
Determine the generic key type of the given Map class (if it declares one through a generic superclass or generic interface).

Parameters:
mapClass - the map class to introspect
Returns:
the generic type, or null if none

getMapValueType

public static Class getMapValueType(Class mapClass)
Determine the generic value type of the given Map class (if it declares one through a generic superclass or generic interface).

Parameters:
mapClass - the map class to introspect
Returns:
the generic type, or null if none

getCollectionFieldType

public static Class getCollectionFieldType(Field collectionField)
Determine the generic element type of the given Collection field.

Parameters:
collectionField - the collection field to introspect
Returns:
the generic type, or null if none

getCollectionFieldType

public static Class getCollectionFieldType(Field collectionField,
                                           int nestingLevel)
Determine the generic element type of the given Collection field.

Parameters:
collectionField - the collection field to introspect
nestingLevel - the nesting level of the target type (typically 1; e.g. in case of a List of Lists, 1 would indicate the nested List, whereas 2 would indicate the element of the nested List)
Returns:
the generic type, or null if none

getMapKeyFieldType

public static Class getMapKeyFieldType(Field mapField)
Determine the generic key type of the given Map field.

Parameters:
mapField - the map field to introspect
Returns:
the generic type, or null if none

getMapKeyFieldType

public static Class getMapKeyFieldType(Field mapField,
                                       int nestingLevel)
Determine the generic key type of the given Map field.

Parameters:
mapField - the map field to introspect
nestingLevel - the nesting level of the target type (typically 1; e.g. in case of a List of Lists, 1 would indicate the nested List, whereas 2 would indicate the element of the nested List)
Returns:
the generic type, or null if none

getMapValueFieldType

public static Class getMapValueFieldType(Field mapField)
Determine the generic value type of the given Map field.

Parameters:
mapField - the map field to introspect
Returns:
the generic type, or null if none

getMapValueFieldType

public static Class getMapValueFieldType(Field mapField,
                                         int nestingLevel)
Determine the generic value type of the given Map field.

Parameters:
mapField - the map field to introspect
nestingLevel - the nesting level of the target type (typically 1; e.g. in case of a List of Lists, 1 would indicate the nested List, whereas 2 would indicate the element of the nested List)
Returns:
the generic type, or null if none

getCollectionParameterType

public static Class getCollectionParameterType(MethodParameter methodParam)
Determine the generic element type of the given Collection parameter.

Parameters:
methodParam - the method parameter specification
Returns:
the generic type, or null if none

getMapKeyParameterType

public static Class getMapKeyParameterType(MethodParameter methodParam)
Determine the generic key type of the given Map parameter.

Parameters:
methodParam - the method parameter specification
Returns:
the generic type, or null if none

getMapValueParameterType

public static Class getMapValueParameterType(MethodParameter methodParam)
Determine the generic value type of the given Map parameter.

Parameters:
methodParam - the method parameter specification
Returns:
the generic type, or null if none

getCollectionReturnType

public static Class getCollectionReturnType(Method method)
Determine the generic element type of the given Collection return type.

Parameters:
method - the method to check the return type for
Returns:
the generic type, or null if none

getCollectionReturnType

public static Class getCollectionReturnType(Method method,
                                            int nestingLevel)
Determine the generic element type of the given Collection return type.

If the specified nesting level is higher than 1, the element type of a nested Collection/Map will be analyzed.

Parameters:
method - the method to check the return type for
nestingLevel - the nesting level of the target type (typically 1; e.g. in case of a List of Lists, 1 would indicate the nested List, whereas 2 would indicate the element of the nested List)
Returns:
the generic type, or null if none

getMapKeyReturnType

public static Class getMapKeyReturnType(Method method)
Determine the generic key type of the given Map return type.

Parameters:
method - the method to check the return type for
Returns:
the generic type, or null if none

getMapKeyReturnType

public static Class getMapKeyReturnType(Method method,
                                        int nestingLevel)
Determine the generic key type of the given Map return type.

Parameters:
method - the method to check the return type for
nestingLevel - the nesting level of the target type (typically 1; e.g. in case of a List of Lists, 1 would indicate the nested List, whereas 2 would indicate the element of the nested List)
Returns:
the generic type, or null if none

getMapValueReturnType

public static Class getMapValueReturnType(Method method)
Determine the generic value type of the given Map return type.

Parameters:
method - the method to check the return type for
Returns:
the generic type, or null if none

getMapValueReturnType

public static Class getMapValueReturnType(Method method,
                                          int nestingLevel)
Determine the generic value type of the given Map return type.

Parameters:
method - the method to check the return type for
nestingLevel - the nesting level of the target type (typically 1; e.g. in case of a List of Lists, 1 would indicate the nested List, whereas 2 would indicate the element of the nested List)
Returns:
the generic type, or null if none


Copyright © 2002-2008 The Spring Framework.