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

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

  private org.aspectj.weaver.patterns.TypePattern lazyTestTypePattern;
    descriptor: Lorg/aspectj/weaver/patterns/TypePattern;
    flags: (0x0002) ACC_PRIVATE

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

  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.PerObjectInterfaceTypeMunger this
        start local 1 // java.lang.Object other
         0: .line 30
            aload 1 /* other */
            ifnull 1
            aload 1 /* other */
            instanceof org.aspectj.weaver.PerObjectInterfaceTypeMunger
            ifne 2
         1: .line 31
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 33
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            checkcast org.aspectj.weaver.PerObjectInterfaceTypeMunger
            astore 2 /* o */
        start local 2 // org.aspectj.weaver.PerObjectInterfaceTypeMunger o
         3: .line 34
            aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.testPointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            ifnonnull 4
            aload 2 /* o */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.testPointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            ifnonnull 9
            goto 5
      StackMap locals: org.aspectj.weaver.PerObjectInterfaceTypeMunger
      StackMap stack:
         4: aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.testPointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            aload 2 /* o */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.testPointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 9
         5: .line 35
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.lazyTestTypePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            ifnonnull 6
            aload 2 /* o */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.lazyTestTypePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            ifnonnull 9
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.lazyTestTypePattern:Lorg/aspectj/weaver/patterns/TypePattern;
         7: .line 36
            aload 2 /* o */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.lazyTestTypePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 34
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         9: iconst_0
            ireturn
        end local 2 // org.aspectj.weaver.PerObjectInterfaceTypeMunger o
        end local 1 // java.lang.Object other
        end local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lorg/aspectj/weaver/PerObjectInterfaceTypeMunger;
            0   10     1  other  Ljava/lang/Object;
            3   10     2      o  Lorg/aspectj/weaver/PerObjectInterfaceTypeMunger;
    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.PerObjectInterfaceTypeMunger this
         0: .line 42
            aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.hashCode:I
            ifne 9
         1: .line 43
            bipush 17
            istore 1 /* result */
        start local 1 // int result
         2: .line 44
            bipush 37
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.testPointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            ifnonnull 3
            iconst_0
            goto 4
      StackMap locals: org.aspectj.weaver.PerObjectInterfaceTypeMunger int
      StackMap stack: int
         3: aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.testPointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            invokevirtual java.lang.Object.hashCode:()I
      StackMap locals: org.aspectj.weaver.PerObjectInterfaceTypeMunger int
      StackMap stack: int int
         4: iadd
            istore 1 /* result */
         5: .line 45
            bipush 37
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.lazyTestTypePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            ifnonnull 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack: int
         6: aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.lazyTestTypePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            invokevirtual java.lang.Object.hashCode:()I
      StackMap locals: org.aspectj.weaver.PerObjectInterfaceTypeMunger int
      StackMap stack: int int
         7: iadd
            istore 1 /* result */
         8: .line 46
            aload 0 /* this */
            iload 1 /* result */
            putfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.hashCode:I
        end local 1 // int result
         9: .line 48
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.hashCode:I
            ireturn
        end local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/aspectj/weaver/PerObjectInterfaceTypeMunger;
            2    9     1  result  I

  public void <init>(org.aspectj.weaver.UnresolvedType, org.aspectj.weaver.patterns.Pointcut);
    descriptor: (Lorg/aspectj/weaver/UnresolvedType;Lorg/aspectj/weaver/patterns/Pointcut;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
        start local 1 // org.aspectj.weaver.UnresolvedType aspectType
        start local 2 // org.aspectj.weaver.patterns.Pointcut testPointcut
         0: .line 52
            aload 0 /* this */
            getstatic org.aspectj.weaver.PerObjectInterfaceTypeMunger.PerObjectInterface:Lorg/aspectj/weaver/ResolvedTypeMunger$Kind;
            aconst_null
            invokespecial org.aspectj.weaver.ResolvedTypeMunger.<init>:(Lorg/aspectj/weaver/ResolvedTypeMunger$Kind;Lorg/aspectj/weaver/ResolvedMember;)V
         1: .line 39
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.hashCode:I
         2: .line 53
            aload 0 /* this */
            aload 2 /* testPointcut */
            putfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.testPointcut:Lorg/aspectj/weaver/patterns/Pointcut;
         3: .line 54
            aload 0 /* this */
            aload 1 /* aspectType */
            invokestatic org.aspectj.weaver.AjcMemberMaker.perObjectInterfaceType:(Lorg/aspectj/weaver/UnresolvedType;)Lorg/aspectj/weaver/UnresolvedType;
            putfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.interfaceType:Lorg/aspectj/weaver/UnresolvedType;
         4: .line 55
            return
        end local 2 // org.aspectj.weaver.patterns.Pointcut testPointcut
        end local 1 // org.aspectj.weaver.UnresolvedType aspectType
        end local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/aspectj/weaver/PerObjectInterfaceTypeMunger;
            0    5     1    aspectType  Lorg/aspectj/weaver/UnresolvedType;
            0    5     2  testPointcut  Lorg/aspectj/weaver/patterns/Pointcut;
    MethodParameters:
              Name  Flags
      aspectType    
      testPointcut  

  private org.aspectj.weaver.patterns.TypePattern getTestTypePattern(org.aspectj.weaver.ResolvedType);
    descriptor: (Lorg/aspectj/weaver/ResolvedType;)Lorg/aspectj/weaver/patterns/TypePattern;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
        start local 1 // org.aspectj.weaver.ResolvedType aspectType
         0: .line 58
            aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.lazyTestTypePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            ifnonnull 11
         1: .line 60
            aload 1 /* aspectType */
            invokevirtual org.aspectj.weaver.ResolvedType.getPerClause:()Lorg/aspectj/weaver/patterns/PerClause;
            instanceof org.aspectj.weaver.patterns.PerFromSuper
            ifeq 5
         2: .line 61
            aload 1 /* aspectType */
            invokevirtual org.aspectj.weaver.ResolvedType.getPerClause:()Lorg/aspectj/weaver/patterns/PerClause;
            checkcast org.aspectj.weaver.patterns.PerFromSuper
            astore 3 /* ps */
        start local 3 // org.aspectj.weaver.patterns.PerFromSuper ps
         3: .line 62
            aload 3 /* ps */
            aload 1 /* aspectType */
            invokevirtual org.aspectj.weaver.patterns.PerFromSuper.lookupConcretePerClause:(Lorg/aspectj/weaver/ResolvedType;)Lorg/aspectj/weaver/patterns/PerClause;
            checkcast org.aspectj.weaver.patterns.PerObject
            invokevirtual org.aspectj.weaver.patterns.PerObject.isThis:()Z
            istore 2 /* isPerThis */
        end local 3 // org.aspectj.weaver.patterns.PerFromSuper ps
        start local 2 // boolean isPerThis
         4: .line 63
            goto 6
        end local 2 // boolean isPerThis
         5: .line 64
      StackMap locals:
      StackMap stack:
            aload 1 /* aspectType */
            invokevirtual org.aspectj.weaver.ResolvedType.getPerClause:()Lorg/aspectj/weaver/patterns/PerClause;
            checkcast org.aspectj.weaver.patterns.PerObject
            invokevirtual org.aspectj.weaver.patterns.PerObject.isThis:()Z
            istore 2 /* isPerThis */
        start local 2 // boolean isPerThis
         6: .line 66
      StackMap locals: int
      StackMap stack:
            new org.aspectj.weaver.patterns.PerThisOrTargetPointcutVisitor
            dup
            iload 2 /* isPerThis */
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: org.aspectj.weaver.PerObjectInterfaceTypeMunger org.aspectj.weaver.ResolvedType int
      StackMap stack: new 6 new 6
         7: iconst_1
      StackMap locals: org.aspectj.weaver.PerObjectInterfaceTypeMunger org.aspectj.weaver.ResolvedType int
      StackMap stack: new 6 new 6 int
         8: aload 1 /* aspectType */
            invokespecial org.aspectj.weaver.patterns.PerThisOrTargetPointcutVisitor.<init>:(ZLorg/aspectj/weaver/ResolvedType;)V
            astore 3 /* v */
        start local 3 // org.aspectj.weaver.patterns.PerThisOrTargetPointcutVisitor v
         9: .line 67
            aload 0 /* this */
            aload 3 /* v */
            aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.testPointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            invokevirtual org.aspectj.weaver.patterns.PerThisOrTargetPointcutVisitor.getPerTypePointcut:(Lorg/aspectj/weaver/patterns/Pointcut;)Lorg/aspectj/weaver/patterns/TypePattern;
            putfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.lazyTestTypePattern:Lorg/aspectj/weaver/patterns/TypePattern;
        10: .line 69
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.hashCode:I
        end local 3 // org.aspectj.weaver.patterns.PerThisOrTargetPointcutVisitor v
        end local 2 // boolean isPerThis
        11: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.lazyTestTypePattern:Lorg/aspectj/weaver/patterns/TypePattern;
            areturn
        end local 1 // org.aspectj.weaver.ResolvedType aspectType
        end local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/aspectj/weaver/PerObjectInterfaceTypeMunger;
            0   12     1  aspectType  Lorg/aspectj/weaver/ResolvedType;
            4    5     2   isPerThis  Z
            6   11     2   isPerThis  Z
            3    4     3          ps  Lorg/aspectj/weaver/patterns/PerFromSuper;
            9   11     3           v  Lorg/aspectj/weaver/patterns/PerThisOrTargetPointcutVisitor;
    MethodParameters:
            Name  Flags
      aspectType  

  public void write(org.aspectj.weaver.CompressingDataOutputStream);
    descriptor: (Lorg/aspectj/weaver/CompressingDataOutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
        start local 1 // org.aspectj.weaver.CompressingDataOutputStream s
         0: .line 75
            new java.lang.RuntimeException
            dup
            ldc "shouldn't be serialized"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.aspectj.weaver.CompressingDataOutputStream s
        end local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/PerObjectInterfaceTypeMunger;
            0    1     1     s  Lorg/aspectj/weaver/CompressingDataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

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

  public org.aspectj.weaver.patterns.Pointcut getTestPointcut();
    descriptor: ()Lorg/aspectj/weaver/patterns/Pointcut;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
         0: .line 83
            aload 0 /* this */
            getfield org.aspectj.weaver.PerObjectInterfaceTypeMunger.testPointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            areturn
        end local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/PerObjectInterfaceTypeMunger;

  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.PerObjectInterfaceTypeMunger this
        start local 1 // org.aspectj.weaver.ResolvedType matchType
        start local 2 // org.aspectj.weaver.ResolvedType aspectType
         0: .line 87
            aload 1 /* matchType */
            invokevirtual org.aspectj.weaver.ResolvedType.isInterface:()Z
            ifeq 2
         1: .line 88
            iconst_0
            ireturn
         2: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* aspectType */
            invokevirtual org.aspectj.weaver.PerObjectInterfaceTypeMunger.getTestTypePattern:(Lorg/aspectj/weaver/ResolvedType;)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.PerObjectInterfaceTypeMunger this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/aspectj/weaver/PerObjectInterfaceTypeMunger;
            0    3     1   matchType  Lorg/aspectj/weaver/ResolvedType;
            0    3     2  aspectType  Lorg/aspectj/weaver/ResolvedType;
    MethodParameters:
            Name  Flags
      matchType   
      aspectType  

  public boolean isLateMunger();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
         0: .line 94
            iconst_1
            ireturn
        end local 0 // org.aspectj.weaver.PerObjectInterfaceTypeMunger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/PerObjectInterfaceTypeMunger;
}
SourceFile: "PerObjectInterfaceTypeMunger.java"
InnerClasses:
  public Kind = org.aspectj.weaver.ResolvedTypeMunger$Kind of org.aspectj.weaver.ResolvedTypeMunger