Minestom/src/main/java/net/minestom/server/utils/PrimitiveConversion.java

65 lines
2.4 KiB
Java
Raw Normal View History

2020-04-24 03:25:58 +02:00
package net.minestom.server.utils;
2019-09-07 11:42:33 +02:00
import java.util.HashMap;
import java.util.Map;
2019-09-07 11:42:33 +02:00
public class PrimitiveConversion {
private static Map<Class, Class> primitiveToBoxedTypeMap = new HashMap<>();
static {
// Primitive
primitiveToBoxedTypeMap.put(boolean.class, Boolean.class);
primitiveToBoxedTypeMap.put(byte.class, Byte.class);
primitiveToBoxedTypeMap.put(char.class, Character.class);
primitiveToBoxedTypeMap.put(short.class, Short.class);
primitiveToBoxedTypeMap.put(int.class, Integer.class);
primitiveToBoxedTypeMap.put(long.class, Long.class);
primitiveToBoxedTypeMap.put(float.class, Float.class);
primitiveToBoxedTypeMap.put(double.class, Double.class);
// Primitive one dimension array
primitiveToBoxedTypeMap.put(boolean[].class, Boolean[].class);
primitiveToBoxedTypeMap.put(byte[].class, Byte[].class);
primitiveToBoxedTypeMap.put(char[].class, Character[].class);
primitiveToBoxedTypeMap.put(short[].class, Short[].class);
primitiveToBoxedTypeMap.put(int[].class, Integer[].class);
primitiveToBoxedTypeMap.put(long[].class, Long[].class);
primitiveToBoxedTypeMap.put(float[].class, Float[].class);
primitiveToBoxedTypeMap.put(double[].class, Double[].class);
}
/**
* Converts primitive types to their boxed version.
* <p>
* Used to avoid needing to double-check everything
*
* @param clazz the class to convert
* @return the boxed class type of the primitive one, {@code clazz} otherwise
*/
2019-09-07 11:42:33 +02:00
public static Class getObjectClass(Class clazz) {
return primitiveToBoxedTypeMap.getOrDefault(clazz, clazz);
2019-09-07 11:42:33 +02:00
}
2019-09-15 13:42:36 +02:00
public static String getObjectClassString(String clazz) {
2020-08-19 01:24:51 +02:00
if (clazz.equals("boolean"))
2019-09-15 13:42:36 +02:00
return "java.lang.Boolean";
2020-08-19 01:24:51 +02:00
if (clazz.equals("byte"))
2019-09-15 13:42:36 +02:00
return "java.lang.Byte";
2020-08-19 01:24:51 +02:00
if (clazz.equals("char"))
2019-09-15 13:42:36 +02:00
return "java.lang.Character";
2020-08-19 01:24:51 +02:00
if (clazz.equals("short"))
2019-09-15 13:42:36 +02:00
return "java.lang.Short";
2020-08-19 01:24:51 +02:00
if (clazz.equals("int"))
2019-09-15 13:42:36 +02:00
return "java.lang.Integer";
2020-08-19 01:24:51 +02:00
if (clazz.equals("long"))
2019-09-15 13:42:36 +02:00
return "java.lang.Long";
2020-08-19 01:24:51 +02:00
if (clazz.equals("float"))
2019-09-15 13:42:36 +02:00
return "java.lang.Float";
2020-08-19 01:24:51 +02:00
if (clazz.equals("double"))
2019-09-15 13:42:36 +02:00
return "java.lang.Double";
return clazz;
}
2019-09-07 11:42:33 +02:00
}