org.drools.factmodel.traits
Class TraitFactory<T extends Thing<K>,K extends TraitableBean>

java.lang.Object
  extended by org.drools.factmodel.traits.TraitFactory<T,K>
All Implemented Interfaces:
org.mvel2.asm.Opcodes

public class TraitFactory<T extends Thing<K>,K extends TraitableBean>
extends Object
implements org.mvel2.asm.Opcodes


Nested Class Summary
static class TraitFactory.VirtualPropertyMode
           
 
Field Summary
static String SUFFIX
           
 
Fields inherited from interface org.mvel2.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
TraitFactory(org.drools.KnowledgeBase knowledgeBase)
           
 
Method Summary
static String buildSignature(Method method)
           
 CoreWrapper<K> getCoreWrapper(Class<K> coreKlazz)
           
static String getPropertyWrapperName(ClassDefinition trait, ClassDefinition core)
           
 T getProxy(K core, Class<?> trait)
           
static String getProxyName(ClassDefinition trait, ClassDefinition core)
           
static int getStackSize(Method m)
           
static void invokeExtractor(org.mvel2.asm.MethodVisitor mv, String masterName, ClassDefinition source, ClassDefinition target, FieldDefinition field)
           
static void invokeInjector(org.mvel2.asm.MethodVisitor mv, String masterName, ClassDefinition source, ClassDefinition target, FieldDefinition field, boolean toNull, int pointer)
           
static void promote(org.mvel2.asm.MethodVisitor mv, String fieldType)
           
static void reset()
           
static void setMode(TraitFactory.VirtualPropertyMode newMode)
           
static void valueOf(org.mvel2.asm.MethodVisitor mv, String type)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SUFFIX

public static final String SUFFIX
See Also:
Constant Field Values
Constructor Detail

TraitFactory

public TraitFactory(org.drools.KnowledgeBase knowledgeBase)
Method Detail

reset

public static void reset()

setMode

public static void setMode(TraitFactory.VirtualPropertyMode newMode)

getProxy

public T getProxy(K core,
                  Class<?> trait)

getProxyName

public static String getProxyName(ClassDefinition trait,
                                  ClassDefinition core)

getPropertyWrapperName

public static String getPropertyWrapperName(ClassDefinition trait,
                                            ClassDefinition core)

getCoreWrapper

public CoreWrapper<K> getCoreWrapper(Class<K> coreKlazz)

valueOf

public static void valueOf(org.mvel2.asm.MethodVisitor mv,
                           String type)

promote

public static void promote(org.mvel2.asm.MethodVisitor mv,
                           String fieldType)

invokeExtractor

public static void invokeExtractor(org.mvel2.asm.MethodVisitor mv,
                                   String masterName,
                                   ClassDefinition source,
                                   ClassDefinition target,
                                   FieldDefinition field)

invokeInjector

public static void invokeInjector(org.mvel2.asm.MethodVisitor mv,
                                  String masterName,
                                  ClassDefinition source,
                                  ClassDefinition target,
                                  FieldDefinition field,
                                  boolean toNull,
                                  int pointer)

buildSignature

public static String buildSignature(Method method)

getStackSize

public static int getStackSize(Method m)


Copyright © 2001-2012 JBoss by Red Hat. All Rights Reserved.