public class org.aspectj.internal.lang.reflect.AdviceImpl implements org.aspectj.lang.reflect.Advice
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.internal.lang.reflect.AdviceImpl
  super_class: java.lang.Object
{
  private static final java.lang.String AJC_INTERNAL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.aspectj.runtime.internal"

  private final org.aspectj.lang.reflect.AdviceKind kind;
    descriptor: Lorg/aspectj/lang/reflect/AdviceKind;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.reflect.Method adviceMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.aspectj.lang.reflect.PointcutExpression pointcutExpression;
    descriptor: Lorg/aspectj/lang/reflect/PointcutExpression;
    flags: (0x0002) ACC_PRIVATE

  private boolean hasExtraParam;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.reflect.Type[] genericParameterTypes;
    descriptor: [Ljava/lang/reflect/Type;
    flags: (0x0002) ACC_PRIVATE

  private org.aspectj.lang.reflect.AjType[] parameterTypes;
    descriptor: [Lorg/aspectj/lang/reflect/AjType;
    flags: (0x0002) ACC_PRIVATE

  private org.aspectj.lang.reflect.AjType[] exceptionTypes;
    descriptor: [Lorg/aspectj/lang/reflect/AjType;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$org$aspectj$lang$reflect$AdviceKind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  protected void <init>(java.lang.reflect.Method, java.lang.String, org.aspectj.lang.reflect.AdviceKind);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/String;Lorg/aspectj/lang/reflect/AdviceKind;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.String pointcut
        start local 3 // org.aspectj.lang.reflect.AdviceKind type
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 35
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.internal.lang.reflect.AdviceImpl.hasExtraParam:Z
         2: .line 41
            aload 0 /* this */
            aload 3 /* type */
            putfield org.aspectj.internal.lang.reflect.AdviceImpl.kind:Lorg/aspectj/lang/reflect/AdviceKind;
         3: .line 42
            aload 0 /* this */
            aload 1 /* method */
            putfield org.aspectj.internal.lang.reflect.AdviceImpl.adviceMethod:Ljava/lang/reflect/Method;
         4: .line 43
            aload 0 /* this */
            new org.aspectj.internal.lang.reflect.PointcutExpressionImpl
            dup
            aload 2 /* pointcut */
            invokespecial org.aspectj.internal.lang.reflect.PointcutExpressionImpl.<init>:(Ljava/lang/String;)V
            putfield org.aspectj.internal.lang.reflect.AdviceImpl.pointcutExpression:Lorg/aspectj/lang/reflect/PointcutExpression;
         5: .line 44
            return
        end local 3 // org.aspectj.lang.reflect.AdviceKind type
        end local 2 // java.lang.String pointcut
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/aspectj/internal/lang/reflect/AdviceImpl;
            0    6     1    method  Ljava/lang/reflect/Method;
            0    6     2  pointcut  Ljava/lang/String;
            0    6     3      type  Lorg/aspectj/lang/reflect/AdviceKind;
    MethodParameters:
          Name  Flags
      method    
      pointcut  
      type      

  protected void <init>(java.lang.reflect.Method, java.lang.String, org.aspectj.lang.reflect.AdviceKind, java.lang.String);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/String;Lorg/aspectj/lang/reflect/AdviceKind;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.String pointcut
        start local 3 // org.aspectj.lang.reflect.AdviceKind type
        start local 4 // java.lang.String extraParamName
         0: .line 47
            aload 0 /* this */
            aload 1 /* method */
            aload 2 /* pointcut */
            aload 3 /* type */
            invokespecial org.aspectj.internal.lang.reflect.AdviceImpl.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;Lorg/aspectj/lang/reflect/AdviceKind;)V
         1: .line 48
            aload 0 /* this */
            iconst_1
            putfield org.aspectj.internal.lang.reflect.AdviceImpl.hasExtraParam:Z
         2: .line 49
            return
        end local 4 // java.lang.String extraParamName
        end local 3 // org.aspectj.lang.reflect.AdviceKind type
        end local 2 // java.lang.String pointcut
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/aspectj/internal/lang/reflect/AdviceImpl;
            0    3     1          method  Ljava/lang/reflect/Method;
            0    3     2        pointcut  Ljava/lang/String;
            0    3     3            type  Lorg/aspectj/lang/reflect/AdviceKind;
            0    3     4  extraParamName  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      method          
      pointcut        
      type            
      extraParamName  

  public org.aspectj.lang.reflect.AjType getDeclaringType();
    descriptor: ()Lorg/aspectj/lang/reflect/AjType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
         0: .line 52
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.adviceMethod:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokestatic org.aspectj.lang.reflect.AjTypeSystem.getAjType:(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
            areturn
        end local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/internal/lang/reflect/AdviceImpl;

  public java.lang.reflect.Type[] getGenericParameterTypes();
    descriptor: ()[Ljava/lang/reflect/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
         0: .line 56
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.genericParameterTypes:[Ljava/lang/reflect/Type;
            ifnonnull 18
         1: .line 57
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.adviceMethod:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
            astore 1 /* genTypes */
        start local 1 // java.lang.reflect.Type[] genTypes
         2: .line 58
            iconst_0
            istore 2 /* syntheticCount */
        start local 2 // int syntheticCount
         3: .line 59
            aload 1 /* genTypes */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: org.aspectj.internal.lang.reflect.AdviceImpl java.lang.reflect.Type[] int top int int java.lang.reflect.Type[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* t */
        start local 3 // java.lang.reflect.Type t
         5: .line 60
            aload 3 /* t */
            instanceof java.lang.Class
            ifeq 7
         6: .line 61
            aload 3 /* t */
            checkcast java.lang.Class
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokevirtual java.lang.Package.getName:()Ljava/lang/String;
            ldc "org.aspectj.runtime.internal"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
            iinc 2 /* syntheticCount */ 1
        end local 3 // java.lang.reflect.Type t
         7: .line 59
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 4
         9: .line 64
            aload 0 /* this */
            aload 1 /* genTypes */
            arraylength
            iload 2 /* syntheticCount */
            isub
            anewarray java.lang.reflect.Type
            putfield org.aspectj.internal.lang.reflect.AdviceImpl.genericParameterTypes:[Ljava/lang/reflect/Type;
        10: .line 65
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        11: goto 17
        12: .line 66
      StackMap locals: org.aspectj.internal.lang.reflect.AdviceImpl java.lang.reflect.Type[] int int
      StackMap stack:
            aload 1 /* genTypes */
            iload 3 /* i */
            aaload
            instanceof java.lang.Class
            ifeq 15
        13: .line 67
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.genericParameterTypes:[Ljava/lang/reflect/Type;
            iload 3 /* i */
            aload 1 /* genTypes */
            iload 3 /* i */
            aaload
            checkcast java.lang.Class
            invokestatic org.aspectj.lang.reflect.AjTypeSystem.getAjType:(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
            aastore
        14: .line 68
            goto 16
        15: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.genericParameterTypes:[Ljava/lang/reflect/Type;
            iload 3 /* i */
            aload 1 /* genTypes */
            iload 3 /* i */
            aaload
            aastore
        16: .line 65
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 3 /* i */
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.genericParameterTypes:[Ljava/lang/reflect/Type;
            arraylength
            if_icmplt 12
        end local 3 // int i
        end local 2 // int syntheticCount
        end local 1 // java.lang.reflect.Type[] genTypes
        18: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.genericParameterTypes:[Ljava/lang/reflect/Type;
            areturn
        end local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            this  Lorg/aspectj/internal/lang/reflect/AdviceImpl;
            2   18     1        genTypes  [Ljava/lang/reflect/Type;
            3   18     2  syntheticCount  I
            5    7     3               t  Ljava/lang/reflect/Type;
           11   18     3               i  I

  public org.aspectj.lang.reflect.AjType<?>[] getParameterTypes();
    descriptor: ()[Lorg/aspectj/lang/reflect/AjType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
         0: .line 77
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.parameterTypes:[Lorg/aspectj/lang/reflect/AjType;
            ifnonnull 14
         1: .line 78
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.adviceMethod:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 1 /* ptypes */
        start local 1 // java.lang.Class[] ptypes
         2: .line 79
            iconst_0
            istore 2 /* syntheticCount */
        start local 2 // int syntheticCount
         3: .line 80
            aload 1 /* ptypes */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: org.aspectj.internal.lang.reflect.AdviceImpl java.lang.Class[] int top int int java.lang.Class[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* c */
        start local 3 // java.lang.Class c
         5: .line 81
            aload 3 /* c */
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokevirtual java.lang.Package.getName:()Ljava/lang/String;
            ldc "org.aspectj.runtime.internal"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
            iinc 2 /* syntheticCount */ 1
        end local 3 // java.lang.Class c
         6: .line 80
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 4
         8: .line 83
            aload 0 /* this */
            aload 1 /* ptypes */
            arraylength
            iload 2 /* syntheticCount */
            isub
            anewarray org.aspectj.lang.reflect.AjType
            putfield org.aspectj.internal.lang.reflect.AdviceImpl.parameterTypes:[Lorg/aspectj/lang/reflect/AjType;
         9: .line 84
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        10: goto 13
        11: .line 85
      StackMap locals: org.aspectj.internal.lang.reflect.AdviceImpl java.lang.Class[] int int
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.parameterTypes:[Lorg/aspectj/lang/reflect/AjType;
            iload 3 /* i */
            aload 1 /* ptypes */
            iload 3 /* i */
            aaload
            invokestatic org.aspectj.lang.reflect.AjTypeSystem.getAjType:(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
            aastore
        12: .line 84
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 3 /* i */
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.parameterTypes:[Lorg/aspectj/lang/reflect/AjType;
            arraylength
            if_icmplt 11
        end local 3 // int i
        end local 2 // int syntheticCount
        end local 1 // java.lang.Class[] ptypes
        14: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.parameterTypes:[Lorg/aspectj/lang/reflect/AjType;
            areturn
        end local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lorg/aspectj/internal/lang/reflect/AdviceImpl;
            2   14     1          ptypes  [Ljava/lang/Class;
            3   14     2  syntheticCount  I
            5    6     3               c  Ljava/lang/Class<*>;
           10   14     3               i  I
    Signature: ()[Lorg/aspectj/lang/reflect/AjType<*>;

  public org.aspectj.lang.reflect.AjType<?>[] getExceptionTypes();
    descriptor: ()[Lorg/aspectj/lang/reflect/AjType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
         0: .line 92
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.exceptionTypes:[Lorg/aspectj/lang/reflect/AjType;
            ifnonnull 8
         1: .line 93
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.adviceMethod:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getExceptionTypes:()[Ljava/lang/Class;
            astore 1 /* exTypes */
        start local 1 // java.lang.Class[] exTypes
         2: .line 94
            aload 0 /* this */
            aload 1 /* exTypes */
            arraylength
            anewarray org.aspectj.lang.reflect.AjType
            putfield org.aspectj.internal.lang.reflect.AdviceImpl.exceptionTypes:[Lorg/aspectj/lang/reflect/AjType;
         3: .line 95
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 96
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.exceptionTypes:[Lorg/aspectj/lang/reflect/AjType;
            iload 2 /* i */
            aload 1 /* exTypes */
            iload 2 /* i */
            aaload
            invokestatic org.aspectj.lang.reflect.AjTypeSystem.getAjType:(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
            aastore
         6: .line 95
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 1 /* exTypes */
            arraylength
            if_icmplt 5
        end local 2 // int i
        end local 1 // java.lang.Class[] exTypes
         8: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.exceptionTypes:[Lorg/aspectj/lang/reflect/AjType;
            areturn
        end local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/aspectj/internal/lang/reflect/AdviceImpl;
            2    8     1  exTypes  [Ljava/lang/Class;
            4    8     2        i  I
    Signature: ()[Lorg/aspectj/lang/reflect/AjType<*>;

  public org.aspectj.lang.reflect.AdviceKind getKind();
    descriptor: ()Lorg/aspectj/lang/reflect/AdviceKind;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
         0: .line 103
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.kind:Lorg/aspectj/lang/reflect/AdviceKind;
            areturn
        end local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/internal/lang/reflect/AdviceImpl;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
         0: .line 107
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.adviceMethod:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 1 /* adviceName */
        start local 1 // java.lang.String adviceName
         1: .line 108
            aload 1 /* adviceName */
            ldc "ajc$"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         2: .line 109
            ldc ""
            astore 1 /* adviceName */
         3: .line 110
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.adviceMethod:Ljava/lang/reflect/Method;
            ldc Lorg/aspectj/lang/annotation/AdviceName;
            invokevirtual java.lang.reflect.Method.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.aspectj.lang.annotation.AdviceName
            astore 2 /* name */
        start local 2 // org.aspectj.lang.annotation.AdviceName name
         4: .line 111
            aload 2 /* name */
            ifnull 5
            aload 2 /* name */
            invokeinterface org.aspectj.lang.annotation.AdviceName.value:()Ljava/lang/String;
            astore 1 /* adviceName */
        end local 2 // org.aspectj.lang.annotation.AdviceName name
         5: .line 113
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* adviceName */
            areturn
        end local 1 // java.lang.String adviceName
        end local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/aspectj/internal/lang/reflect/AdviceImpl;
            1    6     1  adviceName  Ljava/lang/String;
            4    5     2        name  Lorg/aspectj/lang/annotation/AdviceName;

  public org.aspectj.lang.reflect.PointcutExpression getPointcutExpression();
    descriptor: ()Lorg/aspectj/lang/reflect/PointcutExpression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
         0: .line 117
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.pointcutExpression:Lorg/aspectj/lang/reflect/PointcutExpression;
            areturn
        end local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/internal/lang/reflect/AdviceImpl;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
         0: .line 121
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuffer sb
         1: .line 122
            aload 0 /* this */
            invokevirtual org.aspectj.internal.lang.reflect.AdviceImpl.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifle 5
         2: .line 123
            aload 1 /* sb */
            ldc "@AdviceName(\""
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         3: .line 124
            aload 1 /* sb */
            aload 0 /* this */
            invokevirtual org.aspectj.internal.lang.reflect.AdviceImpl.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         4: .line 125
            aload 1 /* sb */
            ldc "\") "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         5: .line 127
      StackMap locals: java.lang.StringBuffer
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.aspectj.internal.lang.reflect.AdviceImpl.getKind:()Lorg/aspectj/lang/reflect/AdviceKind;
            getstatic org.aspectj.lang.reflect.AdviceKind.AROUND:Lorg/aspectj/lang/reflect/AdviceKind;
            if_acmpne 8
         6: .line 128
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.adviceMethod:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getGenericReturnType:()Ljava/lang/reflect/Type;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         7: .line 129
            aload 1 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         8: .line 131
      StackMap locals:
      StackMap stack:
            invokestatic org.aspectj.internal.lang.reflect.AdviceImpl.$SWITCH_TABLE$org$aspectj$lang$reflect$AdviceKind:()[I
            aload 0 /* this */
            invokevirtual org.aspectj.internal.lang.reflect.AdviceImpl.getKind:()Lorg/aspectj/lang/reflect/AdviceKind;
            invokevirtual org.aspectj.lang.reflect.AdviceKind.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 17
                    2: 9
                    3: 11
                    4: 13
                    5: 15
              default: 18
          }
         9: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "after("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        10: .line 134
            goto 18
        11: .line 136
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "after("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        12: .line 137
            goto 18
        13: .line 139
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "after("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        14: .line 140
            goto 18
        15: .line 142
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "around("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        16: .line 143
            goto 18
        17: .line 145
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "before("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        18: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.aspectj.internal.lang.reflect.AdviceImpl.getParameterTypes:()[Lorg/aspectj/lang/reflect/AjType;
            astore 2 /* ptypes */
        start local 2 // org.aspectj.lang.reflect.AjType[] ptypes
        19: .line 149
            aload 2 /* ptypes */
            arraylength
            istore 3 /* len */
        start local 3 // int len
        20: .line 150
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.hasExtraParam:Z
            ifeq 21
            iinc 3 /* len */ -1
        21: .line 151
      StackMap locals: org.aspectj.lang.reflect.AjType[] int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        22: goto 26
        23: .line 152
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            aload 2 /* ptypes */
            iload 4 /* i */
            aaload
            invokeinterface org.aspectj.lang.reflect.AjType.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        24: .line 153
            iload 4 /* i */
            iconst_1
            iadd
            iload 3 /* len */
            if_icmpge 25
            aload 1 /* sb */
            ldc ","
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        25: .line 151
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 4 /* i */
            iload 3 /* len */
            if_icmplt 23
        end local 4 // int i
        27: .line 155
            aload 1 /* sb */
            ldc ") "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        28: .line 156
            invokestatic org.aspectj.internal.lang.reflect.AdviceImpl.$SWITCH_TABLE$org$aspectj$lang$reflect$AdviceKind:()[I
            aload 0 /* this */
            invokevirtual org.aspectj.internal.lang.reflect.AdviceImpl.getKind:()Lorg/aspectj/lang/reflect/AdviceKind;
            invokevirtual org.aspectj.lang.reflect.AdviceKind.ordinal:()I
            iaload
            tableswitch { // 3 - 4
                    3: 29
                    4: 34
              default: 39
          }
        29: .line 158
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "returning"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        30: .line 159
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.hasExtraParam:Z
            ifeq 34
        31: .line 160
            aload 1 /* sb */
            ldc "("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        32: .line 161
            aload 1 /* sb */
            aload 2 /* ptypes */
            iload 3 /* len */
            iconst_1
            isub
            aaload
            invokeinterface org.aspectj.lang.reflect.AjType.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        33: .line 162
            aload 1 /* sb */
            ldc ") "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        34: .line 165
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "throwing"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        35: .line 166
            aload 0 /* this */
            getfield org.aspectj.internal.lang.reflect.AdviceImpl.hasExtraParam:Z
            ifeq 39
        36: .line 167
            aload 1 /* sb */
            ldc "("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        37: .line 168
            aload 1 /* sb */
            aload 2 /* ptypes */
            iload 3 /* len */
            iconst_1
            isub
            aaload
            invokeinterface org.aspectj.lang.reflect.AjType.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        38: .line 169
            aload 1 /* sb */
            ldc ") "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        39: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.aspectj.internal.lang.reflect.AdviceImpl.getExceptionTypes:()[Lorg/aspectj/lang/reflect/AjType;
            astore 4 /* exTypes */
        start local 4 // org.aspectj.lang.reflect.AjType[] exTypes
        40: .line 174
            aload 4 /* exTypes */
            arraylength
            ifle 49
        41: .line 175
            aload 1 /* sb */
            ldc "throws "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        42: .line 176
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        43: goto 47
        44: .line 177
      StackMap locals: org.aspectj.lang.reflect.AjType[] int
      StackMap stack:
            aload 1 /* sb */
            aload 4 /* exTypes */
            iload 5 /* i */
            aaload
            invokeinterface org.aspectj.lang.reflect.AjType.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        45: .line 178
            iload 5 /* i */
            iconst_1
            iadd
            aload 4 /* exTypes */
            arraylength
            if_icmpge 46
            aload 1 /* sb */
            ldc ","
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        46: .line 176
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        47: iload 5 /* i */
            aload 4 /* exTypes */
            arraylength
            if_icmplt 44
        end local 5 // int i
        48: .line 180
            aload 1 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        49: .line 182
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc ": "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        50: .line 183
            aload 1 /* sb */
            aload 0 /* this */
            invokevirtual org.aspectj.internal.lang.reflect.AdviceImpl.getPointcutExpression:()Lorg/aspectj/lang/reflect/PointcutExpression;
            invokeinterface org.aspectj.lang.reflect.PointcutExpression.asString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        51: .line 184
            aload 1 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 4 // org.aspectj.lang.reflect.AjType[] exTypes
        end local 3 // int len
        end local 2 // org.aspectj.lang.reflect.AjType[] ptypes
        end local 1 // java.lang.StringBuffer sb
        end local 0 // org.aspectj.internal.lang.reflect.AdviceImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   52     0     this  Lorg/aspectj/internal/lang/reflect/AdviceImpl;
            1   52     1       sb  Ljava/lang/StringBuffer;
           19   52     2   ptypes  [Lorg/aspectj/lang/reflect/AjType;
           20   52     3      len  I
           22   27     4        i  I
           40   52     4  exTypes  [Lorg/aspectj/lang/reflect/AjType;
           43   48     5        i  I

  static int[] $SWITCH_TABLE$org$aspectj$lang$reflect$AdviceKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 28
            getstatic org.aspectj.internal.lang.reflect.AdviceImpl.$SWITCH_TABLE$org$aspectj$lang$reflect$AdviceKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.aspectj.lang.reflect.AdviceKind.values:()[Lorg/aspectj/lang/reflect/AdviceKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.aspectj.lang.reflect.AdviceKind.AFTER:Lorg/aspectj/lang/reflect/AdviceKind;
            invokevirtual org.aspectj.lang.reflect.AdviceKind.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.aspectj.lang.reflect.AdviceKind.AFTER_RETURNING:Lorg/aspectj/lang/reflect/AdviceKind;
            invokevirtual org.aspectj.lang.reflect.AdviceKind.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.aspectj.lang.reflect.AdviceKind.AFTER_THROWING:Lorg/aspectj/lang/reflect/AdviceKind;
            invokevirtual org.aspectj.lang.reflect.AdviceKind.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.aspectj.lang.reflect.AdviceKind.AROUND:Lorg/aspectj/lang/reflect/AdviceKind;
            invokevirtual org.aspectj.lang.reflect.AdviceKind.ordinal:()I
            iconst_5
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.aspectj.lang.reflect.AdviceKind.BEFORE:Lorg/aspectj/lang/reflect/AdviceKind;
            invokevirtual org.aspectj.lang.reflect.AdviceKind.ordinal:()I
            iconst_1
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic org.aspectj.internal.lang.reflect.AdviceImpl.$SWITCH_TABLE$org$aspectj$lang$reflect$AdviceKind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
SourceFile: "AdviceImpl.java"