public class org.springframework.aop.framework.ProxyFactory extends org.springframework.aop.framework.ProxyCreatorSupport
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.aop.framework.ProxyFactory
  super_class: org.springframework.aop.framework.ProxyCreatorSupport
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.ProxyFactory this
         0: .line 41
            aload 0 /* this */
            invokespecial org.springframework.aop.framework.ProxyCreatorSupport.<init>:()V
         1: .line 42
            return
        end local 0 // org.springframework.aop.framework.ProxyFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/aop/framework/ProxyFactory;

  public void <init>(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.aop.framework.ProxyFactory this
        start local 1 // java.lang.Object target
         0: .line 49
            aload 0 /* this */
            invokespecial org.springframework.aop.framework.ProxyCreatorSupport.<init>:()V
         1: .line 50
            aload 0 /* this */
            aload 1 /* target */
            invokevirtual org.springframework.aop.framework.ProxyFactory.setTarget:(Ljava/lang/Object;)V
         2: .line 51
            aload 0 /* this */
            aload 1 /* target */
            invokestatic org.springframework.util.ClassUtils.getAllInterfaces:(Ljava/lang/Object;)[Ljava/lang/Class;
            invokevirtual org.springframework.aop.framework.ProxyFactory.setInterfaces:([Ljava/lang/Class;)V
         3: .line 52
            return
        end local 1 // java.lang.Object target
        end local 0 // org.springframework.aop.framework.ProxyFactory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/springframework/aop/framework/ProxyFactory;
            0    4     1  target  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      target  

  public void <init>(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.aop.framework.ProxyFactory this
        start local 1 // java.lang.Class[] proxyInterfaces
         0: .line 59
            aload 0 /* this */
            invokespecial org.springframework.aop.framework.ProxyCreatorSupport.<init>:()V
         1: .line 60
            aload 0 /* this */
            aload 1 /* proxyInterfaces */
            invokevirtual org.springframework.aop.framework.ProxyFactory.setInterfaces:([Ljava/lang/Class;)V
         2: .line 61
            return
        end local 1 // java.lang.Class[] proxyInterfaces
        end local 0 // org.springframework.aop.framework.ProxyFactory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/springframework/aop/framework/ProxyFactory;
            0    3     1  proxyInterfaces  [Ljava/lang/Class;
    Signature: ([Ljava/lang/Class<*>;)V
    MethodParameters:
                 Name  Flags
      proxyInterfaces  

  public void <init>(java.lang.Class<?>, org.aopalliance.intercept.Interceptor);
    descriptor: (Ljava/lang/Class;Lorg/aopalliance/intercept/Interceptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.aop.framework.ProxyFactory this
        start local 1 // java.lang.Class proxyInterface
        start local 2 // org.aopalliance.intercept.Interceptor interceptor
         0: .line 71
            aload 0 /* this */
            invokespecial org.springframework.aop.framework.ProxyCreatorSupport.<init>:()V
         1: .line 72
            aload 0 /* this */
            aload 1 /* proxyInterface */
            invokevirtual org.springframework.aop.framework.ProxyFactory.addInterface:(Ljava/lang/Class;)V
         2: .line 73
            aload 0 /* this */
            aload 2 /* interceptor */
            invokevirtual org.springframework.aop.framework.ProxyFactory.addAdvice:(Lorg/aopalliance/aop/Advice;)V
         3: .line 74
            return
        end local 2 // org.aopalliance.intercept.Interceptor interceptor
        end local 1 // java.lang.Class proxyInterface
        end local 0 // org.springframework.aop.framework.ProxyFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/springframework/aop/framework/ProxyFactory;
            0    4     1  proxyInterface  Ljava/lang/Class<*>;
            0    4     2     interceptor  Lorg/aopalliance/intercept/Interceptor;
    Signature: (Ljava/lang/Class<*>;Lorg/aopalliance/intercept/Interceptor;)V
    MethodParameters:
                Name  Flags
      proxyInterface  
      interceptor     

  public void <init>(java.lang.Class<?>, org.springframework.aop.TargetSource);
    descriptor: (Ljava/lang/Class;Lorg/springframework/aop/TargetSource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.aop.framework.ProxyFactory this
        start local 1 // java.lang.Class proxyInterface
        start local 2 // org.springframework.aop.TargetSource targetSource
         0: .line 82
            aload 0 /* this */
            invokespecial org.springframework.aop.framework.ProxyCreatorSupport.<init>:()V
         1: .line 83
            aload 0 /* this */
            aload 1 /* proxyInterface */
            invokevirtual org.springframework.aop.framework.ProxyFactory.addInterface:(Ljava/lang/Class;)V
         2: .line 84
            aload 0 /* this */
            aload 2 /* targetSource */
            invokevirtual org.springframework.aop.framework.ProxyFactory.setTargetSource:(Lorg/springframework/aop/TargetSource;)V
         3: .line 85
            return
        end local 2 // org.springframework.aop.TargetSource targetSource
        end local 1 // java.lang.Class proxyInterface
        end local 0 // org.springframework.aop.framework.ProxyFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/springframework/aop/framework/ProxyFactory;
            0    4     1  proxyInterface  Ljava/lang/Class<*>;
            0    4     2    targetSource  Lorg/springframework/aop/TargetSource;
    Signature: (Ljava/lang/Class<*>;Lorg/springframework/aop/TargetSource;)V
    MethodParameters:
                Name  Flags
      proxyInterface  
      targetSource    

  public java.lang.Object getProxy();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.ProxyFactory this
         0: .line 97
            aload 0 /* this */
            invokevirtual org.springframework.aop.framework.ProxyFactory.createAopProxy:()Lorg/springframework/aop/framework/AopProxy;
            invokeinterface org.springframework.aop.framework.AopProxy.getProxy:()Ljava/lang/Object;
            areturn
        end local 0 // org.springframework.aop.framework.ProxyFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/framework/ProxyFactory;

  public java.lang.Object getProxy(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.aop.framework.ProxyFactory this
        start local 1 // java.lang.ClassLoader classLoader
         0: .line 110
            aload 0 /* this */
            invokevirtual org.springframework.aop.framework.ProxyFactory.createAopProxy:()Lorg/springframework/aop/framework/AopProxy;
            aload 1 /* classLoader */
            invokeinterface org.springframework.aop.framework.AopProxy.getProxy:(Ljava/lang/ClassLoader;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.ClassLoader classLoader
        end local 0 // org.springframework.aop.framework.ProxyFactory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/springframework/aop/framework/ProxyFactory;
            0    1     1  classLoader  Ljava/lang/ClassLoader;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
             Name  Flags
      classLoader  

  public static <T> T getProxy(java.lang.Class<T>, org.aopalliance.intercept.Interceptor);
    descriptor: (Ljava/lang/Class;Lorg/aopalliance/intercept/Interceptor;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Class proxyInterface
        start local 1 // org.aopalliance.intercept.Interceptor interceptor
         0: .line 126
            new org.springframework.aop.framework.ProxyFactory
            dup
            aload 0 /* proxyInterface */
            aload 1 /* interceptor */
            invokespecial org.springframework.aop.framework.ProxyFactory.<init>:(Ljava/lang/Class;Lorg/aopalliance/intercept/Interceptor;)V
            invokevirtual org.springframework.aop.framework.ProxyFactory.getProxy:()Ljava/lang/Object;
            areturn
        end local 1 // org.aopalliance.intercept.Interceptor interceptor
        end local 0 // java.lang.Class proxyInterface
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  proxyInterface  Ljava/lang/Class<TT;>;
            0    1     1     interceptor  Lorg/aopalliance/intercept/Interceptor;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Lorg/aopalliance/intercept/Interceptor;)TT;
    MethodParameters:
                Name  Flags
      proxyInterface  
      interceptor     

  public static <T> T getProxy(java.lang.Class<T>, org.springframework.aop.TargetSource);
    descriptor: (Ljava/lang/Class;Lorg/springframework/aop/TargetSource;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Class proxyInterface
        start local 1 // org.springframework.aop.TargetSource targetSource
         0: .line 139
            new org.springframework.aop.framework.ProxyFactory
            dup
            aload 0 /* proxyInterface */
            aload 1 /* targetSource */
            invokespecial org.springframework.aop.framework.ProxyFactory.<init>:(Ljava/lang/Class;Lorg/springframework/aop/TargetSource;)V
            invokevirtual org.springframework.aop.framework.ProxyFactory.getProxy:()Ljava/lang/Object;
            areturn
        end local 1 // org.springframework.aop.TargetSource targetSource
        end local 0 // java.lang.Class proxyInterface
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  proxyInterface  Ljava/lang/Class<TT;>;
            0    1     1    targetSource  Lorg/springframework/aop/TargetSource;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Lorg/springframework/aop/TargetSource;)TT;
    MethodParameters:
                Name  Flags
      proxyInterface  
      targetSource    

  public static java.lang.Object getProxy(org.springframework.aop.TargetSource);
    descriptor: (Lorg/springframework/aop/TargetSource;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.aop.TargetSource targetSource
         0: .line 149
            aload 0 /* targetSource */
            invokeinterface org.springframework.aop.TargetSource.getTargetClass:()Ljava/lang/Class;
            ifnonnull 2
         1: .line 150
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot create class proxy for TargetSource with null target class"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 152
      StackMap locals:
      StackMap stack:
            new org.springframework.aop.framework.ProxyFactory
            dup
            invokespecial org.springframework.aop.framework.ProxyFactory.<init>:()V
            astore 1 /* proxyFactory */
        start local 1 // org.springframework.aop.framework.ProxyFactory proxyFactory
         3: .line 153
            aload 1 /* proxyFactory */
            aload 0 /* targetSource */
            invokevirtual org.springframework.aop.framework.ProxyFactory.setTargetSource:(Lorg/springframework/aop/TargetSource;)V
         4: .line 154
            aload 1 /* proxyFactory */
            iconst_1
            invokevirtual org.springframework.aop.framework.ProxyFactory.setProxyTargetClass:(Z)V
         5: .line 155
            aload 1 /* proxyFactory */
            invokevirtual org.springframework.aop.framework.ProxyFactory.getProxy:()Ljava/lang/Object;
            areturn
        end local 1 // org.springframework.aop.framework.ProxyFactory proxyFactory
        end local 0 // org.springframework.aop.TargetSource targetSource
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0  targetSource  Lorg/springframework/aop/TargetSource;
            3    6     1  proxyFactory  Lorg/springframework/aop/framework/ProxyFactory;
    MethodParameters:
              Name  Flags
      targetSource  
}
SourceFile: "ProxyFactory.java"