org.springframework.core
Class CollectionFactory

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

public abstract class CollectionFactory
extends Object

Factory for collections, being aware of Java 5 and Java 6 collections. Mainly for internal use within the framework.

The goal of this class is to avoid runtime dependencies on a specific Java version, while nevertheless using the best collection implementation that is available at runtime.

Since:
1.1.1
Author:
Juergen Hoeller, Arjen Poutsma

Constructor Summary
CollectionFactory()
           
 
Method Summary
static Collection createApproximateCollection(Object collection, int initialCapacity)
          Create the most approximate collection for the given collection.
static Map createApproximateMap(Object map, int initialCapacity)
          Create the most approximate map for the given map.
static Collection createCollection(Class<?> collectionType, int initialCapacity)
          Create the most appropriate collection for the given collection type.
static ConcurrentMap createConcurrentMap(int initialCapacity)
          Deprecated. as of Spring 3.0, for usage on JDK 1.5 or higher
static Map createConcurrentMapIfPossible(int initialCapacity)
          Deprecated. as of Spring 3.0, for usage on JDK 1.5 or higher
static
<T> Set<T>
createCopyOnWriteSet()
          Deprecated. as of Spring 3.0, for usage on JDK 1.5 or higher
static Map createIdentityMapIfPossible(int initialCapacity)
          Deprecated. as of Spring 2.5, for usage on JDK 1.4 or higher
static Map createLinkedCaseInsensitiveMapIfPossible(int initialCapacity)
          Deprecated. as of Spring 3.0, for usage on JDK 1.5 or higher
static
<K,V> Map<K,V>
createLinkedMapIfPossible(int initialCapacity)
          Deprecated. as of Spring 2.5, for usage on JDK 1.4 or higher
static
<T> Set<T>
createLinkedSetIfPossible(int initialCapacity)
          Deprecated. as of Spring 2.5, for usage on JDK 1.4 or higher
static Map createMap(Class<?> mapType, int initialCapacity)
          Create the most approximate map for the given map.
static boolean isApproximableCollectionType(Class<?> collectionType)
          Determine whether the given collection type is an approximable type, i.e.
static boolean isApproximableMapType(Class<?> mapType)
          Determine whether the given map type is an approximable type, i.e.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CollectionFactory

public CollectionFactory()
Method Detail

createLinkedSetIfPossible

@Deprecated
public static <T> Set<T> createLinkedSetIfPossible(int initialCapacity)
Deprecated. as of Spring 2.5, for usage on JDK 1.4 or higher

Create a linked Set if possible: This implementation always creates a LinkedHashSet, since Spring 2.5 requires JDK 1.4 anyway.

Parameters:
initialCapacity - the initial capacity of the Set
Returns:
the new Set instance

createCopyOnWriteSet

@Deprecated
public static <T> Set<T> createCopyOnWriteSet()
Deprecated. as of Spring 3.0, for usage on JDK 1.5 or higher

Create a copy-on-write Set (allowing for synchronization-less iteration) if possible: This implementation always creates a CopyOnWriteArraySet, since Spring 3 requires JDK 1.5 anyway.

Returns:
the new Set instance

createLinkedMapIfPossible

@Deprecated
public static <K,V> Map<K,V> createLinkedMapIfPossible(int initialCapacity)
Deprecated. as of Spring 2.5, for usage on JDK 1.4 or higher

Create a linked Map if possible: This implementation always creates a LinkedHashMap, since Spring 2.5 requires JDK 1.4 anyway.

Parameters:
initialCapacity - the initial capacity of the Map
Returns:
the new Map instance

createLinkedCaseInsensitiveMapIfPossible

@Deprecated
public static Map createLinkedCaseInsensitiveMapIfPossible(int initialCapacity)
Deprecated. as of Spring 3.0, for usage on JDK 1.5 or higher

Create a linked case-insensitive Map if possible: This implementation always returns a LinkedCaseInsensitiveMap.

Parameters:
initialCapacity - the initial capacity of the Map
Returns:
the new Map instance

createIdentityMapIfPossible

@Deprecated
public static Map createIdentityMapIfPossible(int initialCapacity)
Deprecated. as of Spring 2.5, for usage on JDK 1.4 or higher

Create an identity Map if possible: This implementation always creates a IdentityHashMap, since Spring 2.5 requires JDK 1.4 anyway.

Parameters:
initialCapacity - the initial capacity of the Map
Returns:
the new Map instance

createConcurrentMapIfPossible

@Deprecated
public static Map createConcurrentMapIfPossible(int initialCapacity)
Deprecated. as of Spring 3.0, for usage on JDK 1.5 or higher

Create a concurrent Map if possible: This implementation always creates a ConcurrentHashMap, since Spring 3.0 requires JDK 1.5 anyway.

Parameters:
initialCapacity - the initial capacity of the Map
Returns:
the new Map instance

createConcurrentMap

@Deprecated
public static ConcurrentMap createConcurrentMap(int initialCapacity)
Deprecated. as of Spring 3.0, for usage on JDK 1.5 or higher

Create a concurrent Map with a dedicated ConcurrentMap interface: This implementation always creates a ConcurrentHashMap, since Spring 3.0 requires JDK 1.5 anyway.

Parameters:
initialCapacity - the initial capacity of the Map
Returns:
the new ConcurrentMap instance

isApproximableCollectionType

public static boolean isApproximableCollectionType(Class<?> collectionType)
Determine whether the given collection type is an approximable type, i.e. a type that createApproximateCollection(java.lang.Object, int) can approximate.

Parameters:
collectionType - the collection type to check
Returns:
true if the type is approximable, false if it is not

createApproximateCollection

public static Collection createApproximateCollection(Object collection,
                                                     int initialCapacity)
Create the most approximate collection for the given collection.

Creates an ArrayList, TreeSet or linked Set for a List, SortedSet or Set, respectively.

Parameters:
collection - the original Collection object
initialCapacity - the initial capacity
Returns:
the new Collection instance
See Also:
ArrayList, TreeSet, LinkedHashSet

createCollection

public static Collection createCollection(Class<?> collectionType,
                                          int initialCapacity)
Create the most appropriate collection for the given collection type.

Creates an ArrayList, TreeSet or linked Set for a List, SortedSet or Set, respectively.

Parameters:
collectionType - the desired type of the target Collection
initialCapacity - the initial capacity
Returns:
the new Collection instance
See Also:
ArrayList, TreeSet, LinkedHashSet

isApproximableMapType

public static boolean isApproximableMapType(Class<?> mapType)
Determine whether the given map type is an approximable type, i.e. a type that createApproximateMap(java.lang.Object, int) can approximate.

Parameters:
mapType - the map type to check
Returns:
true if the type is approximable, false if it is not

createApproximateMap

public static Map createApproximateMap(Object map,
                                       int initialCapacity)
Create the most approximate map for the given map.

Creates a TreeMap or linked Map for a SortedMap or Map, respectively.

Parameters:
map - the original Map object
initialCapacity - the initial capacity
Returns:
the new Map instance
See Also:
TreeMap, LinkedHashMap

createMap

public static Map createMap(Class<?> mapType,
                            int initialCapacity)
Create the most approximate map for the given map.

Creates a TreeMap or linked Map for a SortedMap or Map, respectively.

Parameters:
collectionType - the desired type of the target Map
initialCapacity - the initial capacity
Returns:
the new Map instance
See Also:
TreeMap, LinkedHashMap