Package org.pushingpixels.lafwidget.ant
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 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_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, ASM4, ASM5, ASM6, 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, V9
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
augmentInstallListeners(boolean toSynthOriginal, String className, String superClassName, String methodName, String functionDesc)
Augments theinstallListeners
method.void
augmentPaintIconMethod(boolean toSynthOriginal, String className, String superClassName, String methodName, String methodDesc)
Augments thepaintIcon
method that is assumed to always have three parameters.void
augmentUninstallListeners(boolean toSynthOriginal, String className, String superClassName, String methodName, String functionDesc)
Augments theuninstallListeners
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)
-
-
-
Constructor Detail
-
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 Detail
-
visit
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces)
- Overrides:
visit
in classorg.objectweb.asm.ClassVisitor
-
augmentPaintIconMethod
public void augmentPaintIconMethod(boolean toSynthOriginal, String className, String superClassName, String methodName, String methodDesc)
Augments thepaintIcon
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 forvoid installUI(JButton button)
:(Ljavax/swing/JButton;)V
.
-
augmentInstallListeners
public void augmentInstallListeners(boolean toSynthOriginal, String className, String superClassName, String methodName, String functionDesc)
Augments theinstallListeners
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 forvoid installUI(JButton button)
:(Ljavax/swing/JButton;)V
.
-
augmentUninstallListeners
public void augmentUninstallListeners(boolean toSynthOriginal, String className, String superClassName, String methodName, String functionDesc)
Augments theuninstallListeners
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 forvoid installUI(JButton button)
:(Ljavax/swing/JButton;)V
.
-
-