public final class CollectionFactory extends Object
Mainly for internal use within the framework.
Modifier and Type | Method and Description |
---|---|
static <E> Collection<E> |
createApproximateCollection(Object collection,
int capacity)
Create the most approximate collection for the given collection.
|
static <K,V> Map<K,V> |
createApproximateMap(Object map,
int capacity)
Create the most approximate map for the given map.
|
static <E> Collection<E> |
createCollection(Class<?> collectionType,
Class<?> elementType,
int capacity)
Create the most appropriate collection for the given collection type.
|
static <E> Collection<E> |
createCollection(Class<?> collectionType,
int capacity)
Create the most appropriate collection for the given collection type.
|
static <K,V> Map<K,V> |
createMap(Class<?> mapType,
Class<?> keyType,
int capacity)
Create the most appropriate map for the given map type.
|
static <K,V> Map<K,V> |
createMap(Class<?> mapType,
int capacity)
Create the most appropriate map for the given map type.
|
static Properties |
createStringAdaptingProperties()
Create a variant of
java.util.Properties that automatically adapts
non-String values to String representations on Properties.getProperty(java.lang.String) . |
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.
|
public static boolean isApproximableCollectionType(@Nullable Class<?> collectionType)
createApproximateCollection(java.lang.Object, int)
can approximate.collectionType
- the collection type to checktrue
if the type is approximablepublic static <E> Collection<E> createApproximateCollection(@Nullable Object collection, int capacity)
Warning: Since the parameterized type E
is
not bound to the type of elements contained in the supplied
collection
, type safety cannot be guaranteed if the supplied
collection
is an EnumSet
. In such scenarios, the caller
is responsible for ensuring that the element type for the supplied
collection
is an enum type matching type E
. As an
alternative, the caller may wish to treat the return value as a raw
collection or collection of Object
.
collection
- the original collection object, potentially null
capacity
- the initial capacityisApproximableCollectionType(java.lang.Class<?>)
,
LinkedList
,
ArrayList
,
EnumSet
,
TreeSet
,
LinkedHashSet
public static <E> Collection<E> createCollection(Class<?> collectionType, int capacity)
Delegates to createCollection(Class, Class, int)
with a
null
element type.
collectionType
- the desired type of the target collection (never null
)capacity
- the initial capacityIllegalArgumentException
- if the supplied collectionType
is null
or of type EnumSet
public static <E> Collection<E> createCollection(Class<?> collectionType, @Nullable Class<?> elementType, int capacity)
Warning: Since the parameterized type E
is
not bound to the supplied elementType
, type safety cannot be
guaranteed if the desired collectionType
is EnumSet
.
In such scenarios, the caller is responsible for ensuring that the
supplied elementType
is an enum type matching type E
.
As an alternative, the caller may wish to treat the return value as a
raw collection or collection of Object
.
collectionType
- the desired type of the target collection (never null
)elementType
- the collection's element type, or null
if unknown
(note: only relevant for EnumSet
creation)capacity
- the initial capacityIllegalArgumentException
- if the supplied collectionType
is
null
; or if the desired collectionType
is EnumSet
and
the supplied elementType
is not a subtype of Enum
LinkedHashSet
,
ArrayList
,
TreeSet
,
EnumSet
public static boolean isApproximableMapType(@Nullable Class<?> mapType)
createApproximateMap(java.lang.Object, int)
can approximate.mapType
- the map type to checktrue
if the type is approximablepublic static <K,V> Map<K,V> createApproximateMap(@Nullable Object map, int capacity)
Warning: Since the parameterized type K
is
not bound to the type of keys contained in the supplied map
,
type safety cannot be guaranteed if the supplied map
is an
EnumMap
. In such scenarios, the caller is responsible for
ensuring that the key type in the supplied map
is an enum type
matching type K
. As an alternative, the caller may wish to
treat the return value as a raw map or map keyed by Object
.
map
- the original map object, potentially null
capacity
- the initial capacityisApproximableMapType(java.lang.Class<?>)
,
EnumMap
,
TreeMap
,
LinkedHashMap
public static <K,V> Map<K,V> createMap(Class<?> mapType, int capacity)
Delegates to createMap(Class, Class, int)
with a
null
key type.
mapType
- the desired type of the target mapcapacity
- the initial capacityIllegalArgumentException
- if the supplied mapType
is
null
or of type EnumMap
public static <K,V> Map<K,V> createMap(Class<?> mapType, @Nullable Class<?> keyType, int capacity)
Warning: Since the parameterized type K
is not bound to the supplied keyType
, type safety cannot be
guaranteed if the desired mapType
is EnumMap
. In such
scenarios, the caller is responsible for ensuring that the keyType
is an enum type matching type K
. As an alternative, the caller
may wish to treat the return value as a raw map or map keyed by
Object
. Similarly, type safety cannot be enforced if the
desired mapType
is MultiValueMap
.
mapType
- the desired type of the target map (never null
)keyType
- the map's key type, or null
if unknown
(note: only relevant for EnumMap
creation)capacity
- the initial capacityIllegalArgumentException
- if the supplied mapType
is
null
; or if the desired mapType
is EnumMap
and
the supplied keyType
is not a subtype of Enum
LinkedHashMap
,
TreeMap
,
LinkedMultiValueMap
,
EnumMap
public static Properties createStringAdaptingProperties()
java.util.Properties
that automatically adapts
non-String values to String representations on Properties.getProperty(java.lang.String)
.Properties
instance