All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.pojomatic.internal.Primitives Maven / Gradle / Ivy

Go to download

Automatically provides configurable implementations of the equals(Object), hashCode() and toString() methods inherited from java.lang.Object

There is a newer version: 2.2.1
Show newest version
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 wrapperClass, Integer opcode) {
    WRAPPER_CLASSES.put(clazz, wrapperClass);
    OPCODES.put(clazz, opcode);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy