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

java.lang.Object
org.drools.traits.core.factmodel.AbstractTraitFactory<T,K>
All Implemented Interfaces:
Externalizable, Serializable, org.mvel2.asm.Opcodes
Direct Known Subclasses:
StandaloneTraitFactory, TraitFactoryImpl

public abstract class AbstractTraitFactory<T extends org.drools.base.factmodel.traits.Thing<K>,K extends org.drools.base.factmodel.traits.TraitableBean> extends Object implements org.mvel2.asm.Opcodes, Externalizable
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
     
    protected static final String
     
    static final String
     
    protected Map<Class,Class<? extends org.drools.base.factmodel.traits.CoreWrapper<?>>>
     

    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_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, 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, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, 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, 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, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V9
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    <K> org.drools.base.factmodel.traits.TraitableBean<K,org.drools.base.factmodel.traits.CoreWrapper<K>>
    asTraitable(K core, org.drools.base.factmodel.ClassDefinition coreDef)
     
    org.drools.base.factmodel.ClassDefinition
    buildClassDefinition(Class<?> klazz, Class<?> wrapperClass)
     
    protected <K> Class<org.drools.base.factmodel.traits.CoreWrapper<K>>
    buildCoreWrapper(Class<K> coreKlazz, org.drools.base.factmodel.ClassDefinition coreDef)
     
    protected Class<T>
    buildProxyClass(K core, Class<?> trait)
     
    static String
     
    protected Constructor<T>
    cacheConstructor(String key, K core, Class<?> trait)
     
    protected static boolean
    excludeFromShadowing(Method m, org.drools.base.factmodel.ClassDefinition cdef)
     
    protected abstract ClassFieldAccessorStore
     
    <K> org.drools.base.factmodel.traits.CoreWrapper<K>
    getCoreWrapper(Class<K> coreKlazz, org.drools.base.factmodel.ClassDefinition coreDef)
     
    protected abstract HierarchyEncoder
     
    protected static String
    getKey(Class core, Class trait)
     
    static String
    getPropertyWrapperName(org.drools.base.factmodel.ClassDefinition trait, org.drools.base.factmodel.ClassDefinition core)
     
    getProxy(K core, Class<?> trait)
    Deprecated.
    getProxy(K core, Class<?> trait, boolean logical)
     
    static String
    getProxyName(org.drools.base.factmodel.ClassDefinition trait, org.drools.base.factmodel.ClassDefinition core)
     
    protected abstract ClassLoader
     
    static int
     
    protected abstract TraitRegistryImpl
     
    protected abstract TripleFactory
     
    protected abstract TripleStore
     
    static void
    invokeExtractor(org.mvel2.asm.MethodVisitor mv, String proxyName, org.drools.base.factmodel.ClassDefinition core, org.drools.base.factmodel.FieldDefinition field)
     
    static void
    invokeInjector(org.mvel2.asm.MethodVisitor mv, String proxyName, org.drools.base.factmodel.ClassDefinition core, org.drools.base.factmodel.FieldDefinition field, boolean toNull, int pointer)
     
    static boolean
     
    protected static boolean
    isGetter(Method m, org.drools.base.factmodel.ClassDefinition cdef)
     
    protected static boolean
    isSetter(Method m, org.drools.base.factmodel.ClassDefinition cdef)
     
    static void
    primitiveValue(org.mvel2.asm.MethodVisitor mv, String fieldType)
     
    void
     
    protected abstract Class<?>
    registerAndLoadTypeDefinition(String proxyName, byte[] proxy)
     
    protected static void
     
    static void
    valueOf(org.mvel2.asm.MethodVisitor mv, String type)
     
    void
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • AbstractTraitFactory

      public AbstractTraitFactory()
  • Method Details

    • setMode

      protected static void setMode(VirtualPropertyMode newMode, InternalRuleBase kBase, RuntimeComponentFactory rcf)
    • writeExternal

      public void writeExternal(ObjectOutput out) throws IOException
      Specified by:
      writeExternal in interface Externalizable
      Throws:
      IOException
    • readExternal

      public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
      Specified by:
      readExternal in interface Externalizable
      Throws:
      IOException
      ClassNotFoundException
    • getProxy

      @Deprecated public T getProxy(K core, Class<?> trait) throws LogicalTypeInconsistencyException
      Deprecated.
      Throws:
      LogicalTypeInconsistencyException
    • getProxy

      public T getProxy(K core, Class<?> trait, boolean logical) throws LogicalTypeInconsistencyException
      Throws:
      LogicalTypeInconsistencyException
    • cacheConstructor

      protected Constructor<T> cacheConstructor(String key, K core, Class<?> trait)
    • getProxyName

      public static String getProxyName(org.drools.base.factmodel.ClassDefinition trait, org.drools.base.factmodel.ClassDefinition core)
    • getPropertyWrapperName

      public static String getPropertyWrapperName(org.drools.base.factmodel.ClassDefinition trait, org.drools.base.factmodel.ClassDefinition core)
    • getKey

      protected static String getKey(Class core, Class trait)
    • buildProxyClass

      protected Class<T> buildProxyClass(K core, Class<?> trait)
    • getCoreWrapper

      public <K> org.drools.base.factmodel.traits.CoreWrapper<K> getCoreWrapper(Class<K> coreKlazz, org.drools.base.factmodel.ClassDefinition coreDef)
    • asTraitable

      public <K> org.drools.base.factmodel.traits.TraitableBean<K,org.drools.base.factmodel.traits.CoreWrapper<K>> asTraitable(K core, org.drools.base.factmodel.ClassDefinition coreDef)
    • buildClassDefinition

      public org.drools.base.factmodel.ClassDefinition buildClassDefinition(Class<?> klazz, Class<?> wrapperClass) throws IOException
      Throws:
      IOException
    • buildCoreWrapper

      protected <K> Class<org.drools.base.factmodel.traits.CoreWrapper<K>> buildCoreWrapper(Class<K> coreKlazz, org.drools.base.factmodel.ClassDefinition coreDef) throws IOException, ClassNotFoundException
      Throws:
      IOException
      ClassNotFoundException
    • valueOf

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

      public static void primitiveValue(org.mvel2.asm.MethodVisitor mv, String fieldType)
    • invokeExtractor

      public static void invokeExtractor(org.mvel2.asm.MethodVisitor mv, String proxyName, org.drools.base.factmodel.ClassDefinition core, org.drools.base.factmodel.FieldDefinition field)
    • invokeInjector

      public static void invokeInjector(org.mvel2.asm.MethodVisitor mv, String proxyName, org.drools.base.factmodel.ClassDefinition core, org.drools.base.factmodel.FieldDefinition field, boolean toNull, int pointer)
    • buildSignature

      public static String buildSignature(Method method)
    • getStackSize

      public static int getStackSize(Method m)
    • isCompatible

      public static boolean isCompatible(Method m, Method q)
    • excludeFromShadowing

      protected static boolean excludeFromShadowing(Method m, org.drools.base.factmodel.ClassDefinition cdef)
    • isGetter

      protected static boolean isGetter(Method m, org.drools.base.factmodel.ClassDefinition cdef)
    • isSetter

      protected static boolean isSetter(Method m, org.drools.base.factmodel.ClassDefinition cdef)
    • registerAndLoadTypeDefinition

      protected abstract Class<?> registerAndLoadTypeDefinition(String proxyName, byte[] proxy) throws ClassNotFoundException
      Throws:
      ClassNotFoundException
    • getRootClassLoader

      protected abstract ClassLoader getRootClassLoader()
    • getTraitRegistry

      protected abstract TraitRegistryImpl getTraitRegistry()
    • getHierarchyEncoder

      protected abstract HierarchyEncoder getHierarchyEncoder()
    • getTripleStore

      protected abstract TripleStore getTripleStore()
    • getTripleFactory

      protected abstract TripleFactory getTripleFactory()
    • getClassFieldAccessorStore

      protected abstract ClassFieldAccessorStore getClassFieldAccessorStore()