Class PlasticClassImpl

java.lang.Object
org.apache.tapestry5.internal.plastic.Lockable
org.apache.tapestry5.internal.plastic.PlasticClassImpl
All Implemented Interfaces:
org.apache.tapestry5.internal.plastic.asm.Opcodes, InternalPlasticClassTransformation, AnnotationAccess, PlasticClass, PlasticClassTransformation

public class PlasticClassImpl extends Lockable implements PlasticClass, InternalPlasticClassTransformation, org.apache.tapestry5.internal.plastic.asm.Opcodes
  • 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
    PlasticClassImpl(org.apache.tapestry5.internal.plastic.asm.tree.ClassNode classNode, org.apache.tapestry5.internal.plastic.asm.tree.ClassNode implementationClassNode, PlasticClassPool pool, InheritanceData parentInheritanceData, StaticContext parentStaticContext, boolean proxy)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    addToString(String toStringValue)
    Conditionally adds an implementation of toString() to the class, but only if it is not already present in the class, or in a (transformed) super-class.
    Terminates the class transformation process, finishes any final bookkeeping, and returns an object used to instantiate the transformed class.
     
    Returns all non-introduced fields, in sorted order by name.
    <T extends Annotation>
    T
    getAnnotation(Class<T> annotationType)
    Returns an instantiated annotation, or null if the target does not have the indicated annotation.
    Returns the fully qualified class name of the class being transformed.
    getFieldsWithAnnotation(Class<T> annotationType)
    Matches all fields (claimed or not) that have the given annotation.
    Returns all methods of the class, in sorted order.
    getMethodsWithAnnotation(Class<T> annotationType)
    Matches methods with the given annotation.
    Returns the PlasticClass being transformed.
    Returns the name of the super-class of the class being transformed.
     
    Returns all unclaimed fields, in sorted order by name.
    <T extends Annotation>
    boolean
    hasAnnotation(Class<T> annotationType)
    Checks to see if the target has an annotation of the given type.
    void
     
    introduceField(Class fieldType, String suggestedName)
    Convenience method that uses a Java class rather than a type name.
    introduceField(String className, String suggestedName)
    Introduces a new private field into the class.
    introduceInterface(Class interfaceType)
    Introduces each method defined by the interface into the class.
    A convenience that creates a MethodDescription from the Method and introduces that.
    Returns an existing method declared in this class, or introduces a new method into this class.
    Returns an existing method declared in this class, or introduces a new method into this class.
    introducePrivateMethod(String typeName, String suggestedName, String[] argumentTypes, String[] exceptionTypes)
    Introduces a new private method into the class, ensuring that the method name is unique.
    boolean
    Returns true if this class, or a super-class, implements the indicated interface.
    boolean
    Returns true if this class has an implementation of the indicated method, or a super-class provides a non-abstract implementation.
    Adds the callback for execution when an instance of the class is instantiated.
    proxyInterface(Class interfaceType, PlasticField field)
    Introduces the interface, and then invokes PlasticMethod.delegateTo(PlasticField) on each method defined by the interface.
    proxyInterface(Class interfaceType, PlasticMethod method)
    Introduces the interface, and then invokes PlasticMethod.delegateTo(PlasticMethod) on each method defined by the interface.
     

    Methods inherited from class org.apache.tapestry5.internal.plastic.Lockable

    check, lock

    Methods inherited from class java.lang.Object

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