public class org.springframework.transaction.annotation.SpringTransactionAnnotationParser implements org.springframework.transaction.annotation.TransactionAnnotationParser, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.transaction.annotation.SpringTransactionAnnotationParser
  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.transaction.annotation.SpringTransactionAnnotationParser this
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/annotation/SpringTransactionAnnotationParser;

  public boolean isCandidateClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
        start local 1 // java.lang.Class targetClass
         0: .line 48
            aload 1 /* targetClass */
            ldc Lorg/springframework/transaction/annotation/Transactional;
            invokestatic org.springframework.core.annotation.AnnotationUtils.isCandidateClass:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class targetClass
        end local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/springframework/transaction/annotation/SpringTransactionAnnotationParser;
            0    1     1  targetClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
             Name  Flags
      targetClass  

  public org.springframework.transaction.interceptor.TransactionAttribute parseTransactionAnnotation(java.lang.reflect.AnnotatedElement);
    descriptor: (Ljava/lang/reflect/AnnotatedElement;)Lorg/springframework/transaction/interceptor/TransactionAttribute;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
        start local 1 // java.lang.reflect.AnnotatedElement element
         0: .line 55
            aload 1 /* element */
            ldc Lorg/springframework/transaction/annotation/Transactional;
            iconst_0
            iconst_0
         1: .line 54
            invokestatic org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotationAttributes:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;ZZ)Lorg/springframework/core/annotation/AnnotationAttributes;
            astore 2 /* attributes */
        start local 2 // org.springframework.core.annotation.AnnotationAttributes attributes
         2: .line 56
            aload 2 /* attributes */
            ifnull 4
         3: .line 57
            aload 0 /* this */
            aload 2 /* attributes */
            invokevirtual org.springframework.transaction.annotation.SpringTransactionAnnotationParser.parseTransactionAnnotation:(Lorg/springframework/core/annotation/AnnotationAttributes;)Lorg/springframework/transaction/interceptor/TransactionAttribute;
            areturn
         4: .line 60
      StackMap locals: org.springframework.core.annotation.AnnotationAttributes
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.springframework.core.annotation.AnnotationAttributes attributes
        end local 1 // java.lang.reflect.AnnotatedElement element
        end local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/springframework/transaction/annotation/SpringTransactionAnnotationParser;
            0    5     1     element  Ljava/lang/reflect/AnnotatedElement;
            2    5     2  attributes  Lorg/springframework/core/annotation/AnnotationAttributes;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
         Name  Flags
      element  

  public org.springframework.transaction.interceptor.TransactionAttribute parseTransactionAnnotation(org.springframework.transaction.annotation.Transactional);
    descriptor: (Lorg/springframework/transaction/annotation/Transactional;)Lorg/springframework/transaction/interceptor/TransactionAttribute;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
        start local 1 // org.springframework.transaction.annotation.Transactional ann
         0: .line 65
            aload 0 /* this */
            aload 1 /* ann */
            iconst_0
            iconst_0
            invokestatic org.springframework.core.annotation.AnnotationUtils.getAnnotationAttributes:(Ljava/lang/annotation/Annotation;ZZ)Lorg/springframework/core/annotation/AnnotationAttributes;
            invokevirtual org.springframework.transaction.annotation.SpringTransactionAnnotationParser.parseTransactionAnnotation:(Lorg/springframework/core/annotation/AnnotationAttributes;)Lorg/springframework/transaction/interceptor/TransactionAttribute;
            areturn
        end local 1 // org.springframework.transaction.annotation.Transactional ann
        end local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/annotation/SpringTransactionAnnotationParser;
            0    1     1   ann  Lorg/springframework/transaction/annotation/Transactional;
    MethodParameters:
      Name  Flags
      ann   

  protected org.springframework.transaction.interceptor.TransactionAttribute parseTransactionAnnotation(org.springframework.core.annotation.AnnotationAttributes);
    descriptor: (Lorg/springframework/core/annotation/AnnotationAttributes;)Lorg/springframework/transaction/interceptor/TransactionAttribute;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
        start local 1 // org.springframework.core.annotation.AnnotationAttributes attributes
         0: .line 69
            new org.springframework.transaction.interceptor.RuleBasedTransactionAttribute
            dup
            invokespecial org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.<init>:()V
            astore 2 /* rbta */
        start local 2 // org.springframework.transaction.interceptor.RuleBasedTransactionAttribute rbta
         1: .line 71
            aload 1 /* attributes */
            ldc "propagation"
            invokevirtual org.springframework.core.annotation.AnnotationAttributes.getEnum:(Ljava/lang/String;)Ljava/lang/Enum;
            checkcast org.springframework.transaction.annotation.Propagation
            astore 3 /* propagation */
        start local 3 // org.springframework.transaction.annotation.Propagation propagation
         2: .line 72
            aload 2 /* rbta */
            aload 3 /* propagation */
            invokevirtual org.springframework.transaction.annotation.Propagation.value:()I
            invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setPropagationBehavior:(I)V
         3: .line 73
            aload 1 /* attributes */
            ldc "isolation"
            invokevirtual org.springframework.core.annotation.AnnotationAttributes.getEnum:(Ljava/lang/String;)Ljava/lang/Enum;
            checkcast org.springframework.transaction.annotation.Isolation
            astore 4 /* isolation */
        start local 4 // org.springframework.transaction.annotation.Isolation isolation
         4: .line 74
            aload 2 /* rbta */
            aload 4 /* isolation */
            invokevirtual org.springframework.transaction.annotation.Isolation.value:()I
            invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setIsolationLevel:(I)V
         5: .line 76
            aload 2 /* rbta */
            aload 1 /* attributes */
            ldc "timeout"
            invokevirtual org.springframework.core.annotation.AnnotationAttributes.getNumber:(Ljava/lang/String;)Ljava/lang/Number;
            invokevirtual java.lang.Number.intValue:()I
            invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setTimeout:(I)V
         6: .line 77
            aload 1 /* attributes */
            ldc "timeoutString"
            invokevirtual org.springframework.core.annotation.AnnotationAttributes.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* timeoutString */
        start local 5 // java.lang.String timeoutString
         7: .line 78
            aload 5 /* timeoutString */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifeq 8
            aload 2 /* rbta */
            invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.getTimeout:()I
            iflt 8
            iconst_0
            goto 9
      StackMap locals: org.springframework.transaction.annotation.SpringTransactionAnnotationParser org.springframework.core.annotation.AnnotationAttributes org.springframework.transaction.interceptor.RuleBasedTransactionAttribute org.springframework.transaction.annotation.Propagation org.springframework.transaction.annotation.Isolation java.lang.String
      StackMap stack:
         8: iconst_1
         9: .line 79
      StackMap locals:
      StackMap stack: int
            ldc "Specify 'timeout' or 'timeoutString', not both"
        10: .line 78
            invokestatic org.springframework.util.Assert.isTrue:(ZLjava/lang/String;)V
        11: .line 80
            aload 2 /* rbta */
            aload 5 /* timeoutString */
            invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setTimeoutString:(Ljava/lang/String;)V
        12: .line 82
            aload 2 /* rbta */
            aload 1 /* attributes */
            ldc "readOnly"
            invokevirtual org.springframework.core.annotation.AnnotationAttributes.getBoolean:(Ljava/lang/String;)Z
            invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setReadOnly:(Z)V
        13: .line 83
            aload 2 /* rbta */
            aload 1 /* attributes */
            ldc "value"
            invokevirtual org.springframework.core.annotation.AnnotationAttributes.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setQualifier:(Ljava/lang/String;)V
        14: .line 84
            aload 2 /* rbta */
            aload 1 /* attributes */
            ldc "label"
            invokevirtual org.springframework.core.annotation.AnnotationAttributes.getStringArray:(Ljava/lang/String;)[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setLabels:(Ljava/util/Collection;)V
        15: .line 86
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* rollbackRules */
        start local 6 // java.util.List rollbackRules
        16: .line 87
            aload 1 /* attributes */
            ldc "rollbackFor"
            invokevirtual org.springframework.core.annotation.AnnotationAttributes.getClassArray:(Ljava/lang/String;)[Ljava/lang/Class;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 20
      StackMap locals: org.springframework.transaction.annotation.SpringTransactionAnnotationParser org.springframework.core.annotation.AnnotationAttributes org.springframework.transaction.interceptor.RuleBasedTransactionAttribute org.springframework.transaction.annotation.Propagation org.springframework.transaction.annotation.Isolation java.lang.String java.util.List top int int java.lang.Class[]
      StackMap stack:
        17: aload 10
            iload 8
            aaload
            astore 7 /* rbRule */
        start local 7 // java.lang.Class rbRule
        18: .line 88
            aload 6 /* rollbackRules */
            new org.springframework.transaction.interceptor.RollbackRuleAttribute
            dup
            aload 7 /* rbRule */
            invokespecial org.springframework.transaction.interceptor.RollbackRuleAttribute.<init>:(Ljava/lang/Class;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.Class rbRule
        19: .line 87
            iinc 8 1
      StackMap locals:
      StackMap stack:
        20: iload 8
            iload 9
            if_icmplt 17
        21: .line 90
            aload 1 /* attributes */
            ldc "rollbackForClassName"
            invokevirtual org.springframework.core.annotation.AnnotationAttributes.getStringArray:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 25
      StackMap locals: org.springframework.transaction.annotation.SpringTransactionAnnotationParser org.springframework.core.annotation.AnnotationAttributes org.springframework.transaction.interceptor.RuleBasedTransactionAttribute org.springframework.transaction.annotation.Propagation org.springframework.transaction.annotation.Isolation java.lang.String java.util.List top int int java.lang.String[]
      StackMap stack:
        22: aload 10
            iload 8
            aaload
            astore 7 /* rbRule */
        start local 7 // java.lang.String rbRule
        23: .line 91
            aload 6 /* rollbackRules */
            new org.springframework.transaction.interceptor.RollbackRuleAttribute
            dup
            aload 7 /* rbRule */
            invokespecial org.springframework.transaction.interceptor.RollbackRuleAttribute.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.String rbRule
        24: .line 90
            iinc 8 1
      StackMap locals:
      StackMap stack:
        25: iload 8
            iload 9
            if_icmplt 22
        26: .line 93
            aload 1 /* attributes */
            ldc "noRollbackFor"
            invokevirtual org.springframework.core.annotation.AnnotationAttributes.getClassArray:(Ljava/lang/String;)[Ljava/lang/Class;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 30
      StackMap locals: org.springframework.transaction.annotation.SpringTransactionAnnotationParser org.springframework.core.annotation.AnnotationAttributes org.springframework.transaction.interceptor.RuleBasedTransactionAttribute org.springframework.transaction.annotation.Propagation org.springframework.transaction.annotation.Isolation java.lang.String java.util.List top int int java.lang.Class[]
      StackMap stack:
        27: aload 10
            iload 8
            aaload
            astore 7 /* rbRule */
        start local 7 // java.lang.Class rbRule
        28: .line 94
            aload 6 /* rollbackRules */
            new org.springframework.transaction.interceptor.NoRollbackRuleAttribute
            dup
            aload 7 /* rbRule */
            invokespecial org.springframework.transaction.interceptor.NoRollbackRuleAttribute.<init>:(Ljava/lang/Class;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.Class rbRule
        29: .line 93
            iinc 8 1
      StackMap locals:
      StackMap stack:
        30: iload 8
            iload 9
            if_icmplt 27
        31: .line 96
            aload 1 /* attributes */
            ldc "noRollbackForClassName"
            invokevirtual org.springframework.core.annotation.AnnotationAttributes.getStringArray:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 35
      StackMap locals: org.springframework.transaction.annotation.SpringTransactionAnnotationParser org.springframework.core.annotation.AnnotationAttributes org.springframework.transaction.interceptor.RuleBasedTransactionAttribute org.springframework.transaction.annotation.Propagation org.springframework.transaction.annotation.Isolation java.lang.String java.util.List top int int java.lang.String[]
      StackMap stack:
        32: aload 10
            iload 8
            aaload
            astore 7 /* rbRule */
        start local 7 // java.lang.String rbRule
        33: .line 97
            aload 6 /* rollbackRules */
            new org.springframework.transaction.interceptor.NoRollbackRuleAttribute
            dup
            aload 7 /* rbRule */
            invokespecial org.springframework.transaction.interceptor.NoRollbackRuleAttribute.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.String rbRule
        34: .line 96
            iinc 8 1
      StackMap locals:
      StackMap stack:
        35: iload 8
            iload 9
            if_icmplt 32
        36: .line 99
            aload 2 /* rbta */
            aload 6 /* rollbackRules */
            invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setRollbackRules:(Ljava/util/List;)V
        37: .line 101
            aload 2 /* rbta */
            areturn
        end local 6 // java.util.List rollbackRules
        end local 5 // java.lang.String timeoutString
        end local 4 // org.springframework.transaction.annotation.Isolation isolation
        end local 3 // org.springframework.transaction.annotation.Propagation propagation
        end local 2 // org.springframework.transaction.interceptor.RuleBasedTransactionAttribute rbta
        end local 1 // org.springframework.core.annotation.AnnotationAttributes attributes
        end local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   38     0           this  Lorg/springframework/transaction/annotation/SpringTransactionAnnotationParser;
            0   38     1     attributes  Lorg/springframework/core/annotation/AnnotationAttributes;
            1   38     2           rbta  Lorg/springframework/transaction/interceptor/RuleBasedTransactionAttribute;
            2   38     3    propagation  Lorg/springframework/transaction/annotation/Propagation;
            4   38     4      isolation  Lorg/springframework/transaction/annotation/Isolation;
            7   38     5  timeoutString  Ljava/lang/String;
           16   38     6  rollbackRules  Ljava/util/List<Lorg/springframework/transaction/interceptor/RollbackRuleAttribute;>;
           18   19     7         rbRule  Ljava/lang/Class<*>;
           23   24     7         rbRule  Ljava/lang/String;
           28   29     7         rbRule  Ljava/lang/Class<*>;
           33   34     7         rbRule  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      attributes  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
        start local 1 // java.lang.Object other
         0: .line 107
            aload 1 /* other */
            instanceof org.springframework.transaction.annotation.SpringTransactionAnnotationParser
            ireturn
        end local 1 // java.lang.Object other
        end local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/springframework/transaction/annotation/SpringTransactionAnnotationParser;
            0    1     1  other  Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
       Name  Flags
      other  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
         0: .line 112
            ldc Lorg/springframework/transaction/annotation/SpringTransactionAnnotationParser;
            invokevirtual java.lang.Object.hashCode:()I
            ireturn
        end local 0 // org.springframework.transaction.annotation.SpringTransactionAnnotationParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/annotation/SpringTransactionAnnotationParser;
}
SourceFile: "SpringTransactionAnnotationParser.java"