org.jvnet.lafwidget.ant
Class UiDelegateAugmenter.AugmentClassAdapter

java.lang.Object
  extended by ClassAdapter
      extended by org.jvnet.lafwidget.ant.UiDelegateAugmenter.AugmentClassAdapter
Enclosing class:
UiDelegateAugmenter

protected class UiDelegateAugmenter.AugmentClassAdapter
extends ClassAdapter

Class adapter that augments the UI functionality.

Author:
Kirill Grouchnikov

Constructor Summary
UiDelegateAugmenter.AugmentClassAdapter(ClassVisitor cv, java.util.Set<java.lang.String> existingMethods, java.util.Set<java.lang.String> existingFields, java.util.Map<java.lang.String,java.lang.reflect.Method> methodsToAugment)
          Creates a new augmentor.
 
Method Summary
 void augmentInstallUIMethod(boolean toSynthOriginal, java.lang.String className, java.lang.String superClassName, java.lang.String functionDesc)
          Augments the installUI method that is assumed to always have a single parameter.
 void augmentSingleParameterMethod(boolean toSynthOriginal, java.lang.String className, java.lang.String superClassName, java.lang.String methodName, int methodModifiers, java.lang.String functionDesc)
          Augments single-parameter UI method.
 void augmentUpdateMethod(boolean toSynthOriginal, java.lang.String className, java.lang.String superClassName, java.lang.String functionDesc)
          Augments the update method that is assumed to always have two parameters.
 void augmentVoidMethod(boolean toSynthOriginal, java.lang.String className, java.lang.String superClassName, java.lang.String methodName, int methodModifiers)
          Augments void UI method (w/o parameters).
 void visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)
           
 MethodVisitor visitMethod(int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.String[] exceptions)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UiDelegateAugmenter.AugmentClassAdapter

public UiDelegateAugmenter.AugmentClassAdapter(ClassVisitor cv,
                                               java.util.Set<java.lang.String> existingMethods,
                                               java.util.Set<java.lang.String> existingFields,
                                               java.util.Map<java.lang.String,java.lang.reflect.Method> methodsToAugment)
Creates a new augmentor.

Parameters:
cv - Class visitor to recreate the non-augmented methods.
existingMethods - Contains all method names.
existingFields - Contains all field names.
methodsToAugment - Contains all methods that will be augmented. Key is String, value is Method.
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)

augmentVoidMethod

public void augmentVoidMethod(boolean toSynthOriginal,
                              java.lang.String className,
                              java.lang.String superClassName,
                              java.lang.String methodName,
                              int methodModifiers)
Augments void UI method (w/o 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.

augmentSingleParameterMethod

public void augmentSingleParameterMethod(boolean toSynthOriginal,
                                         java.lang.String className,
                                         java.lang.String superClassName,
                                         java.lang.String methodName,
                                         int methodModifiers,
                                         java.lang.String functionDesc)
Augments single-parameter UI 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.

augmentInstallUIMethod

public void augmentInstallUIMethod(boolean toSynthOriginal,
                                   java.lang.String className,
                                   java.lang.String superClassName,
                                   java.lang.String functionDesc)
Augments the installUI method that is assumed to always have a single parameter.

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 for void installUI(JButton button): (Ljavax/swing/JButton;)V.

augmentUpdateMethod

public void augmentUpdateMethod(boolean toSynthOriginal,
                                java.lang.String className,
                                java.lang.String superClassName,
                                java.lang.String functionDesc)
Augments the update 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 for void installUI(JButton button): (Ljavax/swing/JButton;)V.

visitMethod

public MethodVisitor visitMethod(int access,
                                 java.lang.String name,
                                 java.lang.String desc,
                                 java.lang.String signature,
                                 java.lang.String[] exceptions)