Drools :: Core 6.1.0.Final

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

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

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

See Also:
Serialized Form

Field Summary
protected  Map<String,Constructor> factoryCache
           
protected  VirtualPropertyMode mode
           
protected static String pack
           
static String SUFFIX
           
protected  Map<Class,Class<? extends CoreWrapper<?>>> wrapperCache
           
 
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_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, ASM4, ASM5, 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, 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, V1_8
 
Constructor Summary
AbstractTraitFactory()
           
 
Method Summary
<K> TraitableBean<K,CoreWrapper<K>>
asTraitable(K core, ClassDefinition coreDef)
           
 ClassDefinition buildClassDefinition(Class<?> klazz, Class<?> wrapperClass)
           
protected
<K> Class<CoreWrapper<K>>
buildCoreWrapper(Class<K> coreKlazz, ClassDefinition coreDef)
           
protected  Class<T> buildProxyClass(String key, K core, Class<?> trait)
           
static String buildSignature(Method method)
           
protected  Constructor<T> cacheConstructor(String key, K core, Class<?> trait)
           
protected abstract  ClassFieldAccessorStore getClassFieldAccessorStore()
           
protected abstract  KieComponentFactory getComponentFactory()
           
<K> CoreWrapper<K>
getCoreWrapper(Class<K> coreKlazz, ClassDefinition coreDef)
           
protected abstract  HierarchyEncoder getHierarchyEncoder()
           
protected static String getKey(Class core, Class trait)
           
static String getPropertyWrapperName(ClassDefinition trait, ClassDefinition core)
           
 T getProxy(K core, Class<?> trait)
          Deprecated. 
 T getProxy(K core, Class<?> trait, boolean logical)
           
static String getProxyName(ClassDefinition trait, ClassDefinition core)
           
protected abstract  ClassLoader getRootClassLoader()
           
static String getSoftFieldKey(String fieldName, Class fieldType, Class trait, Class core)
           
static int getStackSize(Method m)
           
protected abstract  TraitRegistry getTraitRegistry()
           
protected abstract  TripleFactory getTripleFactory()
           
protected abstract  TripleStore getTripleStore()
           
static void invokeExtractor(org.mvel2.asm.MethodVisitor mv, String masterName, ClassDefinition trait, ClassDefinition core, FieldDefinition field)
           
static void invokeInjector(org.mvel2.asm.MethodVisitor mv, String masterName, ClassDefinition trait, ClassDefinition core, FieldDefinition field, boolean toNull, int pointer)
           
static void primitiveValue(org.mvel2.asm.MethodVisitor mv, String fieldType)
           
 void readExternal(ObjectInput in)
           
protected abstract  Class<?> registerAndLoadTypeDefinition(String proxyName, byte[] proxy)
           
protected static void setMode(VirtualPropertyMode newMode, KieComponentFactory rcf)
           
static void valueOf(org.mvel2.asm.MethodVisitor mv, String type)
           
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mode

protected VirtualPropertyMode mode

SUFFIX

public static final String SUFFIX
See Also:
Constant Field Values

pack

protected static final String pack
See Also:
Constant Field Values

factoryCache

protected Map<String,Constructor> factoryCache

wrapperCache

protected Map<Class,Class<? extends CoreWrapper<?>>> wrapperCache
Constructor Detail

AbstractTraitFactory

public AbstractTraitFactory()
Method Detail

setMode

protected static void setMode(VirtualPropertyMode newMode,
                              KieComponentFactory 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(ClassDefinition trait,
                                  ClassDefinition core)

getPropertyWrapperName

public static String getPropertyWrapperName(ClassDefinition trait,
                                            ClassDefinition core)

getKey

protected static String getKey(Class core,
                               Class trait)

getSoftFieldKey

public static String getSoftFieldKey(String fieldName,
                                     Class fieldType,
                                     Class trait,
                                     Class core)

buildProxyClass

protected Class<T> buildProxyClass(String key,
                                   K core,
                                   Class<?> trait)

getCoreWrapper

public <K> CoreWrapper<K> getCoreWrapper(Class<K> coreKlazz,
                                         ClassDefinition coreDef)

asTraitable

public <K> TraitableBean<K,CoreWrapper<K>> asTraitable(K core,
                                                       ClassDefinition coreDef)

buildClassDefinition

public ClassDefinition buildClassDefinition(Class<?> klazz,
                                            Class<?> wrapperClass)
                                     throws IOException
Throws:
IOException

buildCoreWrapper

protected <K> Class<CoreWrapper<K>> buildCoreWrapper(Class<K> coreKlazz,
                                                     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 masterName,
                                   ClassDefinition trait,
                                   ClassDefinition core,
                                   FieldDefinition field)

invokeInjector

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

buildSignature

public static String buildSignature(Method method)

getStackSize

public static int getStackSize(Method m)

registerAndLoadTypeDefinition

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

getRootClassLoader

protected abstract ClassLoader getRootClassLoader()

getComponentFactory

protected abstract KieComponentFactory getComponentFactory()

getTraitRegistry

protected abstract TraitRegistry getTraitRegistry()

getHierarchyEncoder

protected abstract HierarchyEncoder getHierarchyEncoder()

getTripleStore

protected abstract TripleStore getTripleStore()

getTripleFactory

protected abstract TripleFactory getTripleFactory()

getClassFieldAccessorStore

protected abstract ClassFieldAccessorStore getClassFieldAccessorStore()

Drools :: Core 6.1.0.Final

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