public abstract class org.springframework.aop.support.MethodMatchers
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.aop.support.MethodMatchers
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.aop.support.MethodMatchers this
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.aop.support.MethodMatchers this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/support/MethodMatchers;

  public static org.springframework.aop.MethodMatcher union(org.springframework.aop.MethodMatcher, org.springframework.aop.MethodMatcher);
    descriptor: (Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/MethodMatcher;)Lorg/springframework/aop/MethodMatcher;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.aop.MethodMatcher mm1
        start local 1 // org.springframework.aop.MethodMatcher mm2
         0: .line 51
            aload 0 /* mm1 */
            instanceof org.springframework.aop.IntroductionAwareMethodMatcher
            ifne 1
            aload 1 /* mm2 */
            instanceof org.springframework.aop.IntroductionAwareMethodMatcher
            ifeq 2
         1: .line 52
      StackMap locals:
      StackMap stack:
            new org.springframework.aop.support.MethodMatchers$UnionIntroductionAwareMethodMatcher
            dup
            aload 0 /* mm1 */
            aload 1 /* mm2 */
            invokespecial org.springframework.aop.support.MethodMatchers$UnionIntroductionAwareMethodMatcher.<init>:(Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/MethodMatcher;)V
            goto 3
      StackMap locals:
      StackMap stack:
         2: new org.springframework.aop.support.MethodMatchers$UnionMethodMatcher
            dup
            aload 0 /* mm1 */
            aload 1 /* mm2 */
            invokespecial org.springframework.aop.support.MethodMatchers$UnionMethodMatcher.<init>:(Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/MethodMatcher;)V
         3: .line 51
      StackMap locals:
      StackMap stack: org.springframework.aop.support.MethodMatchers$UnionMethodMatcher
            areturn
        end local 1 // org.springframework.aop.MethodMatcher mm2
        end local 0 // org.springframework.aop.MethodMatcher mm1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   mm1  Lorg/springframework/aop/MethodMatcher;
            0    4     1   mm2  Lorg/springframework/aop/MethodMatcher;
    MethodParameters:
      Name  Flags
      mm1   
      mm2   

  static org.springframework.aop.MethodMatcher union(org.springframework.aop.MethodMatcher, org.springframework.aop.ClassFilter, org.springframework.aop.MethodMatcher, org.springframework.aop.ClassFilter);
    descriptor: (Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/ClassFilter;Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/ClassFilter;)Lorg/springframework/aop/MethodMatcher;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.springframework.aop.MethodMatcher mm1
        start local 1 // org.springframework.aop.ClassFilter cf1
        start local 2 // org.springframework.aop.MethodMatcher mm2
        start local 3 // org.springframework.aop.ClassFilter cf2
         0: .line 65
            aload 0 /* mm1 */
            instanceof org.springframework.aop.IntroductionAwareMethodMatcher
            ifne 1
            aload 2 /* mm2 */
            instanceof org.springframework.aop.IntroductionAwareMethodMatcher
            ifeq 2
         1: .line 66
      StackMap locals:
      StackMap stack:
            new org.springframework.aop.support.MethodMatchers$ClassFilterAwareUnionIntroductionAwareMethodMatcher
            dup
            aload 0 /* mm1 */
            aload 1 /* cf1 */
            aload 2 /* mm2 */
            aload 3 /* cf2 */
            invokespecial org.springframework.aop.support.MethodMatchers$ClassFilterAwareUnionIntroductionAwareMethodMatcher.<init>:(Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/ClassFilter;Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/ClassFilter;)V
            goto 3
         2: .line 67
      StackMap locals:
      StackMap stack:
            new org.springframework.aop.support.MethodMatchers$ClassFilterAwareUnionMethodMatcher
            dup
            aload 0 /* mm1 */
            aload 1 /* cf1 */
            aload 2 /* mm2 */
            aload 3 /* cf2 */
            invokespecial org.springframework.aop.support.MethodMatchers$ClassFilterAwareUnionMethodMatcher.<init>:(Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/ClassFilter;Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/ClassFilter;)V
         3: .line 65
      StackMap locals:
      StackMap stack: org.springframework.aop.support.MethodMatchers$ClassFilterAwareUnionMethodMatcher
            areturn
        end local 3 // org.springframework.aop.ClassFilter cf2
        end local 2 // org.springframework.aop.MethodMatcher mm2
        end local 1 // org.springframework.aop.ClassFilter cf1
        end local 0 // org.springframework.aop.MethodMatcher mm1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   mm1  Lorg/springframework/aop/MethodMatcher;
            0    4     1   cf1  Lorg/springframework/aop/ClassFilter;
            0    4     2   mm2  Lorg/springframework/aop/MethodMatcher;
            0    4     3   cf2  Lorg/springframework/aop/ClassFilter;
    MethodParameters:
      Name  Flags
      mm1   
      cf1   
      mm2   
      cf2   

  public static org.springframework.aop.MethodMatcher intersection(org.springframework.aop.MethodMatcher, org.springframework.aop.MethodMatcher);
    descriptor: (Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/MethodMatcher;)Lorg/springframework/aop/MethodMatcher;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.aop.MethodMatcher mm1
        start local 1 // org.springframework.aop.MethodMatcher mm2
         0: .line 78
            aload 0 /* mm1 */
            instanceof org.springframework.aop.IntroductionAwareMethodMatcher
            ifne 1
            aload 1 /* mm2 */
            instanceof org.springframework.aop.IntroductionAwareMethodMatcher
            ifeq 2
         1: .line 79
      StackMap locals:
      StackMap stack:
            new org.springframework.aop.support.MethodMatchers$IntersectionIntroductionAwareMethodMatcher
            dup
            aload 0 /* mm1 */
            aload 1 /* mm2 */
            invokespecial org.springframework.aop.support.MethodMatchers$IntersectionIntroductionAwareMethodMatcher.<init>:(Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/MethodMatcher;)V
            goto 3
      StackMap locals:
      StackMap stack:
         2: new org.springframework.aop.support.MethodMatchers$IntersectionMethodMatcher
            dup
            aload 0 /* mm1 */
            aload 1 /* mm2 */
            invokespecial org.springframework.aop.support.MethodMatchers$IntersectionMethodMatcher.<init>:(Lorg/springframework/aop/MethodMatcher;Lorg/springframework/aop/MethodMatcher;)V
         3: .line 78
      StackMap locals:
      StackMap stack: org.springframework.aop.support.MethodMatchers$IntersectionMethodMatcher
            areturn
        end local 1 // org.springframework.aop.MethodMatcher mm2
        end local 0 // org.springframework.aop.MethodMatcher mm1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   mm1  Lorg/springframework/aop/MethodMatcher;
            0    4     1   mm2  Lorg/springframework/aop/MethodMatcher;
    MethodParameters:
      Name  Flags
      mm1   
      mm2   

  public static boolean matches(org.springframework.aop.MethodMatcher, java.lang.reflect.Method, java.lang.Class<?>, );
    descriptor: (Lorg/springframework/aop/MethodMatcher;Ljava/lang/reflect/Method;Ljava/lang/Class;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.springframework.aop.MethodMatcher mm
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.Class targetClass
        start local 3 // boolean hasIntroductions
         0: .line 94
            aload 0 /* mm */
            ldc "MethodMatcher must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 95
            aload 0 /* mm */
            instanceof org.springframework.aop.IntroductionAwareMethodMatcher
            ifeq 3
         2: .line 96
            aload 0 /* mm */
            checkcast org.springframework.aop.IntroductionAwareMethodMatcher
            aload 1 /* method */
            aload 2 /* targetClass */
            iload 3 /* hasIntroductions */
            invokeinterface org.springframework.aop.IntroductionAwareMethodMatcher.matches:(Ljava/lang/reflect/Method;Ljava/lang/Class;Z)Z
            goto 4
         3: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* mm */
            aload 1 /* method */
            aload 2 /* targetClass */
            invokeinterface org.springframework.aop.MethodMatcher.matches:(Ljava/lang/reflect/Method;Ljava/lang/Class;)Z
         4: .line 95
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 3 // boolean hasIntroductions
        end local 2 // java.lang.Class targetClass
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.springframework.aop.MethodMatcher mm
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0                mm  Lorg/springframework/aop/MethodMatcher;
            0    5     1            method  Ljava/lang/reflect/Method;
            0    5     2       targetClass  Ljava/lang/Class<*>;
            0    5     3  hasIntroductions  Z
    Signature: (Lorg/springframework/aop/MethodMatcher;Ljava/lang/reflect/Method;Ljava/lang/Class<*>;Z)Z
    MethodParameters:
                  Name  Flags
      mm                
      method            
      targetClass       
      hasIntroductions  
}
SourceFile: "MethodMatchers.java"
NestMembers:
  org.springframework.aop.support.MethodMatchers$ClassFilterAwareUnionIntroductionAwareMethodMatcher  org.springframework.aop.support.MethodMatchers$ClassFilterAwareUnionMethodMatcher  org.springframework.aop.support.MethodMatchers$IntersectionIntroductionAwareMethodMatcher  org.springframework.aop.support.MethodMatchers$IntersectionMethodMatcher  org.springframework.aop.support.MethodMatchers$UnionIntroductionAwareMethodMatcher  org.springframework.aop.support.MethodMatchers$UnionMethodMatcher
InnerClasses:
  private ClassFilterAwareUnionIntroductionAwareMethodMatcher = org.springframework.aop.support.MethodMatchers$ClassFilterAwareUnionIntroductionAwareMethodMatcher of org.springframework.aop.support.MethodMatchers
  private ClassFilterAwareUnionMethodMatcher = org.springframework.aop.support.MethodMatchers$ClassFilterAwareUnionMethodMatcher of org.springframework.aop.support.MethodMatchers
  private IntersectionIntroductionAwareMethodMatcher = org.springframework.aop.support.MethodMatchers$IntersectionIntroductionAwareMethodMatcher of org.springframework.aop.support.MethodMatchers
  private IntersectionMethodMatcher = org.springframework.aop.support.MethodMatchers$IntersectionMethodMatcher of org.springframework.aop.support.MethodMatchers
  private UnionIntroductionAwareMethodMatcher = org.springframework.aop.support.MethodMatchers$UnionIntroductionAwareMethodMatcher of org.springframework.aop.support.MethodMatchers
  private UnionMethodMatcher = org.springframework.aop.support.MethodMatchers$UnionMethodMatcher of org.springframework.aop.support.MethodMatchers