public abstract class AbstractTraitFactory<T extends Thing<K>,K extends TraitableBean> extends Object implements org.mvel2.asm.Opcodes, Externalizable
Modifier and Type | Field and Description |
---|---|
protected Map<String,Constructor> |
factoryCache |
protected VirtualPropertyMode |
mode |
protected static String |
pack |
static String |
SUFFIX |
protected Map<Class,Class<? extends CoreWrapper<?>>> |
wrapperCache |
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 and Description |
---|
AbstractTraitFactory() |
protected VirtualPropertyMode mode
public static final String SUFFIX
protected static final String pack
protected Map<String,Constructor> factoryCache
protected Map<Class,Class<? extends CoreWrapper<?>>> wrapperCache
protected static void setMode(VirtualPropertyMode newMode, KieComponentFactory rcf)
public void writeExternal(ObjectOutput out) throws IOException
writeExternal
in interface Externalizable
IOException
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal
in interface Externalizable
IOException
ClassNotFoundException
@Deprecated public T getProxy(K core, Class<?> trait) throws LogicalTypeInconsistencyException
public T getProxy(K core, Class<?> trait, boolean logical) throws LogicalTypeInconsistencyException
protected Constructor<T> cacheConstructor(String key, K core, Class<?> trait)
public static String getProxyName(ClassDefinition trait, ClassDefinition core)
public static String getPropertyWrapperName(ClassDefinition trait, ClassDefinition core)
public static String getSoftFieldKey(String fieldName, Class fieldType, Class trait, Class core)
public <K> CoreWrapper<K> getCoreWrapper(Class<K> coreKlazz, ClassDefinition coreDef)
public <K> TraitableBean<K,CoreWrapper<K>> asTraitable(K core, ClassDefinition coreDef)
public ClassDefinition buildClassDefinition(Class<?> klazz, Class<?> wrapperClass) throws IOException
IOException
protected <K> Class<CoreWrapper<K>> buildCoreWrapper(Class<K> coreKlazz, ClassDefinition coreDef) throws IOException, ClassNotFoundException
IOException
ClassNotFoundException
public static void valueOf(org.mvel2.asm.MethodVisitor mv, String type)
public static void primitiveValue(org.mvel2.asm.MethodVisitor mv, String fieldType)
public static void invokeExtractor(org.mvel2.asm.MethodVisitor mv, String masterName, ClassDefinition trait, ClassDefinition core, FieldDefinition field)
public static void invokeInjector(org.mvel2.asm.MethodVisitor mv, String masterName, ClassDefinition core, FieldDefinition field, boolean toNull, int pointer)
public static int getStackSize(Method m)
protected static boolean excludeFromShadowing(Method m, ClassDefinition cdef)
protected static boolean isGetter(Method m, ClassDefinition cdef)
protected static boolean isSetter(Method m, ClassDefinition cdef)
protected abstract Class<?> registerAndLoadTypeDefinition(String proxyName, byte[] proxy) throws ClassNotFoundException
ClassNotFoundException
protected abstract ClassLoader getRootClassLoader()
protected abstract KieComponentFactory getComponentFactory()
protected abstract TraitRegistry getTraitRegistry()
protected abstract HierarchyEncoder getHierarchyEncoder()
protected abstract TripleStore getTripleStore()
protected abstract TripleFactory getTripleFactory()
protected abstract ClassFieldAccessorStore getClassFieldAccessorStore()
Copyright © 2001–2019 JBoss by Red Hat. All rights reserved.