Class PlasticClassPool

java.lang.Object
org.apache.tapestry5.internal.plastic.PlasticClassPool
All Implemented Interfaces:
org.apache.tapestry5.internal.plastic.asm.Opcodes, ClassLoaderDelegate, PlasticClassListenerHub

public class PlasticClassPool extends Object implements ClassLoaderDelegate, org.apache.tapestry5.internal.plastic.asm.Opcodes, PlasticClassListenerHub
Responsible for managing a class loader that allows ASM ClassNodes to be instantiated as runtime classes.
  • Field Summary

    Fields inherited from interface org.apache.tapestry5.internal.plastic.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, V22, V9
  • Constructor Summary

    Constructors
    Constructor
    Description
    PlasticClassPool(ClassLoader parentLoader, PlasticManagerDelegate delegate, Set<String> controlledPackages, Set<TransformationOption> options)
    Creates the pool with a set of controlled packages; all classes in the controlled packages are loaded by the pool's class loader, and all top-level classes in the controlled packages are transformed via the delegate.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    org.apache.tapestry5.internal.plastic.asm.tree.ClassNode
    Constructs a class node by reading the raw bytecode for a class and instantiating a ClassNode (via ClassReader.accept(org.apache.tapestry5.internal.plastic.asm.ClassVisitor, int)).
    protected Object
    createAnnotation(String className, org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode node)
     
     
    createAnnotationAccess(List<org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode> annotationNodes)
     
    createTransformation(String baseClassName, String newClassName)
     
    createTransformation(String baseClassName, String newClassName, String implementationClassName)
     
     
     
    For a fully-qualified class name of an existing class, loads the bytes for the class and returns a PlasticClass instance.
    Load the class, transforming it as necessary.
    realize(String primaryClassName, ClassType classType, org.apache.tapestry5.internal.plastic.asm.tree.ClassNode classNode)
     
    realizeTransformedClass(org.apache.tapestry5.internal.plastic.asm.tree.ClassNode classNode, InheritanceData inheritanceData, StaticContext staticContext)
     
    void
     
    void
    Sets the parent of this instance.
    boolean
    Identifies which classes are to be loaded.
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait