class org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser implements org.springframework.beans.factory.xml.BeanDefinitionParser
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser
  super_class: java.lang.Object
{
  private static final java.lang.String CACHE_ASPECT_CLASS_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.springframework.cache.aspectj.AnnotationCacheAspect"

  private static final java.lang.String JCACHE_ASPECT_CLASS_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.springframework.cache.aspectj.JCacheCacheAspect"

  private static final boolean jsr107Present;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean jcacheImplPresent;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 69
            ldc Lorg/springframework/cache/config/AnnotationDrivenCacheBeanDefinitionParser;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 0 /* classLoader */
        start local 0 // java.lang.ClassLoader classLoader
         1: .line 70
            ldc "javax.cache.Cache"
            aload 0 /* classLoader */
            invokestatic org.springframework.util.ClassUtils.isPresent:(Ljava/lang/String;Ljava/lang/ClassLoader;)Z
            putstatic org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser.jsr107Present:Z
         2: .line 72
            ldc "org.springframework.cache.jcache.interceptor.DefaultJCacheOperationSource"
            aload 0 /* classLoader */
         3: .line 71
            invokestatic org.springframework.util.ClassUtils.isPresent:(Ljava/lang/String;Ljava/lang/ClassLoader;)Z
            putstatic org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser.jcacheImplPresent:Z
        end local 0 // java.lang.ClassLoader classLoader
         4: .line 73
            return
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            1    4     0  classLoader  Ljava/lang/ClassLoader;

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser this
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/cache/config/AnnotationDrivenCacheBeanDefinitionParser;

  public org.springframework.beans.factory.config.BeanDefinition parse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/beans/factory/config/BeanDefinition;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element element
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 84
            aload 1 /* element */
            ldc "mode"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* mode */
        start local 3 // java.lang.String mode
         1: .line 85
            ldc "aspectj"
            aload 3 /* mode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 87
            aload 0 /* this */
            aload 1 /* element */
            aload 2 /* parserContext */
            invokevirtual org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser.registerCacheAspect:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
         3: .line 88
            goto 5
         4: .line 91
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* element */
            aload 2 /* parserContext */
            invokevirtual org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser.registerCacheAdvisor:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
         5: .line 94
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.String mode
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element element
        end local 0 // org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/springframework/cache/config/AnnotationDrivenCacheBeanDefinitionParser;
            0    6     1        element  Lorg/w3c/dom/Element;
            0    6     2  parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            1    6     3           mode  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
               Name  Flags
      element        
      parserContext  

  private void registerCacheAspect(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element element
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 98
            aload 1 /* element */
            aload 2 /* parserContext */
            invokestatic org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser$SpringCachingConfigurer.registerCacheAspect:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
         1: .line 99
            getstatic org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser.jsr107Present:Z
            ifeq 3
            getstatic org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser.jcacheImplPresent:Z
            ifeq 3
         2: .line 100
            aload 1 /* element */
            aload 2 /* parserContext */
            invokestatic org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser$JCacheCachingConfigurer.registerCacheAspect:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
         3: .line 102
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element element
        end local 0 // org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/springframework/cache/config/AnnotationDrivenCacheBeanDefinitionParser;
            0    4     1        element  Lorg/w3c/dom/Element;
            0    4     2  parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
    MethodParameters:
               Name  Flags
      element        
      parserContext  

  private void registerCacheAdvisor(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element element
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 105
            aload 2 /* parserContext */
            aload 1 /* element */
            invokestatic org.springframework.aop.config.AopNamespaceUtils.registerAutoProxyCreatorIfNecessary:(Lorg/springframework/beans/factory/xml/ParserContext;Lorg/w3c/dom/Element;)V
         1: .line 106
            aload 1 /* element */
            aload 2 /* parserContext */
            invokestatic org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser$SpringCachingConfigurer.registerCacheAdvisor:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
         2: .line 107
            getstatic org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser.jsr107Present:Z
            ifeq 4
            getstatic org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser.jcacheImplPresent:Z
            ifeq 4
         3: .line 108
            aload 1 /* element */
            aload 2 /* parserContext */
            invokestatic org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser$JCacheCachingConfigurer.registerCacheAdvisor:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
         4: .line 110
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element element
        end local 0 // org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/springframework/cache/config/AnnotationDrivenCacheBeanDefinitionParser;
            0    5     1        element  Lorg/w3c/dom/Element;
            0    5     2  parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
    MethodParameters:
               Name  Flags
      element        
      parserContext  

  private static void parseCacheResolution(org.w3c.dom.Element, org.springframework.beans.factory.config.BeanDefinition, boolean);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/config/BeanDefinition;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.w3c.dom.Element element
        start local 1 // org.springframework.beans.factory.config.BeanDefinition def
        start local 2 // boolean setBoth
         0: .line 118
            aload 0 /* element */
            ldc "cache-resolver"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         1: .line 119
            aload 3 /* name */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            istore 4 /* hasText */
        start local 4 // boolean hasText
         2: .line 120
            iload 4 /* hasText */
            ifeq 4
         3: .line 121
            aload 1 /* def */
            invokeinterface org.springframework.beans.factory.config.BeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
            ldc "cacheResolver"
            new org.springframework.beans.factory.config.RuntimeBeanReference
            dup
            aload 3 /* name */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokespecial org.springframework.beans.factory.config.RuntimeBeanReference.<init>:(Ljava/lang/String;)V
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
         4: .line 123
      StackMap locals: java.lang.String int
      StackMap stack:
            iload 4 /* hasText */
            ifeq 5
            iload 2 /* setBoth */
            ifeq 8
         5: .line 124
      StackMap locals:
      StackMap stack:
            aload 1 /* def */
            invokeinterface org.springframework.beans.factory.config.BeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
            ldc "cacheManager"
         6: .line 125
            new org.springframework.beans.factory.config.RuntimeBeanReference
            dup
            aload 0 /* element */
            invokestatic org.springframework.cache.config.CacheNamespaceHandler.extractCacheManager:(Lorg/w3c/dom/Element;)Ljava/lang/String;
            invokespecial org.springframework.beans.factory.config.RuntimeBeanReference.<init>:(Ljava/lang/String;)V
         7: .line 124
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
         8: .line 127
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean hasText
        end local 3 // java.lang.String name
        end local 2 // boolean setBoth
        end local 1 // org.springframework.beans.factory.config.BeanDefinition def
        end local 0 // org.w3c.dom.Element element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0  element  Lorg/w3c/dom/Element;
            0    9     1      def  Lorg/springframework/beans/factory/config/BeanDefinition;
            0    9     2  setBoth  Z
            1    9     3     name  Ljava/lang/String;
            2    9     4  hasText  Z
    MethodParameters:
         Name  Flags
      element  
      def      
      setBoth  

  private static void parseErrorHandler(org.w3c.dom.Element, org.springframework.beans.factory.config.BeanDefinition);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/config/BeanDefinition;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.w3c.dom.Element element
        start local 1 // org.springframework.beans.factory.config.BeanDefinition def
         0: .line 130
            aload 0 /* element */
            ldc "error-handler"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 131
            aload 2 /* name */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 132
            aload 1 /* def */
            invokeinterface org.springframework.beans.factory.config.BeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
            ldc "errorHandler"
            new org.springframework.beans.factory.config.RuntimeBeanReference
            dup
            aload 2 /* name */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokespecial org.springframework.beans.factory.config.RuntimeBeanReference.<init>:(Ljava/lang/String;)V
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
         3: .line 134
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 2 // java.lang.String name
        end local 1 // org.springframework.beans.factory.config.BeanDefinition def
        end local 0 // org.w3c.dom.Element element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  element  Lorg/w3c/dom/Element;
            0    4     1      def  Lorg/springframework/beans/factory/config/BeanDefinition;
            1    4     2     name  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      element  
      def      
}
SourceFile: "AnnotationDrivenCacheBeanDefinitionParser.java"
NestMembers:
  org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser$JCacheCachingConfigurer  org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser$SpringCachingConfigurer
InnerClasses:
  private JCacheCachingConfigurer = org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser$JCacheCachingConfigurer of org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser
  private SpringCachingConfigurer = org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser$SpringCachingConfigurer of org.springframework.cache.config.AnnotationDrivenCacheBeanDefinitionParser