org.simantics.databoard.binding.reflection
Class AsmBindingClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by org.simantics.databoard.binding.reflection.AsmBindingClassLoader
All Implemented Interfaces:
org.objectweb.asm.Opcodes

public class AsmBindingClassLoader
extends java.lang.ClassLoader
implements org.objectweb.asm.Opcodes


Field Summary
 
Fields inherited from interface org.objectweb.asm.Opcodes
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEDYNAMIC_OWNER, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7
 
Constructor Summary
AsmBindingClassLoader()
           
AsmBindingClassLoader(java.lang.ClassLoader parent)
           
 
Method Summary
static void box(org.objectweb.asm.MethodVisitor mv, java.lang.Class<?> clazz)
           
static void boxTo(org.objectweb.asm.MethodVisitor mv, java.lang.Class<?> clazz)
           
 byte[] createBindingClass(ClassInfo ci, java.lang.String bindingClassName)
           
static org.objectweb.asm.Label[] createFieldLabels(ClassInfo ci)
           
 java.lang.Class<?> getBindingClass(java.lang.Class<?> targetClass)
           
static java.lang.Class<?> getBoxClass(java.lang.Class<?> clazz)
          Get respective boxed class
static java.lang.Class<?> getPrimitiveClass(java.lang.Class<?> clazz)
          Get respective primitive class
static boolean isPrimitive(java.lang.Class<?> clazz)
           
 java.lang.String toBindingClassName(java.lang.String targetClassName)
           
static java.lang.String toClassCanonicalName(java.lang.Class<?> clazz)
           
 java.lang.String toTargetClassName(java.lang.String bindingClassName)
           
static java.lang.String toTypeDescriptor(java.lang.Class<?> clazz)
           
static void unbox(org.objectweb.asm.MethodVisitor mv, java.lang.Class<?> clazz)
           
static void unboxFrom(org.objectweb.asm.MethodVisitor mv, java.lang.Class<?> clazz)
           
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AsmBindingClassLoader

public AsmBindingClassLoader()

AsmBindingClassLoader

public AsmBindingClassLoader(java.lang.ClassLoader parent)
Method Detail

toBindingClassName

public java.lang.String toBindingClassName(java.lang.String targetClassName)

toTargetClassName

public java.lang.String toTargetClassName(java.lang.String bindingClassName)

getBindingClass

public java.lang.Class<?> getBindingClass(java.lang.Class<?> targetClass)
                                   throws java.lang.ClassNotFoundException
Throws:
java.lang.ClassNotFoundException

createBindingClass

public byte[] createBindingClass(ClassInfo ci,
                                 java.lang.String bindingClassName)

createFieldLabels

public static org.objectweb.asm.Label[] createFieldLabels(ClassInfo ci)

toTypeDescriptor

public static java.lang.String toTypeDescriptor(java.lang.Class<?> clazz)

getBoxClass

public static java.lang.Class<?> getBoxClass(java.lang.Class<?> clazz)
Get respective boxed class

Parameters:
clazz -
Returns:

getPrimitiveClass

public static java.lang.Class<?> getPrimitiveClass(java.lang.Class<?> clazz)
Get respective primitive class

Parameters:
clazz -
Returns:

isPrimitive

public static boolean isPrimitive(java.lang.Class<?> clazz)

unbox

public static void unbox(org.objectweb.asm.MethodVisitor mv,
                         java.lang.Class<?> clazz)

box

public static void box(org.objectweb.asm.MethodVisitor mv,
                       java.lang.Class<?> clazz)

boxTo

public static void boxTo(org.objectweb.asm.MethodVisitor mv,
                         java.lang.Class<?> clazz)

unboxFrom

public static void unboxFrom(org.objectweb.asm.MethodVisitor mv,
                             java.lang.Class<?> clazz)

toClassCanonicalName

public static java.lang.String toClassCanonicalName(java.lang.Class<?> clazz)