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:
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
FieldsModifier and TypeFieldDescriptionprotected Map<String,Constructor> protected VirtualPropertyModeprotected static final Stringstatic final StringFields 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 -
Method Summary
Modifier and TypeMethodDescription<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(Class<?> klazz, Class<?> wrapperClass) protected <K> Class<org.drools.base.factmodel.traits.CoreWrapper<K>>buildCoreWrapper(Class<K> coreKlazz, org.drools.base.factmodel.ClassDefinition coreDef) 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.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 HierarchyEncoderprotected static Stringstatic StringgetPropertyWrapperName(org.drools.base.factmodel.ClassDefinition trait, org.drools.base.factmodel.ClassDefinition core) Deprecated.static StringgetProxyName(org.drools.base.factmodel.ClassDefinition trait, org.drools.base.factmodel.ClassDefinition core) protected abstract ClassLoaderstatic intprotected abstract TraitRegistryImplprotected abstract TripleFactoryprotected abstract TripleStorestatic voidinvokeExtractor(org.mvel2.asm.MethodVisitor mv, String proxyName, org.drools.base.factmodel.ClassDefinition core, org.drools.base.factmodel.FieldDefinition field) static voidinvokeInjector(org.mvel2.asm.MethodVisitor mv, String proxyName, org.drools.base.factmodel.ClassDefinition core, org.drools.base.factmodel.FieldDefinition field, boolean toNull, int pointer) static booleanisCompatible(Method m, Method q) protected static booleanprotected static booleanstatic voidprimitiveValue(org.mvel2.asm.MethodVisitor mv, String fieldType) voidprotected abstract Class<?>registerAndLoadTypeDefinition(String proxyName, byte[] proxy) protected static voidsetMode(VirtualPropertyMode newMode, InternalRuleBase kBase, RuntimeComponentFactory rcf) static voidvoid
-
Field Details
-
mode
-
SUFFIX
- See Also:
-
PACKAGE
- See Also:
-
factoryCache
-
wrapperCache
-
-
Constructor Details
-
AbstractTraitFactory
public AbstractTraitFactory()
-
-
Method Details
-
setMode
protected static void setMode(VirtualPropertyMode newMode, InternalRuleBase kBase, RuntimeComponentFactory rcf) -
writeExternal
- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
readExternal
- Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
getProxy
Deprecated. -
getProxy
-
cacheConstructor
-
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
-
buildProxyClass
-
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:
IOExceptionClassNotFoundException
-
valueOf
-
primitiveValue
-
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
-
getStackSize
-
isCompatible
-
excludeFromShadowing
protected static boolean excludeFromShadowing(Method m, org.drools.base.factmodel.ClassDefinition cdef) -
isGetter
-
isSetter
-
registerAndLoadTypeDefinition
protected abstract Class<?> registerAndLoadTypeDefinition(String proxyName, byte[] proxy) throws ClassNotFoundException - Throws:
ClassNotFoundException
-
getRootClassLoader
-
getTraitRegistry
-
getHierarchyEncoder
-
getTripleStore
-
getTripleFactory
-
getClassFieldAccessorStore
-