public class org.springframework.aop.aspectj.DeclareParentsAdvisor implements org.springframework.aop.IntroductionAdvisor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.aop.aspectj.DeclareParentsAdvisor
  super_class: java.lang.Object
{
  private final org.aopalliance.aop.Advice advice;
    descriptor: Lorg/aopalliance/aop/Advice;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<?> introducedInterface;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final org.springframework.aop.ClassFilter typePatternClassFilter;
    descriptor: Lorg/springframework/aop/ClassFilter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
        start local 1 // java.lang.Class interfaceType
        start local 2 // java.lang.String typePattern
        start local 3 // java.lang.Class defaultImpl
         0: .line 52
            aload 0 /* this */
            aload 1 /* interfaceType */
            aload 2 /* typePattern */
         1: .line 53
            new org.springframework.aop.support.DelegatePerTargetObjectIntroductionInterceptor
            dup
            aload 3 /* defaultImpl */
            aload 1 /* interfaceType */
            invokespecial org.springframework.aop.support.DelegatePerTargetObjectIntroductionInterceptor.<init>:(Ljava/lang/Class;Ljava/lang/Class;)V
            invokespecial org.springframework.aop.aspectj.DeclareParentsAdvisor.<init>:(Ljava/lang/Class;Ljava/lang/String;Lorg/springframework/aop/IntroductionInterceptor;)V
         2: .line 54
            return
        end local 3 // java.lang.Class defaultImpl
        end local 2 // java.lang.String typePattern
        end local 1 // java.lang.Class interfaceType
        end local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/springframework/aop/aspectj/DeclareParentsAdvisor;
            0    3     1  interfaceType  Ljava/lang/Class<*>;
            0    3     2    typePattern  Ljava/lang/String;
            0    3     3    defaultImpl  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)V
    MethodParameters:
               Name  Flags
      interfaceType  
      typePattern    
      defaultImpl    

  public void <init>(java.lang.Class<?>, java.lang.String, );
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
        start local 1 // java.lang.Class interfaceType
        start local 2 // java.lang.String typePattern
        start local 3 // java.lang.Object delegateRef
         0: .line 63
            aload 0 /* this */
            aload 1 /* interfaceType */
            aload 2 /* typePattern */
            new org.springframework.aop.support.DelegatingIntroductionInterceptor
            dup
            aload 3 /* delegateRef */
            invokespecial org.springframework.aop.support.DelegatingIntroductionInterceptor.<init>:(Ljava/lang/Object;)V
            invokespecial org.springframework.aop.aspectj.DeclareParentsAdvisor.<init>:(Ljava/lang/Class;Ljava/lang/String;Lorg/springframework/aop/IntroductionInterceptor;)V
         1: .line 64
            return
        end local 3 // java.lang.Object delegateRef
        end local 2 // java.lang.String typePattern
        end local 1 // java.lang.Class interfaceType
        end local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/springframework/aop/aspectj/DeclareParentsAdvisor;
            0    2     1  interfaceType  Ljava/lang/Class<*>;
            0    2     2    typePattern  Ljava/lang/String;
            0    2     3    delegateRef  Ljava/lang/Object;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Object;)V
    MethodParameters:
               Name  Flags
      interfaceType  
      typePattern    
      delegateRef    

  private void <init>(java.lang.Class<?>, java.lang.String, org.springframework.aop.IntroductionInterceptor);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Lorg/springframework/aop/IntroductionInterceptor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
        start local 1 // java.lang.Class interfaceType
        start local 2 // java.lang.String typePattern
        start local 3 // org.springframework.aop.IntroductionInterceptor interceptor
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            aload 0 /* this */
            aload 3 /* interceptor */
            putfield org.springframework.aop.aspectj.DeclareParentsAdvisor.advice:Lorg/aopalliance/aop/Advice;
         2: .line 75
            aload 0 /* this */
            aload 1 /* interfaceType */
            putfield org.springframework.aop.aspectj.DeclareParentsAdvisor.introducedInterface:Ljava/lang/Class;
         3: .line 78
            new org.springframework.aop.aspectj.TypePatternClassFilter
            dup
            aload 2 /* typePattern */
            invokespecial org.springframework.aop.aspectj.TypePatternClassFilter.<init>:(Ljava/lang/String;)V
            astore 4 /* typePatternFilter */
        start local 4 // org.springframework.aop.ClassFilter typePatternFilter
         4: .line 79
            aload 0 /* this */
            invokedynamic matches(Lorg/springframework/aop/aspectj/DeclareParentsAdvisor;)Lorg/springframework/aop/ClassFilter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Class;)Z
                  org/springframework/aop/aspectj/DeclareParentsAdvisor.lambda$0(Ljava/lang/Class;)Z (7)
                  (Ljava/lang/Class;)Z
            astore 5 /* exclusion */
        start local 5 // org.springframework.aop.ClassFilter exclusion
         5: .line 80
            aload 0 /* this */
            aload 4 /* typePatternFilter */
            aload 5 /* exclusion */
            invokestatic org.springframework.aop.support.ClassFilters.intersection:(Lorg/springframework/aop/ClassFilter;Lorg/springframework/aop/ClassFilter;)Lorg/springframework/aop/ClassFilter;
            putfield org.springframework.aop.aspectj.DeclareParentsAdvisor.typePatternClassFilter:Lorg/springframework/aop/ClassFilter;
         6: .line 81
            return
        end local 5 // org.springframework.aop.ClassFilter exclusion
        end local 4 // org.springframework.aop.ClassFilter typePatternFilter
        end local 3 // org.springframework.aop.IntroductionInterceptor interceptor
        end local 2 // java.lang.String typePattern
        end local 1 // java.lang.Class interfaceType
        end local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/springframework/aop/aspectj/DeclareParentsAdvisor;
            0    7     1      interfaceType  Ljava/lang/Class<*>;
            0    7     2        typePattern  Ljava/lang/String;
            0    7     3        interceptor  Lorg/springframework/aop/IntroductionInterceptor;
            4    7     4  typePatternFilter  Lorg/springframework/aop/ClassFilter;
            5    7     5          exclusion  Lorg/springframework/aop/ClassFilter;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Lorg/springframework/aop/IntroductionInterceptor;)V
    MethodParameters:
               Name  Flags
      interfaceType  
      typePattern    
      interceptor    

  public org.springframework.aop.ClassFilter getClassFilter();
    descriptor: ()Lorg/springframework/aop/ClassFilter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
         0: .line 86
            aload 0 /* this */
            getfield org.springframework.aop.aspectj.DeclareParentsAdvisor.typePatternClassFilter:Lorg/springframework/aop/ClassFilter;
            areturn
        end local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/aspectj/DeclareParentsAdvisor;

  public void validateInterfaces();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
         0: .line 92
            return
        end local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/aspectj/DeclareParentsAdvisor;
    Exceptions:
      throws java.lang.IllegalArgumentException

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

  public org.aopalliance.aop.Advice getAdvice();
    descriptor: ()Lorg/aopalliance/aop/Advice;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
         0: .line 101
            aload 0 /* this */
            getfield org.springframework.aop.aspectj.DeclareParentsAdvisor.advice:Lorg/aopalliance/aop/Advice;
            areturn
        end local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/aspectj/DeclareParentsAdvisor;

  public java.lang.Class<?>[] getInterfaces();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
         0: .line 106
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* this */
            getfield org.springframework.aop.aspectj.DeclareParentsAdvisor.introducedInterface:Ljava/lang/Class;
            aastore
            areturn
        end local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/aspectj/DeclareParentsAdvisor;
    Signature: ()[Ljava/lang/Class<*>;

  private boolean lambda$0(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
        start local 1 // java.lang.Class clazz
         0: .line 79
            aload 0 /* this */
            getfield org.springframework.aop.aspectj.DeclareParentsAdvisor.introducedInterface:Ljava/lang/Class;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // org.springframework.aop.aspectj.DeclareParentsAdvisor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/springframework/aop/aspectj/DeclareParentsAdvisor;
            0    3     1  clazz  Ljava/lang/Class<*>;
}
SourceFile: "DeclareParentsAdvisor.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles