Class IconGhostingAugmenter.AugmentClassAdapter

java.lang.Object
org.objectweb.asm.ClassVisitor
org.pushingpixels.lafwidget.ant.IconGhostingAugmenter.AugmentClassAdapter
All Implemented Interfaces:
org.objectweb.asm.Opcodes
Enclosing class:
IconGhostingAugmenter

protected class IconGhostingAugmenter.AugmentClassAdapter extends org.objectweb.asm.ClassVisitor implements org.objectweb.asm.Opcodes
Adapter for augmenting a single class.
  • Field Summary

    Fields inherited from class org.objectweb.asm.ClassVisitor

    api, cv

    Fields inherited from interface org.objectweb.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, V23, V9
  • Constructor Summary

    Constructors
    Constructor
    Description
    AugmentClassAdapter(org.objectweb.asm.ClassVisitor cv, Set<String> existingMethods, Set<String> existingFields, Method methodToAugment)
    Creates a new augmentor.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    augmentInstallListeners(boolean toSynthOriginal, String className, String superClassName, String methodName, String functionDesc)
    Augments the installListeners method.
    void
    augmentPaintIconMethod(boolean toSynthOriginal, String className, String superClassName, String methodName, String methodDesc)
    Augments the paintIcon method that is assumed to always have three parameters.
    void
    augmentUninstallListeners(boolean toSynthOriginal, String className, String superClassName, String methodName, String functionDesc)
    Augments the uninstallListeners method.
    void
    visit(int version, int access, String name, String signature, String superName, String[] interfaces)
     
    org.objectweb.asm.MethodVisitor
    visitMethod(int access, String name, String desc, String signature, String[] exceptions)
     

    Methods inherited from class org.objectweb.asm.ClassVisitor

    getDelegate, visitAnnotation, visitAttribute, visitEnd, visitField, visitInnerClass, visitModule, visitNestHost, visitNestMember, visitOuterClass, visitPermittedSubclass, visitRecordComponent, visitSource, visitTypeAnnotation

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AugmentClassAdapter

      public AugmentClassAdapter(org.objectweb.asm.ClassVisitor cv, Set<String> existingMethods, Set<String> existingFields, Method methodToAugment)
      Creates a new augmentor.
      Parameters:
      cv - Class visitor to recreate the non-augmented methods.
      existingMethods - Contains all method names.
      existingFields - Contains all field names.
      methodToAugment - Method to augment.
  • Method Details

    • visit

      public void visit(int version, int access, String name, String signature, String superName, String[] interfaces)
      Overrides:
      visit in class org.objectweb.asm.ClassVisitor
    • augmentPaintIconMethod

      public void augmentPaintIconMethod(boolean toSynthOriginal, String className, String superClassName, String methodName, String methodDesc)
      Augments the paintIcon method that is assumed to always have three parameters.
      Parameters:
      toSynthOriginal - Indication whether we need to create an empty (only call to super()) implementation.
      className - Class name.
      superClassName - Super class name (relevant for generating empty implementation).
      methodName - Method name.
      methodDesc - Function signature (using JNI style declaration). Example for void installUI(JButton button): (Ljavax/swing/JButton;)V.
    • augmentInstallListeners

      public void augmentInstallListeners(boolean toSynthOriginal, String className, String superClassName, String methodName, String functionDesc)
      Augments the installListeners method.
      Parameters:
      toSynthOriginal - Indication whether we need to create an empty (only call to super()) implementation.
      className - Class name.
      superClassName - Super class name (relevant for generating empty implementation).
      methodName - Method name.
      functionDesc - Function signature (using JNI style declaration). Example for void installUI(JButton button): (Ljavax/swing/JButton;)V.
    • augmentUninstallListeners

      public void augmentUninstallListeners(boolean toSynthOriginal, String className, String superClassName, String methodName, String functionDesc)
      Augments the uninstallListeners method.
      Parameters:
      toSynthOriginal - Indication whether we need to create an empty (only call to super()) implementation.
      className - Class name.
      superClassName - Super class name (relevant for generating empty implementation).
      methodName - Method name.
      functionDesc - Function signature (using JNI style declaration). Example for void installUI(JButton button): (Ljavax/swing/JButton;)V.
    • visitMethod

      public org.objectweb.asm.MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions)
      Overrides:
      visitMethod in class org.objectweb.asm.ClassVisitor