
org.pojomatic.internal.Primitives Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pojomatic Show documentation
Show all versions of pojomatic Show documentation
Automatically provides configurable implementations of the
equals(Object), hashCode() and toString() methods inherited from java.lang.Object
package org.pojomatic.internal;
import java.util.HashMap;
import java.util.Map;
import org.kohsuke.asm5.Opcodes;
class Primitives {
private final static Map, Class>> WRAPPER_CLASSES = new HashMap<>();
private final static Map, Integer> OPCODES = new HashMap<>();
static {
register(void.class, Void.class, Opcodes.NULL);
register(boolean.class, Boolean.class, Opcodes.INTEGER);
register(byte.class, Byte.class, Opcodes.INTEGER);
register(char.class, Character.class, Opcodes.INTEGER);
register(short.class, Short.class, Opcodes.INTEGER);
register(int.class, Integer.class, Opcodes.INTEGER);
register(long.class, Long.class, Opcodes.LONG);
register(float.class, Float.class, Opcodes.FLOAT);
register(double.class, Double.class, Opcodes.DOUBLE);
}
static Class> getWrapperClass(Class> primitiveClass) {
return WRAPPER_CLASSES.get(primitiveClass);
}
static Integer getOpcode(Class> primitiveClass) {
Integer retval = OPCODES.get(primitiveClass);
if (retval == null) {
System.err.println("null for " + primitiveClass);
Thread.dumpStack();
}
return retval;
}
private static void register(Class clazz, Class extends T> wrapperClass, Integer opcode) {
WRAPPER_CLASSES.put(clazz, wrapperClass);
OPCODES.put(clazz, opcode);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy