Class EnumUtils
#ThreadSafe#
- Since:
- 3.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <E extends Enum<E>>
longgenerateBitVector
(Class<E> enumClass, E... values) Creates a long bit vector representation of the given array of Enum values.static <E extends Enum<E>>
longgenerateBitVector
(Class<E> enumClass, Iterable<? extends E> values) Creates a long bit vector representation of the given subset of an Enum.static <E extends Enum<E>>
long[]generateBitVectors
(Class<E> enumClass, E... values) Creates a bit vector representation of the given subset of an Enum using as manylong
s as needed.static <E extends Enum<E>>
long[]generateBitVectors
(Class<E> enumClass, Iterable<? extends E> values) Creates a bit vector representation of the given subset of an Enum using as manylong
s as needed.static <E extends Enum<E>>
EGets the enum for the class, returningnull
if not found.static <E extends Enum<E>>
EGets the enum for the class, returningdefaultEnum
if not found.static <E extends Enum<E>>
EgetEnumIgnoreCase
(Class<E> enumClass, String enumName) Gets the enum for the class, returningnull
if not found.static <E extends Enum<E>>
EgetEnumIgnoreCase
(Class<E> enumClass, String enumName, E defaultEnum) Gets the enum for the class, returningdefaultEnum
if not found.getEnumList
(Class<E> enumClass) Gets theList
of enums.getEnumMap
(Class<E> enumClass) Gets theMap
of enums by name.getEnumMap
(Class<E> enumClass, Function<E, K> keyFunction) Gets theMap
of enums by name.static <E extends Enum<E>>
EgetEnumSystemProperty
(Class<E> enumClass, String propName, E defaultEnum) Gets the enum for the class in a system property, returningdefaultEnum
if not found.static <E extends Enum<E>>
EgetFirstEnum
(Class<E> enumClass, int value, ToIntFunction<E> toIntFunction, E defaultEnum) Gets the enum for the class and value, returningdefaultEnum
if not found.static <E extends Enum<E>>
EgetFirstEnumIgnoreCase
(Class<E> enumClass, String enumName, Function<E, String> stringFunction, E defaultEnum) Gets the enum for the class, returningdefaultEnum
if not found.static <E extends Enum<E>>
booleanisValidEnum
(Class<E> enumClass, String enumName) Checks if the specified name is a valid enum for the class.static <E extends Enum<E>>
booleanisValidEnumIgnoreCase
(Class<E> enumClass, String enumName) Checks if the specified name is a valid enum for the class.processBitVector
(Class<E> enumClass, long value) Convert a long value created bygenerateBitVector(java.lang.Class<E>, E...)
into the set of enum values that it represents.processBitVectors
(Class<E> enumClass, long... values) Convert along[]
created bygenerateBitVectors(java.lang.Class<E>, E...)
into the set of enum values that it represents.static <T> Stream
<T> Returns a sequential ordered stream whose elements are the given class' enum values.
-
Constructor Details
-
EnumUtils
Deprecated.TODO Make private in 4.0.This constructor is public to permit tools that require a JavaBean instance to operate.
-
-
Method Details
-
generateBitVector
@SafeVarargs public static <E extends Enum<E>> long generateBitVector(Class<E> enumClass, E... values) Creates a long bit vector representation of the given array of Enum values.This generates a value that is usable by
processBitVector(java.lang.Class<E>, long)
.Do not use this method if you have more than 64 values in your Enum, as this would create a value greater than a long can hold.
- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum we are working with, notnull
.values
- the values we want to convert, notnull
.- Returns:
- a long whose value provides a binary representation of the given set of enum values.
- Throws:
NullPointerException
- ifenumClass
orvalues
isnull
.IllegalArgumentException
- ifenumClass
is not an enum class or has more than 64 values.- Since:
- 3.0.1
- See Also:
-
generateBitVector
public static <E extends Enum<E>> long generateBitVector(Class<E> enumClass, Iterable<? extends E> values) Creates a long bit vector representation of the given subset of an Enum.This generates a value that is usable by
processBitVector(java.lang.Class<E>, long)
.Do not use this method if you have more than 64 values in your Enum, as this would create a value greater than a long can hold.
- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum we are working with, notnull
.values
- the values we want to convert, notnull
, neither containingnull
.- Returns:
- a long whose value provides a binary representation of the given set of enum values.
- Throws:
NullPointerException
- ifenumClass
orvalues
isnull
.IllegalArgumentException
- ifenumClass
is not an enum class or has more than 64 values, or if anyvalues
null
.- Since:
- 3.0.1
- See Also:
-
generateBitVectors
@SafeVarargs public static <E extends Enum<E>> long[] generateBitVectors(Class<E> enumClass, E... values) Creates a bit vector representation of the given subset of an Enum using as manylong
s as needed.This generates a value that is usable by
processBitVectors(java.lang.Class<E>, long...)
.Use this method if you have more than 64 values in your Enum.
- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum we are working with, notnull
.values
- the values we want to convert, notnull
, neither containingnull
.- Returns:
- a long[] whose values provide a binary representation of the given set of enum values with the least significant digits rightmost.
- Throws:
NullPointerException
- ifenumClass
orvalues
isnull
.IllegalArgumentException
- ifenumClass
is not an enum class, or if anyvalues
null
.- Since:
- 3.2
-
generateBitVectors
public static <E extends Enum<E>> long[] generateBitVectors(Class<E> enumClass, Iterable<? extends E> values) Creates a bit vector representation of the given subset of an Enum using as manylong
s as needed.This generates a value that is usable by
processBitVectors(java.lang.Class<E>, long...)
.Use this method if you have more than 64 values in your Enum.
- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum we are working with, notnull
.values
- the values we want to convert, notnull
, neither containingnull
.- Returns:
- a long[] whose values provide a binary representation of the given set of enum values with the least significant digits rightmost.
- Throws:
NullPointerException
- ifenumClass
orvalues
isnull
.IllegalArgumentException
- ifenumClass
is not an enum class, or if anyvalues
null
.- Since:
- 3.2
-
getEnum
Gets the enum for the class, returningnull
if not found.This method differs from
Enum.valueOf(java.lang.Class<T>, java.lang.String)
in that it does not throw an exception for an invalid enum name.- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum to query, not null.enumName
- the enum name, null returns null.- Returns:
- the enum, null if not found.
-
getEnum
Gets the enum for the class, returningdefaultEnum
if not found.This method differs from
Enum.valueOf(java.lang.Class<T>, java.lang.String)
in that it does not throw an exception for an invalid enum name.- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum to query, null returns default enum.enumName
- the enum name, null returns default enum.defaultEnum
- the default enum.- Returns:
- the enum, default enum if not found.
- Since:
- 3.10
-
getEnumIgnoreCase
Gets the enum for the class, returningnull
if not found.This method differs from
Enum.valueOf(java.lang.Class<T>, java.lang.String)
in that it does not throw an exception for an invalid enum name and performs case insensitive matching of the name.- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum to query, may be null.enumName
- the enum name, null returns null.- Returns:
- the enum, null if not found.
- Since:
- 3.8
-
getEnumIgnoreCase
public static <E extends Enum<E>> E getEnumIgnoreCase(Class<E> enumClass, String enumName, E defaultEnum) Gets the enum for the class, returningdefaultEnum
if not found.This method differs from
Enum.valueOf(java.lang.Class<T>, java.lang.String)
in that it does not throw an exception for an invalid enum name and performs case insensitive matching of the name.- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum to query, null returns default enum.enumName
- the enum name, null returns default enum.defaultEnum
- the default enum.- Returns:
- the enum, default enum if not found.
- Since:
- 3.10
-
getEnumList
Gets theList
of enums.This method is useful when you need a list of enums rather than an array.
- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum to query, not null.- Returns:
- the modifiable list of enums, never null.
-
getEnumMap
Gets theMap
of enums by name.This method is useful when you need a map of enums by name.
- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum to query, not null.- Returns:
- the modifiable map of enum names to enums, never null.
-
getEnumMap
public static <E extends Enum<E>,K> Map<K,E> getEnumMap(Class<E> enumClass, Function<E, K> keyFunction) Gets theMap
of enums by name.This method is useful when you need a map of enums by name.
- Type Parameters:
E
- the type of enumeration.K
- the type of the map key.- Parameters:
enumClass
- the class of the enum to query, not null.keyFunction
- the function to query for the key, not null.- Returns:
- the modifiable map of enums, never null.
- Since:
- 3.13.0
-
getEnumSystemProperty
public static <E extends Enum<E>> E getEnumSystemProperty(Class<E> enumClass, String propName, E defaultEnum) Gets the enum for the class in a system property, returningdefaultEnum
if not found.This method differs from
Enum.valueOf(java.lang.Class<T>, java.lang.String)
in that it does not throw an exception for an invalid enum name.If a
SecurityException
is caught, the return value isnull
.- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum to query, not null.propName
- the system property key for the enum name, null returns default enum.defaultEnum
- the default enum.- Returns:
- the enum, default enum if not found.
- Since:
- 3.13.0
-
getFirstEnum
public static <E extends Enum<E>> E getFirstEnum(Class<E> enumClass, int value, ToIntFunction<E> toIntFunction, E defaultEnum) Gets the enum for the class and value, returningdefaultEnum
if not found.This method differs from
Enum.valueOf(java.lang.Class<T>, java.lang.String)
in that it does not throw an exception for an invalid enum name and performs case insensitive matching of the name.- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum to query, not null.value
- the enum name, null returns default enum.toIntFunction
- the function that gets an int for an enum for comparison tovalue
.defaultEnum
- the default enum.- Returns:
- an enum, default enum if not found.
- Since:
- 3.18.0
-
getFirstEnumIgnoreCase
public static <E extends Enum<E>> E getFirstEnumIgnoreCase(Class<E> enumClass, String enumName, Function<E, String> stringFunction, E defaultEnum) Gets the enum for the class, returningdefaultEnum
if not found.This method differs from
Enum.valueOf(java.lang.Class<T>, java.lang.String)
in that it does not throw an exception for an invalid enum name and performs case insensitive matching of the name.- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum to query, null returns default enum.enumName
- the enum name, null returns default enum.stringFunction
- the function that gets the string for an enum for comparison toenumName
.defaultEnum
- the default enum.- Returns:
- an enum, default enum if not found.
- Since:
- 3.13.0
-
isValidEnum
Checks if the specified name is a valid enum for the class.This method differs from
Enum.valueOf(java.lang.Class<T>, java.lang.String)
in that it checks if the name is a valid enum without needing to catch the exception.- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum to query, null returns false.enumName
- the enum name, null returns false.- Returns:
- true if the enum name is valid, otherwise false.
-
isValidEnumIgnoreCase
public static <E extends Enum<E>> boolean isValidEnumIgnoreCase(Class<E> enumClass, String enumName) Checks if the specified name is a valid enum for the class.This method differs from
Enum.valueOf(java.lang.Class<T>, java.lang.String)
in that it checks if the name is a valid enum without needing to catch the exception and performs case insensitive matching of the name.- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum to query, null returns false.enumName
- the enum name, null returns false.- Returns:
- true if the enum name is valid, otherwise false.
- Since:
- 3.8
-
processBitVector
Convert a long value created bygenerateBitVector(java.lang.Class<E>, E...)
into the set of enum values that it represents.If you store this value, beware any changes to the enum that would affect ordinal values.
- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum we are working with, notnull
.value
- the long value representation of a set of enum values.- Returns:
- a set of enum values.
- Throws:
NullPointerException
- ifenumClass
isnull
.IllegalArgumentException
- ifenumClass
is not an enum class or has more than 64 values.- Since:
- 3.0.1
-
processBitVectors
Convert along[]
created bygenerateBitVectors(java.lang.Class<E>, E...)
into the set of enum values that it represents.If you store this value, beware any changes to the enum that would affect ordinal values.
- Type Parameters:
E
- the type of the enumeration.- Parameters:
enumClass
- the class of the enum we are working with, notnull
.values
- the long[] bearing the representation of a set of enum values, the least significant digits rightmost, notnull
.- Returns:
- a set of enum values.
- Throws:
NullPointerException
- ifenumClass
isnull
.IllegalArgumentException
- ifenumClass
is not an enum class.- Since:
- 3.2
-
stream
Returns a sequential ordered stream whose elements are the given class' enum values.- Type Parameters:
T
- the type of stream elements.- Parameters:
clazz
- the class containing the enum values, may be null.- Returns:
- the new stream, empty of
clazz
is null. - Since:
- 3.18.0
- See Also:
-