org.simantics.databoard.binding.classfactory
Class AsmTypeClassFactory

java.lang.Object
  extended by java.lang.ClassLoader
      extended by org.simantics.databoard.binding.classfactory.AsmTypeClassFactory
All Implemented Interfaces:
org.objectweb.asm.Opcodes, TypeClassSubFactory

public class AsmTypeClassFactory
extends java.lang.ClassLoader
implements org.objectweb.asm.Opcodes, TypeClassSubFactory

This class loader constructs record-like classes of RecordTypes, and Enums / other classes of UnionTypes.


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
AsmTypeClassFactory(TypeClassFactory classFactory)
           
 
Method Summary
 BindingRequest construct(TypeClassFactory mainFactory, Datatype type)
          Construct class from datatype.
 java.lang.Class<?> createEnumClass(UnionType ut)
           
 java.lang.Class<?> createRecordClass(RecordType type)
           
 java.lang.Class<?> createUnionClass(UnionType ut)
           
 void setBeanMaker(boolean makeBean)
          If true, the manufactured classes inherit Bean.
 
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

AsmTypeClassFactory

public AsmTypeClassFactory(TypeClassFactory classFactory)
Method Detail

setBeanMaker

public void setBeanMaker(boolean makeBean)
If true, the manufactured classes inherit Bean.

Parameters:
makeBean -

construct

public BindingRequest construct(TypeClassFactory mainFactory,
                                Datatype type)
                         throws BindingConstructionException
Description copied from interface: TypeClassSubFactory
Construct class from datatype. The implementation may use mainFactory to construct sub-types. Caching results is not necessary nor recommended.

Specified by:
construct in interface TypeClassSubFactory
Returns:
class description or null
Throws:
BindingConstructionException

createRecordClass

public java.lang.Class<?> createRecordClass(RecordType type)
                                     throws BindingConstructionException
Throws:
BindingConstructionException

createEnumClass

public java.lang.Class<?> createEnumClass(UnionType ut)

createUnionClass

public java.lang.Class<?> createUnionClass(UnionType ut)
                                    throws BindingConstructionException
Throws:
BindingConstructionException