Package org.spongepowered.api.util
Class Coerce
- java.lang.Object
-
- org.spongepowered.api.util.Coerce
-
public final class Coerce extends Object
Utility class for coercing unknown values to specific target types.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Optional<Boolean>asBoolean(@Nullable Object obj)Gets the given object as aBoolean.static Optional<Byte>asByte(@Nullable Object obj)Gets the given object as aByte.static Optional<Character>asChar(@Nullable Object obj)Gets the given object as aCharacter.static Optional<Double>asDouble(@Nullable Object obj)Gets the given object as aDouble.static Optional<Float>asFloat(@Nullable Object obj)Gets the given object as aFloat.static Optional<Integer>asInteger(@Nullable Object obj)Gets the given object as aInteger.static Optional<List<?>>asList(@Nullable Object obj)Gets the given object as aList.static Optional<Long>asLong(@Nullable Object obj)Gets the given object as aLong.static Optional<Short>asShort(@Nullable Object obj)Gets the given object as aShort.static Optional<String>asString(@Nullable Object obj)Gets the given object as aString.static booleantoBoolean(@Nullable Object obj)Coerce the supplied object to a boolean, matches strings such as "yes" as well as literal boolean values.static bytetoByte(@Nullable Object obj)Coerce the supplied object to a byte number, parse it if necessary.static chartoChar(@Nullable Object obj)Coerce the supplied object to a character, parse it if necessary.static doubletoDouble(@Nullable Object obj)Coerce the supplied object to a double-precision floating-point number, parse it if necessary.static <E extends Enum<E>>
EtoEnum(@Nullable Object obj, Class<E> enumClass)Coerce the specified object to an enum of the supplied type, returns the first enum constant in the enum if parsing fails.static <E extends Enum<E>>
EtoEnum(@Nullable Object obj, Class<E> enumClass, E defaultValue)Coerce the specified object to an enum of the supplied type, returns the specified default value if parsing fails.static floattoFloat(@Nullable Object obj)Coerce the supplied object to a single-precision floating-point number, parse it if necessary.static inttoInteger(@Nullable Object obj)Coerce the supplied object to an integer, parse it if necessary.static List<?>toList(@Nullable Object obj)Coerce the supplied object to a list.static <T> List<T>toListOf(@Nullable Object obj, Class<T> ofClass)Coerce the specified object to a list containing only objects of type specified byofClass.static longtoLong(@Nullable Object obj)Coerce the supplied object to a long number, parse it if necessary.static <T> TtoPseudoEnum(@Nullable Object obj, Class<T> pseudoEnumClass, Class<?> dictionaryClass, T defaultValue)Coerce the specified object to the specified pseudo-enum type using the supplied pseudo-enum dictionary class.static shorttoShort(@Nullable Object obj)Coerce the supplied object to a short number, parse it if necessary.static StringtoString(@Nullable Object obj)Coerce the supplied object to a string.static Vector2itoVector2i(@Nullable Object obj)Coerce the supplied object to a Vector2i.
-
-
-
Method Detail
-
toString
public static String toString(@Nullable Object obj)
Coerce the supplied object to a string.- Parameters:
obj- Object to coerce- Returns:
- Object as a string, empty string if the object is null
-
asString
public static Optional<String> asString(@Nullable Object obj)
Gets the given object as aString.- Parameters:
obj- The object to translate- Returns:
- The string value, if available
-
toList
public static List<?> toList(@Nullable Object obj)
Coerce the supplied object to a list. Accepts lists and all types of 1D arrays. Also (naively) supports lists in Strings in a format like{1,2,3,I,am,a,list}- Parameters:
obj- Object to coerce- Returns:
- Some kind of List filled with unimaginable horrors
-
asList
public static Optional<List<?>> asList(@Nullable Object obj)
Gets the given object as aList.- Parameters:
obj- The object to translate- Returns:
- The list, if available
-
toListOf
public static <T> List<T> toListOf(@Nullable Object obj, Class<T> ofClass)
Coerce the specified object to a list containing only objects of type specified byofClass. Also coerces list values where possible.- Type Parameters:
T- type of list (notional)- Parameters:
obj- Object to coerceofClass- Class to coerce to- Returns:
- List of coerced values
-
toBoolean
public static boolean toBoolean(@Nullable Object obj)
Coerce the supplied object to a boolean, matches strings such as "yes" as well as literal boolean values.- Parameters:
obj- Object to coerce- Returns:
- Object as a boolean,
falseif the object is null
-
asBoolean
public static Optional<Boolean> asBoolean(@Nullable Object obj)
Gets the given object as aBoolean.- Parameters:
obj- The object to translate- Returns:
- The boolean, if available
-
toInteger
public static int toInteger(@Nullable Object obj)
Coerce the supplied object to an integer, parse it if necessary.- Parameters:
obj- Object to coerce- Returns:
- Object as an integer,
0if the object is null or cannot be parsed
-
asInteger
public static Optional<Integer> asInteger(@Nullable Object obj)
Gets the given object as aInteger.Note that this does not translate numbers spelled out as strings.
- Parameters:
obj- The object to translate- Returns:
- The integer value, if available
-
toDouble
public static double toDouble(@Nullable Object obj)
Coerce the supplied object to a double-precision floating-point number, parse it if necessary.- Parameters:
obj- Object to coerce- Returns:
- Object as a double,
0.0if the object is null or cannot be parsed
-
asDouble
public static Optional<Double> asDouble(@Nullable Object obj)
Gets the given object as aDouble.Note that this does not translate numbers spelled out as strings.
- Parameters:
obj- The object to translate- Returns:
- The double value, if available
-
toFloat
public static float toFloat(@Nullable Object obj)
Coerce the supplied object to a single-precision floating-point number, parse it if necessary.- Parameters:
obj- Object to coerce- Returns:
- Object as a float,
0.0if the object is null or cannot be parsed
-
asFloat
public static Optional<Float> asFloat(@Nullable Object obj)
Gets the given object as aFloat.Note that this does not translate numbers spelled out as strings.
- Parameters:
obj- The object to translate- Returns:
- The float value, if available
-
toShort
public static short toShort(@Nullable Object obj)
Coerce the supplied object to a short number, parse it if necessary.- Parameters:
obj- Object to coerce- Returns:
- Object as a short,
0if the object is null or cannot be parsed
-
asShort
public static Optional<Short> asShort(@Nullable Object obj)
Gets the given object as aShort.Note that this does not translate numbers spelled out as strings.
- Parameters:
obj- The object to translate- Returns:
- The short value, if available
-
toByte
public static byte toByte(@Nullable Object obj)
Coerce the supplied object to a byte number, parse it if necessary.- Parameters:
obj- Object to coerce- Returns:
- Object as a byte,
0if the object is null or cannot be parsed
-
asByte
public static Optional<Byte> asByte(@Nullable Object obj)
Gets the given object as aByte.Note that this does not translate numbers spelled out as strings.
- Parameters:
obj- The object to translate- Returns:
- The byte value, if available
-
toLong
public static long toLong(@Nullable Object obj)
Coerce the supplied object to a long number, parse it if necessary.- Parameters:
obj- Object to coerce- Returns:
- Object as a long,
0if the object is null or cannot be parsed
-
asLong
public static Optional<Long> asLong(@Nullable Object obj)
Gets the given object as aLong.Note that this does not translate numbers spelled out as strings.
- Parameters:
obj- The object to translate- Returns:
- The long value, if available
-
toChar
public static char toChar(@Nullable Object obj)
Coerce the supplied object to a character, parse it if necessary.- Parameters:
obj- Object to coerce- Returns:
- Object as a character,
' 'if the object is null or cannot be parsed
-
asChar
public static Optional<Character> asChar(@Nullable Object obj)
Gets the given object as aCharacter.- Parameters:
obj- The object to translate- Returns:
- The character, if available
-
toEnum
public static <E extends Enum<E>> E toEnum(@Nullable Object obj, Class<E> enumClass)
Coerce the specified object to an enum of the supplied type, returns the first enum constant in the enum if parsing fails.- Type Parameters:
E- enum type- Parameters:
obj- Object to coerceenumClass- Enum class to coerce to- Returns:
- Coerced enum value
-
toEnum
public static <E extends Enum<E>> E toEnum(@Nullable Object obj, Class<E> enumClass, E defaultValue)
Coerce the specified object to an enum of the supplied type, returns the specified default value if parsing fails.- Type Parameters:
E- enum type- Parameters:
obj- Object to coerceenumClass- Enum class to coerce todefaultValue- default value to return if coercion fails- Returns:
- Coerced enum value
-
toPseudoEnum
public static <T> T toPseudoEnum(@Nullable Object obj, Class<T> pseudoEnumClass, Class<?> dictionaryClass, T defaultValue)
Coerce the specified object to the specified pseudo-enum type using the supplied pseudo-enum dictionary class.- Type Parameters:
T- pseudo-enum type- Parameters:
obj- Object to coercepseudoEnumClass- The pseudo-enum classdictionaryClass- Pseudo-enum dictionary class to look indefaultValue- Value to return if lookup fails- Returns:
- Coerced value or default if coercion fails
-
-