public class org.aspectj.weaver.MethodDelegateTypeMunger extends org.aspectj.weaver.ResolvedTypeMunger
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.weaver.MethodDelegateTypeMunger
  super_class: org.aspectj.weaver.ResolvedTypeMunger
{
  private final org.aspectj.weaver.UnresolvedType aspect;
    descriptor: Lorg/aspectj/weaver/UnresolvedType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.aspectj.weaver.UnresolvedType fieldType;
    descriptor: Lorg/aspectj/weaver/UnresolvedType;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.String implClassName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.aspectj.weaver.patterns.TypePattern typePattern;
    descriptor: Lorg/aspectj/weaver/patterns/TypePattern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.String factoryMethodName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String factoryMethodSignature;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private int bitflags;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private static final int REPLACING_EXISTING_METHOD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private volatile int hashCode;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  public void <init>(org.aspectj.weaver.ResolvedMember, org.aspectj.weaver.UnresolvedType, java.lang.String, org.aspectj.weaver.patterns.TypePattern);
    descriptor: (Lorg/aspectj/weaver/ResolvedMember;Lorg/aspectj/weaver/UnresolvedType;Ljava/lang/String;Lorg/aspectj/weaver/patterns/TypePattern;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
        start local 1 // org.aspectj.weaver.ResolvedMember signature
        start local 2 // org.aspectj.weaver.UnresolvedType aspect
        start local 3 // java.lang.String implClassName
        start local 4 // org.aspectj.weaver.patterns.TypePattern typePattern
         0: .line 61
            aload 0 /* this */
            getstatic org.aspectj.weaver.MethodDelegateTypeMunger.MethodDelegate2:Lorg/aspectj/weaver/ResolvedTypeMunger$Kind;
            aload 1 /* signature */
            invokespecial org.aspectj.weaver.ResolvedTypeMunger.<init>:(Lorg/aspectj/weaver/ResolvedTypeMunger$Kind;Lorg/aspectj/weaver/ResolvedMember;)V
         1: .line 93
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.hashCode:I
         2: .line 62
            aload 0 /* this */
            aload 2 /* aspect */
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
         3: .line 63
            aload 0 /* this */
            aload 4 /* typePattern */
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.typePattern:Lorg/aspectj/weaver/patterns/TypePattern;
         4: .line 64
            aload 0 /* this */
            aload 3 /* implClassName */
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.implClassName:Ljava/lang/String;
         5: .line 65
            aload 0 /* this */
            ldc ""
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
         6: .line 66
            aload 0 /* this */
            ldc ""
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
         7: .line 67
            return
        end local 4 // org.aspectj.weaver.patterns.TypePattern typePattern
        end local 3 // java.lang.String implClassName
        end local 2 // org.aspectj.weaver.UnresolvedType aspect
        end local 1 // org.aspectj.weaver.ResolvedMember signature
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
            0    8     1      signature  Lorg/aspectj/weaver/ResolvedMember;
            0    8     2         aspect  Lorg/aspectj/weaver/UnresolvedType;
            0    8     3  implClassName  Ljava/lang/String;
            0    8     4    typePattern  Lorg/aspectj/weaver/patterns/TypePattern;
    MethodParameters:
               Name  Flags
      signature      
      aspect         
      implClassName  
      typePattern    

  public void <init>(org.aspectj.weaver.ResolvedMember, org.aspectj.weaver.UnresolvedType, java.lang.String, org.aspectj.weaver.patterns.TypePattern, java.lang.String, java.lang.String);
    descriptor: (Lorg/aspectj/weaver/ResolvedMember;Lorg/aspectj/weaver/UnresolvedType;Ljava/lang/String;Lorg/aspectj/weaver/patterns/TypePattern;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=7
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
        start local 1 // org.aspectj.weaver.ResolvedMember signature
        start local 2 // org.aspectj.weaver.UnresolvedType aspect
        start local 3 // java.lang.String implClassName
        start local 4 // org.aspectj.weaver.patterns.TypePattern typePattern
        start local 5 // java.lang.String factoryMethodName
        start local 6 // java.lang.String factoryMethodSignature
         0: .line 71
            aload 0 /* this */
            getstatic org.aspectj.weaver.MethodDelegateTypeMunger.MethodDelegate2:Lorg/aspectj/weaver/ResolvedTypeMunger$Kind;
            aload 1 /* signature */
            invokespecial org.aspectj.weaver.ResolvedTypeMunger.<init>:(Lorg/aspectj/weaver/ResolvedTypeMunger$Kind;Lorg/aspectj/weaver/ResolvedMember;)V
         1: .line 93
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.hashCode:I
         2: .line 72
            aload 0 /* this */
            aload 2 /* aspect */
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
         3: .line 73
            aload 0 /* this */
            aload 4 /* typePattern */
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.typePattern:Lorg/aspectj/weaver/patterns/TypePattern;
         4: .line 74
            aload 0 /* this */
            aload 3 /* implClassName */
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.implClassName:Ljava/lang/String;
         5: .line 75
            aload 0 /* this */
            aload 5 /* factoryMethodName */
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
         6: .line 76
            aload 0 /* this */
            aload 6 /* factoryMethodSignature */
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
         7: .line 77
            return
        end local 6 // java.lang.String factoryMethodSignature
        end local 5 // java.lang.String factoryMethodName
        end local 4 // org.aspectj.weaver.patterns.TypePattern typePattern
        end local 3 // java.lang.String implClassName
        end local 2 // org.aspectj.weaver.UnresolvedType aspect
        end local 1 // org.aspectj.weaver.ResolvedMember signature
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    8     0                    this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
            0    8     1               signature  Lorg/aspectj/weaver/ResolvedMember;
            0    8     2                  aspect  Lorg/aspectj/weaver/UnresolvedType;
            0    8     3           implClassName  Ljava/lang/String;
            0    8     4             typePattern  Lorg/aspectj/weaver/patterns/TypePattern;
            0    8     5       factoryMethodName  Ljava/lang/String;
            0    8     6  factoryMethodSignature  Ljava/lang/String;
    MethodParameters:
                        Name  Flags
      signature               
      aspect                  
      implClassName           
      typePattern             
      factoryMethodName       
      factoryMethodSignature  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
        start local 1 // java.lang.Object other
         0: .line 80
            aload 1 /* other */
            instanceof org.aspectj.weaver.MethodDelegateTypeMunger
            ifne 2
         1: .line 81
            iconst_0
            ireturn
         2: .line 83
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            checkcast org.aspectj.weaver.MethodDelegateTypeMunger
            astore 2 /* o */
        start local 2 // org.aspectj.weaver.MethodDelegateTypeMunger o
         3: .line 84
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
            ifnonnull 4
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
            ifnonnull 18
            goto 5
      StackMap locals: org.aspectj.weaver.MethodDelegateTypeMunger
      StackMap stack:
         4: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
            invokevirtual org.aspectj.weaver.UnresolvedType.equals:(Ljava/lang/Object;)Z
            ifeq 18
         5: .line 85
      StackMap locals:
      StackMap stack:
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.typePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            ifnonnull 6
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.typePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            ifnonnull 18
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.typePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.typePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 18
         7: .line 86
      StackMap locals:
      StackMap stack:
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.implClassName:Ljava/lang/String;
            ifnonnull 8
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.implClassName:Ljava/lang/String;
            ifnonnull 18
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.implClassName:Ljava/lang/String;
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.implClassName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
         9: .line 87
      StackMap locals:
      StackMap stack:
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.fieldType:Lorg/aspectj/weaver/UnresolvedType;
            ifnonnull 10
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.fieldType:Lorg/aspectj/weaver/UnresolvedType;
            ifnonnull 18
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.fieldType:Lorg/aspectj/weaver/UnresolvedType;
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.fieldType:Lorg/aspectj/weaver/UnresolvedType;
            invokevirtual org.aspectj.weaver.UnresolvedType.equals:(Ljava/lang/Object;)Z
            ifeq 18
        11: .line 88
      StackMap locals:
      StackMap stack:
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
            ifnonnull 12
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
            ifnonnull 18
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        13: .line 89
      StackMap locals:
      StackMap stack:
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
            ifnonnull 14
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
            ifnonnull 18
            goto 16
      StackMap locals:
      StackMap stack:
        14: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
        15: .line 90
            aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
      StackMap locals:
      StackMap stack:
        16: aload 2 /* o */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.bitflags:I
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.bitflags:I
            if_icmpne 18
        17: .line 84
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        18: iconst_0
            ireturn
        end local 2 // org.aspectj.weaver.MethodDelegateTypeMunger o
        end local 1 // java.lang.Object other
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
            0   19     1  other  Ljava/lang/Object;
            3   19     2      o  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
    MethodParameters:
       Name  Flags
      other  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
         0: .line 96
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.hashCode:I
            ifne 22
         1: .line 97
            bipush 17
            istore 1 /* result */
        start local 1 // int result
         2: .line 98
            bipush 37
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
            ifnonnull 3
            iconst_0
            goto 4
      StackMap locals: org.aspectj.weaver.MethodDelegateTypeMunger int
      StackMap stack: int
         3: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
            invokevirtual org.aspectj.weaver.UnresolvedType.hashCode:()I
      StackMap locals: org.aspectj.weaver.MethodDelegateTypeMunger int
      StackMap stack: int int
         4: iadd
            istore 1 /* result */
         5: .line 99
            bipush 37
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.typePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            ifnonnull 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack: int
         6: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.typePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            invokevirtual java.lang.Object.hashCode:()I
      StackMap locals: org.aspectj.weaver.MethodDelegateTypeMunger int
      StackMap stack: int int
         7: iadd
            istore 1 /* result */
         8: .line 100
            bipush 37
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.implClassName:Ljava/lang/String;
            ifnonnull 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack: int
         9: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.implClassName:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
      StackMap locals: org.aspectj.weaver.MethodDelegateTypeMunger int
      StackMap stack: int int
        10: iadd
            istore 1 /* result */
        11: .line 101
            bipush 37
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.fieldType:Lorg/aspectj/weaver/UnresolvedType;
            ifnonnull 12
            iconst_0
            goto 13
      StackMap locals:
      StackMap stack: int
        12: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.fieldType:Lorg/aspectj/weaver/UnresolvedType;
            invokevirtual org.aspectj.weaver.UnresolvedType.hashCode:()I
      StackMap locals: org.aspectj.weaver.MethodDelegateTypeMunger int
      StackMap stack: int int
        13: iadd
            istore 1 /* result */
        14: .line 102
            bipush 37
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
            ifnonnull 15
            iconst_0
            goto 16
      StackMap locals:
      StackMap stack: int
        15: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
      StackMap locals: org.aspectj.weaver.MethodDelegateTypeMunger int
      StackMap stack: int int
        16: iadd
            istore 1 /* result */
        17: .line 103
            bipush 37
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
            ifnonnull 18
            iconst_0
            goto 19
      StackMap locals:
      StackMap stack: int
        18: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
      StackMap locals: org.aspectj.weaver.MethodDelegateTypeMunger int
      StackMap stack: int int
        19: iadd
            istore 1 /* result */
        20: .line 104
            bipush 37
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.bitflags:I
            iadd
            istore 1 /* result */
        21: .line 105
            aload 0 /* this */
            iload 1 /* result */
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.hashCode:I
        end local 1 // int result
        22: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.hashCode:I
            ireturn
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0    this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
            2   22     1  result  I

  public org.aspectj.weaver.ResolvedMember getDelegate(org.aspectj.weaver.ResolvedType);
    descriptor: (Lorg/aspectj/weaver/ResolvedType;)Lorg/aspectj/weaver/ResolvedMember;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
        start local 1 // org.aspectj.weaver.ResolvedType targetType
         0: .line 111
            aload 1 /* targetType */
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.fieldType:Lorg/aspectj/weaver/UnresolvedType;
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
            invokestatic org.aspectj.weaver.AjcMemberMaker.itdAtDeclareParentsField:(Lorg/aspectj/weaver/ResolvedType;Lorg/aspectj/weaver/UnresolvedType;Lorg/aspectj/weaver/UnresolvedType;)Lorg/aspectj/weaver/ResolvedMember;
            areturn
        end local 1 // org.aspectj.weaver.ResolvedType targetType
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
            0    1     1  targetType  Lorg/aspectj/weaver/ResolvedType;
    MethodParameters:
            Name  Flags
      targetType  

  public org.aspectj.weaver.ResolvedMember getDelegateFactoryMethod(org.aspectj.weaver.World);
    descriptor: (Lorg/aspectj/weaver/World;)Lorg/aspectj/weaver/ResolvedMember;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
        start local 1 // org.aspectj.weaver.World w
         0: .line 115
            aload 1 /* w */
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
            invokevirtual org.aspectj.weaver.World.resolve:(Lorg/aspectj/weaver/UnresolvedType;)Lorg/aspectj/weaver/ResolvedType;
            astore 2 /* aspectType */
        start local 2 // org.aspectj.weaver.ResolvedType aspectType
         1: .line 116
            aload 2 /* aspectType */
            invokevirtual org.aspectj.weaver.ResolvedType.getDeclaredMethods:()[Lorg/aspectj/weaver/ResolvedMember;
            astore 3 /* methods */
        start local 3 // org.aspectj.weaver.ResolvedMember[] methods
         2: .line 117
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 8
         4: .line 118
      StackMap locals: org.aspectj.weaver.ResolvedType org.aspectj.weaver.ResolvedMember[] int
      StackMap stack:
            aload 3 /* methods */
            iload 4 /* i */
            aaload
            astore 5 /* rm */
        start local 5 // org.aspectj.weaver.ResolvedMember rm
         5: .line 119
            aload 5 /* rm */
            invokeinterface org.aspectj.weaver.ResolvedMember.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
            aload 5 /* rm */
            invokeinterface org.aspectj.weaver.ResolvedMember.getSignature:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 120
            aload 5 /* rm */
            areturn
        end local 5 // org.aspectj.weaver.ResolvedMember rm
         7: .line 117
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            aload 3 /* methods */
            arraylength
            if_icmplt 4
        end local 4 // int i
         9: .line 123
            aconst_null
            areturn
        end local 3 // org.aspectj.weaver.ResolvedMember[] methods
        end local 2 // org.aspectj.weaver.ResolvedType aspectType
        end local 1 // org.aspectj.weaver.World w
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
            0   10     1           w  Lorg/aspectj/weaver/World;
            1   10     2  aspectType  Lorg/aspectj/weaver/ResolvedType;
            2   10     3     methods  [Lorg/aspectj/weaver/ResolvedMember;
            3    9     4           i  I
            5    7     5          rm  Lorg/aspectj/weaver/ResolvedMember;
    MethodParameters:
      Name  Flags
      w     

  public java.lang.String getImplClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
         0: .line 127
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.implClassName:Ljava/lang/String;
            areturn
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;

  public void write(org.aspectj.weaver.CompressingDataOutputStream);
    descriptor: (Lorg/aspectj/weaver/CompressingDataOutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
        start local 1 // org.aspectj.weaver.CompressingDataOutputStream s
         0: .line 131
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.kind:Lorg/aspectj/weaver/ResolvedTypeMunger$Kind;
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.ResolvedTypeMunger$Kind.write:(Ljava/io/DataOutputStream;)V
         1: .line 132
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.signature:Lorg/aspectj/weaver/ResolvedMember;
            aload 1 /* s */
            invokeinterface org.aspectj.weaver.ResolvedMember.write:(Lorg/aspectj/weaver/CompressingDataOutputStream;)V
         2: .line 133
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.UnresolvedType.write:(Lorg/aspectj/weaver/CompressingDataOutputStream;)V
         3: .line 134
            aload 1 /* s */
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.implClassName:Ljava/lang/String;
            ifnonnull 4
            ldc ""
            goto 5
      StackMap locals:
      StackMap stack: org.aspectj.weaver.CompressingDataOutputStream
         4: aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.implClassName:Ljava/lang/String;
      StackMap locals: org.aspectj.weaver.MethodDelegateTypeMunger org.aspectj.weaver.CompressingDataOutputStream
      StackMap stack: org.aspectj.weaver.CompressingDataOutputStream java.lang.String
         5: invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeUTF:(Ljava/lang/String;)V
         6: .line 135
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.typePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.patterns.TypePattern.write:(Lorg/aspectj/weaver/CompressingDataOutputStream;)V
         7: .line 136
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.fieldType:Lorg/aspectj/weaver/UnresolvedType;
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.UnresolvedType.write:(Lorg/aspectj/weaver/CompressingDataOutputStream;)V
         8: .line 137
            aload 1 /* s */
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeUTF:(Ljava/lang/String;)V
         9: .line 138
            aload 1 /* s */
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeUTF:(Ljava/lang/String;)V
        10: .line 139
            aload 1 /* s */
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.bitflags:I
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeInt:(I)V
        11: .line 140
            return
        end local 1 // org.aspectj.weaver.CompressingDataOutputStream s
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
            0   12     1     s  Lorg/aspectj/weaver/CompressingDataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  public static org.aspectj.weaver.ResolvedTypeMunger readMethod(org.aspectj.weaver.VersionedDataInputStream, org.aspectj.weaver.ISourceContext, boolean);
    descriptor: (Lorg/aspectj/weaver/VersionedDataInputStream;Lorg/aspectj/weaver/ISourceContext;Z)Lorg/aspectj/weaver/ResolvedTypeMunger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // org.aspectj.weaver.VersionedDataInputStream s
        start local 1 // org.aspectj.weaver.ISourceContext context
        start local 2 // boolean isEnhanced
         0: .line 144
            aload 0 /* s */
            aload 1 /* context */
            invokestatic org.aspectj.weaver.ResolvedMemberImpl.readResolvedMember:(Lorg/aspectj/weaver/VersionedDataInputStream;Lorg/aspectj/weaver/ISourceContext;)Lorg/aspectj/weaver/ResolvedMemberImpl;
            astore 3 /* signature */
        start local 3 // org.aspectj.weaver.ResolvedMemberImpl signature
         1: .line 145
            aload 0 /* s */
            invokestatic org.aspectj.weaver.UnresolvedType.read:(Ljava/io/DataInputStream;)Lorg/aspectj/weaver/UnresolvedType;
            astore 4 /* aspect */
        start local 4 // org.aspectj.weaver.UnresolvedType aspect
         2: .line 146
            aload 0 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readUTF:()Ljava/lang/String;
            astore 5 /* implClassName */
        start local 5 // java.lang.String implClassName
         3: .line 147
            aload 5 /* implClassName */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 148
            aconst_null
            astore 5 /* implClassName */
         5: .line 150
      StackMap locals: org.aspectj.weaver.ResolvedMemberImpl org.aspectj.weaver.UnresolvedType java.lang.String
      StackMap stack:
            aload 0 /* s */
            aload 1 /* context */
            invokestatic org.aspectj.weaver.patterns.TypePattern.read:(Lorg/aspectj/weaver/VersionedDataInputStream;Lorg/aspectj/weaver/ISourceContext;)Lorg/aspectj/weaver/patterns/TypePattern;
            astore 6 /* tp */
        start local 6 // org.aspectj.weaver.patterns.TypePattern tp
         6: .line 151
            new org.aspectj.weaver.MethodDelegateTypeMunger
            dup
            aload 3 /* signature */
            aload 4 /* aspect */
            aload 5 /* implClassName */
            aload 6 /* tp */
            invokespecial org.aspectj.weaver.MethodDelegateTypeMunger.<init>:(Lorg/aspectj/weaver/ResolvedMember;Lorg/aspectj/weaver/UnresolvedType;Ljava/lang/String;Lorg/aspectj/weaver/patterns/TypePattern;)V
            astore 7 /* typeMunger */
        start local 7 // org.aspectj.weaver.MethodDelegateTypeMunger typeMunger
         7: .line 152
            aconst_null
            astore 8 /* fieldType */
        start local 8 // org.aspectj.weaver.UnresolvedType fieldType
         8: .line 153
            iload 2 /* isEnhanced */
            ifeq 11
         9: .line 154
            aload 0 /* s */
            invokestatic org.aspectj.weaver.UnresolvedType.read:(Ljava/io/DataInputStream;)Lorg/aspectj/weaver/UnresolvedType;
            astore 8 /* fieldType */
        10: .line 155
            goto 12
        11: .line 157
      StackMap locals: org.aspectj.weaver.patterns.TypePattern org.aspectj.weaver.MethodDelegateTypeMunger org.aspectj.weaver.UnresolvedType
      StackMap stack:
            aload 3 /* signature */
            invokevirtual org.aspectj.weaver.ResolvedMemberImpl.getDeclaringType:()Lorg/aspectj/weaver/UnresolvedType;
            astore 8 /* fieldType */
        12: .line 159
      StackMap locals:
      StackMap stack:
            aload 7 /* typeMunger */
            aload 8 /* fieldType */
            invokevirtual org.aspectj.weaver.MethodDelegateTypeMunger.setFieldType:(Lorg/aspectj/weaver/UnresolvedType;)V
        13: .line 160
            iload 2 /* isEnhanced */
            ifeq 17
        14: .line 161
            aload 7 /* typeMunger */
            aload 0 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readUTF:()Ljava/lang/String;
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
        15: .line 162
            aload 7 /* typeMunger */
            aload 0 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readUTF:()Ljava/lang/String;
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
        16: .line 163
            aload 7 /* typeMunger */
            aload 0 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readInt:()I
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.bitflags:I
        17: .line 165
      StackMap locals:
      StackMap stack:
            aload 7 /* typeMunger */
            areturn
        end local 8 // org.aspectj.weaver.UnresolvedType fieldType
        end local 7 // org.aspectj.weaver.MethodDelegateTypeMunger typeMunger
        end local 6 // org.aspectj.weaver.patterns.TypePattern tp
        end local 5 // java.lang.String implClassName
        end local 4 // org.aspectj.weaver.UnresolvedType aspect
        end local 3 // org.aspectj.weaver.ResolvedMemberImpl signature
        end local 2 // boolean isEnhanced
        end local 1 // org.aspectj.weaver.ISourceContext context
        end local 0 // org.aspectj.weaver.VersionedDataInputStream s
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0              s  Lorg/aspectj/weaver/VersionedDataInputStream;
            0   18     1        context  Lorg/aspectj/weaver/ISourceContext;
            0   18     2     isEnhanced  Z
            1   18     3      signature  Lorg/aspectj/weaver/ResolvedMemberImpl;
            2   18     4         aspect  Lorg/aspectj/weaver/UnresolvedType;
            3   18     5  implClassName  Ljava/lang/String;
            6   18     6             tp  Lorg/aspectj/weaver/patterns/TypePattern;
            7   18     7     typeMunger  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
            8   18     8      fieldType  Lorg/aspectj/weaver/UnresolvedType;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      s           
      context     
      isEnhanced  

  public boolean matches(org.aspectj.weaver.ResolvedType, org.aspectj.weaver.ResolvedType);
    descriptor: (Lorg/aspectj/weaver/ResolvedType;Lorg/aspectj/weaver/ResolvedType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
        start local 1 // org.aspectj.weaver.ResolvedType matchType
        start local 2 // org.aspectj.weaver.ResolvedType aspectType
         0: .line 177
            aload 1 /* matchType */
            invokevirtual org.aspectj.weaver.ResolvedType.isEnum:()Z
            ifne 1
            aload 1 /* matchType */
            invokevirtual org.aspectj.weaver.ResolvedType.isInterface:()Z
            ifne 1
            aload 1 /* matchType */
            invokevirtual org.aspectj.weaver.ResolvedType.isAnnotation:()Z
            ifeq 2
         1: .line 178
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.typePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            aload 1 /* matchType */
            invokevirtual org.aspectj.weaver.patterns.TypePattern.matchesStatically:(Lorg/aspectj/weaver/ResolvedType;)Z
            ireturn
        end local 2 // org.aspectj.weaver.ResolvedType aspectType
        end local 1 // org.aspectj.weaver.ResolvedType matchType
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
            0    3     1   matchType  Lorg/aspectj/weaver/ResolvedType;
            0    3     2  aspectType  Lorg/aspectj/weaver/ResolvedType;
    MethodParameters:
            Name  Flags
      matchType   
      aspectType  

  public boolean changesPublicSignature();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
         0: .line 190
            iconst_1
            ireturn
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;

  public void setFieldType(org.aspectj.weaver.UnresolvedType);
    descriptor: (Lorg/aspectj/weaver/UnresolvedType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
        start local 1 // org.aspectj.weaver.UnresolvedType fieldType
         0: .line 271
            aload 0 /* this */
            aload 1 /* fieldType */
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.fieldType:Lorg/aspectj/weaver/UnresolvedType;
         1: .line 272
            return
        end local 1 // org.aspectj.weaver.UnresolvedType fieldType
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
            0    2     1  fieldType  Lorg/aspectj/weaver/UnresolvedType;
    MethodParameters:
           Name  Flags
      fieldType  

  public boolean specifiesDelegateFactoryMethod();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
         0: .line 275
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
            ifnull 1
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;

  public java.lang.String getFactoryMethodName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
         0: .line 279
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodName:Ljava/lang/String;
            areturn
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;

  public java.lang.String getFactoryMethodSignature();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
         0: .line 283
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.factoryMethodSignature:Ljava/lang/String;
            areturn
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;

  public org.aspectj.weaver.UnresolvedType getAspect();
    descriptor: ()Lorg/aspectj/weaver/UnresolvedType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
         0: .line 287
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.aspect:Lorg/aspectj/weaver/UnresolvedType;
            areturn
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;

  public boolean existsToSupportShadowMunging();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
         0: .line 291
            iconst_1
            ireturn
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;

  public void tagAsReplacingExistingMethod();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
         0: .line 295
            aload 0 /* this */
            dup
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.bitflags:I
            iconst_1
            ior
            putfield org.aspectj.weaver.MethodDelegateTypeMunger.bitflags:I
         1: .line 296
            return
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;

  public boolean isReplacingExistingMethod();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
         0: .line 299
            aload 0 /* this */
            getfield org.aspectj.weaver.MethodDelegateTypeMunger.bitflags:I
            iconst_1
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.aspectj.weaver.MethodDelegateTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/weaver/MethodDelegateTypeMunger;
}
SourceFile: "MethodDelegateTypeMunger.java"
NestMembers:
  org.aspectj.weaver.MethodDelegateTypeMunger$FieldHostTypeMunger
InnerClasses:
  public FieldHostTypeMunger = org.aspectj.weaver.MethodDelegateTypeMunger$FieldHostTypeMunger of org.aspectj.weaver.MethodDelegateTypeMunger
  public Kind = org.aspectj.weaver.ResolvedTypeMunger$Kind of org.aspectj.weaver.ResolvedTypeMunger