org.jvnet.lafwidget.ant
Class IconGhostingAugmenter.AugmentClassAdapter

java.lang.Object
  extended by org.objectweb.asm.ClassAdapter
      extended by org.jvnet.lafwidget.ant.IconGhostingAugmenter.AugmentClassAdapter
All Implemented Interfaces:
org.objectweb.asm.ClassVisitor, org.objectweb.asm.Opcodes
Enclosing class:
IconGhostingAugmenter

protected class IconGhostingAugmenter.AugmentClassAdapter
extends org.objectweb.asm.ClassAdapter
implements org.objectweb.asm.Opcodes

Adapter for augmenting a single class.

Author:
Kirill Grouchnikov.

Field Summary
 
Fields inherited from class org.objectweb.asm.ClassAdapter
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_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, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, 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, 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, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, 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, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6
 
Constructor Summary
IconGhostingAugmenter.AugmentClassAdapter(org.objectweb.asm.ClassVisitor cv, java.util.Set<java.lang.String> existingMethods, java.util.Set<java.lang.String> existingFields, java.lang.reflect.Method methodToAugment)
          Creates a new augmentor.
 
Method Summary
 void augmentInstallListeners(boolean toSynthOriginal, java.lang.String className, java.lang.String superClassName, java.lang.String methodName, java.lang.String functionDesc)
          Augments the installListeners method.
 void augmentPaintIconMethod(boolean toSynthOriginal, java.lang.String className, java.lang.String superClassName, java.lang.String methodName, java.lang.String methodDesc)
          Augments the paintIcon method that is assumed to always have three parameters.
 void augmentUninstallListeners(boolean toSynthOriginal, java.lang.String className, java.lang.String superClassName, java.lang.String methodName, java.lang.String functionDesc)
          Augments the uninstallListeners method.
 void visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)
           
 org.objectweb.asm.MethodVisitor visitMethod(int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.String[] exceptions)
           
 
Methods inherited from class org.objectweb.asm.ClassAdapter
visitAnnotation, visitAttribute, visitEnd, visitField, visitInnerClass, visitOuterClass, visitSource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IconGhostingAugmenter.AugmentClassAdapter

public IconGhostingAugmenter.AugmentClassAdapter(org.objectweb.asm.ClassVisitor cv,
                                                 java.util.Set<java.lang.String> existingMethods,
                                                 java.util.Set<java.lang.String> existingFields,
                                                 java.lang.reflect.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 Detail

visit

public void visit(int version,
                  int access,
                  java.lang.String name,
                  java.lang.String signature,
                  java.lang.String superName,
                  java.lang.String[] interfaces)
Specified by:
visit in interface org.objectweb.asm.ClassVisitor
Overrides:
visit in class org.objectweb.asm.ClassAdapter

augmentPaintIconMethod

public void augmentPaintIconMethod(boolean toSynthOriginal,
                                   java.lang.String className,
                                   java.lang.String superClassName,
                                   java.lang.String methodName,
                                   java.lang.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,
                                    java.lang.String className,
                                    java.lang.String superClassName,
                                    java.lang.String methodName,
                                    java.lang.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,
                                      java.lang.String className,
                                      java.lang.String superClassName,
                                      java.lang.String methodName,
                                      java.lang.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,
                                                   java.lang.String name,
                                                   java.lang.String desc,
                                                   java.lang.String signature,
                                                   java.lang.String[] exceptions)
Specified by:
visitMethod in interface org.objectweb.asm.ClassVisitor
Overrides:
visitMethod in class org.objectweb.asm.ClassAdapter