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_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 and Description |
---|
AbstractTraitFactory() |
Modifier and Type | Method and Description |
---|---|
<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 static boolean |
excludeFromShadowing(Method m,
ClassDefinition cdef) |
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 boolean |
isCompatible(Method m,
Method q) |
protected static boolean |
isGetter(Method m,
ClassDefinition cdef) |
protected static boolean |
isSetter(Method m,
ClassDefinition cdef) |
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) |
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 trait, 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-2015 JBoss by Red Hat. All Rights Reserved.