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

org.codehaus.jparsec.misc.Reflection Maven / Gradle / Ivy

There is a newer version: 3.1
Show newest version
package org.codehaus.jparsec.misc;

import java.util.HashMap;
import java.util.Map;

/**
 * Common utility for working with reflection.
 * 
 * @author Ben Yu
 */
final class Reflection {
  
  /** Gets the class name of {@code obj} or "null" if {@code obj} is null. */
  static String getClassName(Object obj) {
    return (obj == null) ? "null" : obj.getClass().getName();
  }
  
  @SuppressWarnings("rawtypes")
  private static final Map WRAPPERS = new HashMap();
  
  private static  void primitive(Class primitive, Class wrapper) {
    WRAPPERS.put(primitive, wrapper);
  }
  
  static {
    primitive(byte.class, Byte.class);
    primitive(short.class, Short.class);
    primitive(int.class, Integer.class);
    primitive(long.class, Long.class);
    primitive(boolean.class, Boolean.class);
    primitive(float.class, Float.class);
    primitive(double.class, Double.class);
    primitive(char.class, Character.class);
    primitive(void.class, Void.class);
  }
  
  static  Class wrapperClass(Class type) {
    @SuppressWarnings("unchecked")
    Class wrapperClass = WRAPPERS.get(type);
    return (wrapperClass == null) ? type : wrapperClass;
  }
  
  static boolean isInstance(Class type, Object obj) {
    return wrapperClass(type).isInstance(obj);
  }
  
  static boolean isAssignable(Class type, Object obj) {
    return obj == null ? !type.isPrimitive() : isInstance(type, obj);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy