Package org.drools.traits.core.factmodel
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:
java.io.Externalizable,java.io.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 java.lang.Object implements org.mvel2.asm.Opcodes, java.io.Externalizable- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<java.lang.String,java.lang.reflect.Constructor>factoryCacheprotected VirtualPropertyModemodeprotected static java.lang.StringPACKAGEstatic java.lang.StringSUFFIXprotected java.util.Map<java.lang.Class,java.lang.Class<? extends org.drools.base.factmodel.traits.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_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 AbstractTraitFactory()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods 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.ClassDefinitionbuildClassDefinition(java.lang.Class<?> klazz, java.lang.Class<?> wrapperClass)protected <K> java.lang.Class<org.drools.base.factmodel.traits.CoreWrapper<K>>buildCoreWrapper(java.lang.Class<K> coreKlazz, org.drools.base.factmodel.ClassDefinition coreDef)protected java.lang.Class<T>buildProxyClass(K core, java.lang.Class<?> trait)static java.lang.StringbuildSignature(java.lang.reflect.Method method)protected java.lang.reflect.Constructor<T>cacheConstructor(java.lang.String key, K core, java.lang.Class<?> trait)protected static booleanexcludeFromShadowing(java.lang.reflect.Method m, org.drools.base.factmodel.ClassDefinition cdef)protected abstract org.drools.mvel.accessors.ClassFieldAccessorStoregetClassFieldAccessorStore()<K> org.drools.base.factmodel.traits.CoreWrapper<K>getCoreWrapper(java.lang.Class<K> coreKlazz, org.drools.base.factmodel.ClassDefinition coreDef)protected abstract HierarchyEncodergetHierarchyEncoder()protected static java.lang.StringgetKey(java.lang.Class core, java.lang.Class trait)static java.lang.StringgetPropertyWrapperName(org.drools.base.factmodel.ClassDefinition trait, org.drools.base.factmodel.ClassDefinition core)TgetProxy(K core, java.lang.Class<?> trait)Deprecated.TgetProxy(K core, java.lang.Class<?> trait, boolean logical)static java.lang.StringgetProxyName(org.drools.base.factmodel.ClassDefinition trait, org.drools.base.factmodel.ClassDefinition core)protected abstract java.lang.ClassLoadergetRootClassLoader()static intgetStackSize(java.lang.reflect.Method m)protected abstract TraitRegistryImplgetTraitRegistry()protected abstract TripleFactorygetTripleFactory()protected abstract TripleStoregetTripleStore()static voidinvokeExtractor(org.mvel2.asm.MethodVisitor mv, java.lang.String proxyName, org.drools.base.factmodel.ClassDefinition core, org.drools.base.factmodel.FieldDefinition field)static voidinvokeInjector(org.mvel2.asm.MethodVisitor mv, java.lang.String proxyName, org.drools.base.factmodel.ClassDefinition core, org.drools.base.factmodel.FieldDefinition field, boolean toNull, int pointer)static booleanisCompatible(java.lang.reflect.Method m, java.lang.reflect.Method q)protected static booleanisGetter(java.lang.reflect.Method m, org.drools.base.factmodel.ClassDefinition cdef)protected static booleanisSetter(java.lang.reflect.Method m, org.drools.base.factmodel.ClassDefinition cdef)static voidprimitiveValue(org.mvel2.asm.MethodVisitor mv, java.lang.String fieldType)voidreadExternal(java.io.ObjectInput in)protected abstract java.lang.Class<?>registerAndLoadTypeDefinition(java.lang.String proxyName, byte[] proxy)protected static voidsetMode(VirtualPropertyMode newMode, org.drools.core.impl.InternalRuleBase kBase, org.drools.core.reteoo.RuntimeComponentFactory rcf)static voidvalueOf(org.mvel2.asm.MethodVisitor mv, java.lang.String type)voidwriteExternal(java.io.ObjectOutput out)
-
-
-
Field Detail
-
mode
protected VirtualPropertyMode mode
-
SUFFIX
public static final java.lang.String SUFFIX
- See Also:
- Constant Field Values
-
PACKAGE
protected static final java.lang.String PACKAGE
- See Also:
- Constant Field Values
-
factoryCache
protected java.util.Map<java.lang.String,java.lang.reflect.Constructor> factoryCache
-
wrapperCache
protected java.util.Map<java.lang.Class,java.lang.Class<? extends org.drools.base.factmodel.traits.CoreWrapper<?>>> wrapperCache
-
-
Method Detail
-
setMode
protected static void setMode(VirtualPropertyMode newMode, org.drools.core.impl.InternalRuleBase kBase, org.drools.core.reteoo.RuntimeComponentFactory rcf)
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException- Specified by:
writeExternalin interfacejava.io.Externalizable- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException- Specified by:
readExternalin interfacejava.io.Externalizable- Throws:
java.io.IOExceptionjava.lang.ClassNotFoundException
-
getProxy
@Deprecated public T getProxy(K core, java.lang.Class<?> trait) throws LogicalTypeInconsistencyException
Deprecated.
-
getProxy
public T getProxy(K core, java.lang.Class<?> trait, boolean logical) throws LogicalTypeInconsistencyException
-
cacheConstructor
protected java.lang.reflect.Constructor<T> cacheConstructor(java.lang.String key, K core, java.lang.Class<?> trait)
-
getProxyName
public static java.lang.String getProxyName(org.drools.base.factmodel.ClassDefinition trait, org.drools.base.factmodel.ClassDefinition core)
-
getPropertyWrapperName
public static java.lang.String getPropertyWrapperName(org.drools.base.factmodel.ClassDefinition trait, org.drools.base.factmodel.ClassDefinition core)
-
getKey
protected static java.lang.String getKey(java.lang.Class core, java.lang.Class trait)
-
getCoreWrapper
public <K> org.drools.base.factmodel.traits.CoreWrapper<K> getCoreWrapper(java.lang.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(java.lang.Class<?> klazz, java.lang.Class<?> wrapperClass) throws java.io.IOException- Throws:
java.io.IOException
-
buildCoreWrapper
protected <K> java.lang.Class<org.drools.base.factmodel.traits.CoreWrapper<K>> buildCoreWrapper(java.lang.Class<K> coreKlazz, org.drools.base.factmodel.ClassDefinition coreDef) throws java.io.IOException, java.lang.ClassNotFoundException- Throws:
java.io.IOExceptionjava.lang.ClassNotFoundException
-
valueOf
public static void valueOf(org.mvel2.asm.MethodVisitor mv, java.lang.String type)
-
primitiveValue
public static void primitiveValue(org.mvel2.asm.MethodVisitor mv, java.lang.String fieldType)
-
invokeExtractor
public static void invokeExtractor(org.mvel2.asm.MethodVisitor mv, java.lang.String proxyName, org.drools.base.factmodel.ClassDefinition core, org.drools.base.factmodel.FieldDefinition field)
-
invokeInjector
public static void invokeInjector(org.mvel2.asm.MethodVisitor mv, java.lang.String proxyName, org.drools.base.factmodel.ClassDefinition core, org.drools.base.factmodel.FieldDefinition field, boolean toNull, int pointer)
-
buildSignature
public static java.lang.String buildSignature(java.lang.reflect.Method method)
-
getStackSize
public static int getStackSize(java.lang.reflect.Method m)
-
isCompatible
public static boolean isCompatible(java.lang.reflect.Method m, java.lang.reflect.Method q)
-
excludeFromShadowing
protected static boolean excludeFromShadowing(java.lang.reflect.Method m, org.drools.base.factmodel.ClassDefinition cdef)
-
isGetter
protected static boolean isGetter(java.lang.reflect.Method m, org.drools.base.factmodel.ClassDefinition cdef)
-
isSetter
protected static boolean isSetter(java.lang.reflect.Method m, org.drools.base.factmodel.ClassDefinition cdef)
-
registerAndLoadTypeDefinition
protected abstract java.lang.Class<?> registerAndLoadTypeDefinition(java.lang.String proxyName, byte[] proxy) throws java.lang.ClassNotFoundException- Throws:
java.lang.ClassNotFoundException
-
getRootClassLoader
protected abstract java.lang.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 org.drools.mvel.accessors.ClassFieldAccessorStore getClassFieldAccessorStore()
-
-