Package org.drools.traits.core.factmodel
Class AbstractTraitFactory<T extends org.drools.core.factmodel.traits.Thing<K>,K extends org.drools.core.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.core.factmodel.traits.Thing<K>,K extends org.drools.core.factmodel.traits.TraitableBean> extends Object implements org.mvel2.asm.Opcodes, Externalizable
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,Constructor>factoryCacheprotected VirtualPropertyModemodeprotected static StringPACKAGEstatic StringSUFFIXprotected Map<Class,Class<? extends org.drools.core.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_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, ASM4, ASM5, ASM6, ASM7, 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, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, 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.core.factmodel.traits.TraitableBean<K,org.drools.core.factmodel.traits.CoreWrapper<K>>asTraitable(K core, org.drools.core.factmodel.ClassDefinition coreDef)org.drools.core.factmodel.ClassDefinitionbuildClassDefinition(Class<?> klazz, Class<?> wrapperClass)protected <K> Class<org.drools.core.factmodel.traits.CoreWrapper<K>>buildCoreWrapper(Class<K> coreKlazz, org.drools.core.factmodel.ClassDefinition coreDef)protected Class<T>buildProxyClass(K core, Class<?> trait)static StringbuildSignature(Method method)protected Constructor<T>cacheConstructor(String key, K core, Class<?> trait)protected static booleanexcludeFromShadowing(Method m, org.drools.core.factmodel.ClassDefinition cdef)protected abstract org.drools.core.base.ClassFieldAccessorStoregetClassFieldAccessorStore()protected abstract org.drools.core.reteoo.KieComponentFactorygetComponentFactory()<K> org.drools.core.factmodel.traits.CoreWrapper<K>getCoreWrapper(Class<K> coreKlazz, org.drools.core.factmodel.ClassDefinition coreDef)protected abstract org.drools.core.util.HierarchyEncodergetHierarchyEncoder()protected static StringgetKey(Class core, Class trait)static StringgetPropertyWrapperName(org.drools.core.factmodel.ClassDefinition trait, org.drools.core.factmodel.ClassDefinition core)TgetProxy(K core, Class<?> trait)Deprecated.TgetProxy(K core, Class<?> trait, boolean logical)static StringgetProxyName(org.drools.core.factmodel.ClassDefinition trait, org.drools.core.factmodel.ClassDefinition core)protected abstract ClassLoadergetRootClassLoader()static intgetStackSize(Method m)protected abstract TraitRegistryImplgetTraitRegistry()protected abstract org.drools.core.util.TripleFactorygetTripleFactory()protected abstract org.drools.core.util.TripleStoregetTripleStore()static voidinvokeExtractor(org.mvel2.asm.MethodVisitor mv, String proxyName, org.drools.core.factmodel.ClassDefinition core, org.drools.core.factmodel.FieldDefinition field)static voidinvokeInjector(org.mvel2.asm.MethodVisitor mv, String proxyName, org.drools.core.factmodel.ClassDefinition core, org.drools.core.factmodel.FieldDefinition field, boolean toNull, int pointer)static booleanisCompatible(Method m, Method q)protected static booleanisGetter(Method m, org.drools.core.factmodel.ClassDefinition cdef)protected static booleanisSetter(Method m, org.drools.core.factmodel.ClassDefinition cdef)static voidprimitiveValue(org.mvel2.asm.MethodVisitor mv, String fieldType)voidreadExternal(ObjectInput in)protected abstract Class<?>registerAndLoadTypeDefinition(String proxyName, byte[] proxy)protected static voidsetMode(VirtualPropertyMode newMode, org.drools.core.reteoo.KieComponentFactory rcf)static voidvalueOf(org.mvel2.asm.MethodVisitor mv, String type)voidwriteExternal(ObjectOutput out)
-
-
-
Field Detail
-
mode
protected VirtualPropertyMode mode
-
SUFFIX
public static final String SUFFIX
- See Also:
- Constant Field Values
-
PACKAGE
protected static final String PACKAGE
- See Also:
- Constant Field Values
-
factoryCache
protected Map<String,Constructor> factoryCache
-
-
Method Detail
-
setMode
protected static void setMode(VirtualPropertyMode newMode, org.drools.core.reteoo.KieComponentFactory rcf)
-
writeExternal
public void writeExternal(ObjectOutput out) throws IOException
- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
getProxy
@Deprecated public T getProxy(K core, Class<?> trait) throws LogicalTypeInconsistencyException
Deprecated.
-
getProxy
public T getProxy(K core, Class<?> trait, boolean logical) throws LogicalTypeInconsistencyException
-
cacheConstructor
protected Constructor<T> cacheConstructor(String key, K core, Class<?> trait)
-
getProxyName
public static String getProxyName(org.drools.core.factmodel.ClassDefinition trait, org.drools.core.factmodel.ClassDefinition core)
-
getPropertyWrapperName
public static String getPropertyWrapperName(org.drools.core.factmodel.ClassDefinition trait, org.drools.core.factmodel.ClassDefinition core)
-
getCoreWrapper
public <K> org.drools.core.factmodel.traits.CoreWrapper<K> getCoreWrapper(Class<K> coreKlazz, org.drools.core.factmodel.ClassDefinition coreDef)
-
asTraitable
public <K> org.drools.core.factmodel.traits.TraitableBean<K,org.drools.core.factmodel.traits.CoreWrapper<K>> asTraitable(K core, org.drools.core.factmodel.ClassDefinition coreDef)
-
buildClassDefinition
public org.drools.core.factmodel.ClassDefinition buildClassDefinition(Class<?> klazz, Class<?> wrapperClass) throws IOException
- Throws:
IOException
-
buildCoreWrapper
protected <K> Class<org.drools.core.factmodel.traits.CoreWrapper<K>> buildCoreWrapper(Class<K> coreKlazz, org.drools.core.factmodel.ClassDefinition coreDef) throws IOException, ClassNotFoundException
- Throws:
IOExceptionClassNotFoundException
-
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.core.factmodel.ClassDefinition core, org.drools.core.factmodel.FieldDefinition field)
-
invokeInjector
public static void invokeInjector(org.mvel2.asm.MethodVisitor mv, String proxyName, org.drools.core.factmodel.ClassDefinition core, org.drools.core.factmodel.FieldDefinition field, boolean toNull, int pointer)
-
getStackSize
public static int getStackSize(Method m)
-
excludeFromShadowing
protected static boolean excludeFromShadowing(Method m, org.drools.core.factmodel.ClassDefinition cdef)
-
isGetter
protected static boolean isGetter(Method m, org.drools.core.factmodel.ClassDefinition cdef)
-
isSetter
protected static boolean isSetter(Method m, org.drools.core.factmodel.ClassDefinition cdef)
-
registerAndLoadTypeDefinition
protected abstract Class<?> registerAndLoadTypeDefinition(String proxyName, byte[] proxy) throws ClassNotFoundException
- Throws:
ClassNotFoundException
-
getRootClassLoader
protected abstract ClassLoader getRootClassLoader()
-
getComponentFactory
protected abstract org.drools.core.reteoo.KieComponentFactory getComponentFactory()
-
getTraitRegistry
protected abstract TraitRegistryImpl getTraitRegistry()
-
getHierarchyEncoder
protected abstract org.drools.core.util.HierarchyEncoder getHierarchyEncoder()
-
getTripleStore
protected abstract org.drools.core.util.TripleStore getTripleStore()
-
getTripleFactory
protected abstract org.drools.core.util.TripleFactory getTripleFactory()
-
getClassFieldAccessorStore
protected abstract org.drools.core.base.ClassFieldAccessorStore getClassFieldAccessorStore()
-
-