Package org.pushingpixels.lafwidget.ant
Class UiDelegateUpdateAugmenter.AugmentClassAdapter
- java.lang.Object
-
- org.objectweb.asm.ClassVisitor
-
- org.pushingpixels.lafwidget.ant.UiDelegateUpdateAugmenter.AugmentClassAdapter
-
- All Implemented Interfaces:
org.objectweb.asm.Opcodes
- Enclosing class:
- UiDelegateUpdateAugmenter
protected class UiDelegateUpdateAugmenter.AugmentClassAdapter extends org.objectweb.asm.ClassVisitor implements org.objectweb.asm.Opcodes
Class adapter that augments the UI functionality.
-
-
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, ASM7, 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, V9
-
-
Constructor Summary
Constructors Constructor Description AugmentClassAdapter(org.objectweb.asm.ClassVisitor cv, Set<String> existingMethods, Method updateMethod)
Creates a new augmentor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
augmentUpdateMethod(boolean toSynthOriginal, String className, String superClassName, String functionDesc)
Augments theupdate
method that is assumed to always have two parameters.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, Method updateMethod)
Creates a new augmentor.- Parameters:
cv
- Class visitor to recreate the non-augmented methods.existingMethods
- Contains all method names.updateMethod
- Theupdate
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
-
augmentUpdateMethod
public void augmentUpdateMethod(boolean toSynthOriginal, String className, String superClassName, String functionDesc)
Augments theupdate
method that is assumed to always have two 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).functionDesc
- Function signature (using JNI style declaration). Example forvoid installUI(JButton button)
:(Ljavax/swing/JButton;)V
.
-
-