public class org.springframework.expression.spel.ast.OperatorMatches extends org.springframework.expression.spel.ast.Operator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.expression.spel.ast.OperatorMatches
  super_class: org.springframework.expression.spel.ast.Operator
{
  private static final int PATTERN_ACCESS_THRESHOLD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1000000

  private final java.util.concurrent.ConcurrentMap<java.lang.String, java.util.regex.Pattern> patternCache;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Ljava/util/regex/Pattern;>;

  public void <init>(int, int, org.springframework.expression.spel.ast.SpelNodeImpl[]);
    descriptor: (II[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.springframework.expression.spel.ast.OperatorMatches this
        start local 1 // int startPos
        start local 2 // int endPos
        start local 3 // org.springframework.expression.spel.ast.SpelNodeImpl[] operands
         0: .line 49
            aload 0 /* this */
            ldc "matches"
            iload 1 /* startPos */
            iload 2 /* endPos */
            aload 3 /* operands */
            invokespecial org.springframework.expression.spel.ast.Operator.<init>:(Ljava/lang/String;II[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
         1: .line 45
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.springframework.expression.spel.ast.OperatorMatches.patternCache:Ljava/util/concurrent/ConcurrentMap;
         2: .line 50
            return
        end local 3 // org.springframework.expression.spel.ast.SpelNodeImpl[] operands
        end local 2 // int endPos
        end local 1 // int startPos
        end local 0 // org.springframework.expression.spel.ast.OperatorMatches this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/springframework/expression/spel/ast/OperatorMatches;
            0    3     1  startPos  I
            0    3     2    endPos  I
            0    3     3  operands  [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
    MethodParameters:
          Name  Flags
      startPos  
      endPos    
      operands  

  public org.springframework.expression.spel.support.BooleanTypedValue getValueInternal(org.springframework.expression.spel.ExpressionState);
    descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/spel/support/BooleanTypedValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=9, args_size=2
        start local 0 // org.springframework.expression.spel.ast.OperatorMatches this
        start local 1 // org.springframework.expression.spel.ExpressionState state
         0: .line 63
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.OperatorMatches.getLeftOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            astore 2 /* leftOp */
        start local 2 // org.springframework.expression.spel.ast.SpelNodeImpl leftOp
         1: .line 64
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.OperatorMatches.getRightOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            astore 3 /* rightOp */
        start local 3 // org.springframework.expression.spel.ast.SpelNodeImpl rightOp
         2: .line 65
            aload 2 /* leftOp */
            aload 1 /* state */
            ldc Ljava/lang/String;
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getValue:(Lorg/springframework/expression/spel/ExpressionState;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* left */
        start local 4 // java.lang.String left
         3: .line 66
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.OperatorMatches.getRightOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            aload 1 /* state */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getValue:(Lorg/springframework/expression/spel/ExpressionState;)Ljava/lang/Object;
            astore 5 /* right */
        start local 5 // java.lang.Object right
         4: .line 68
            aload 4 /* left */
            ifnonnull 8
         5: .line 69
            new org.springframework.expression.spel.SpelEvaluationException
            dup
            aload 2 /* leftOp */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getStartPosition:()I
         6: .line 70
            getstatic org.springframework.expression.spel.SpelMessage.INVALID_FIRST_OPERAND_FOR_MATCHES_OPERATOR:Lorg/springframework/expression/spel/SpelMessage;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aconst_null
         7: .line 69
            aastore
            invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
            athrow
         8: .line 72
      StackMap locals: org.springframework.expression.spel.ast.OperatorMatches org.springframework.expression.spel.ExpressionState org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.spel.ast.SpelNodeImpl java.lang.String java.lang.Object
      StackMap stack:
            aload 5 /* right */
            instanceof java.lang.String
            ifne 12
         9: .line 73
            new org.springframework.expression.spel.SpelEvaluationException
            dup
            aload 3 /* rightOp */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getStartPosition:()I
        10: .line 74
            getstatic org.springframework.expression.spel.SpelMessage.INVALID_SECOND_OPERAND_FOR_MATCHES_OPERATOR:Lorg/springframework/expression/spel/SpelMessage;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* right */
        11: .line 73
            aastore
            invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
            athrow
        12: .line 78
      StackMap locals:
      StackMap stack:
            aload 5 /* right */
            checkcast java.lang.String
            astore 6 /* rightString */
        start local 6 // java.lang.String rightString
        13: .line 79
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.OperatorMatches.patternCache:Ljava/util/concurrent/ConcurrentMap;
            aload 6 /* rightString */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.regex.Pattern
            astore 7 /* pattern */
        start local 7 // java.util.regex.Pattern pattern
        14: .line 80
            aload 7 /* pattern */
            ifnonnull 17
        15: .line 81
            aload 6 /* rightString */
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            astore 7 /* pattern */
        16: .line 82
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.OperatorMatches.patternCache:Ljava/util/concurrent/ConcurrentMap;
            aload 6 /* rightString */
            aload 7 /* pattern */
            invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 84
      StackMap locals: java.lang.String java.util.regex.Pattern
      StackMap stack:
            aload 7 /* pattern */
            new org.springframework.expression.spel.ast.OperatorMatches$MatcherInput
            dup
            aload 4 /* left */
            new org.springframework.expression.spel.ast.OperatorMatches$AccessCount
            dup
            invokespecial org.springframework.expression.spel.ast.OperatorMatches$AccessCount.<init>:()V
            invokespecial org.springframework.expression.spel.ast.OperatorMatches$MatcherInput.<init>:(Ljava/lang/CharSequence;Lorg/springframework/expression/spel/ast/OperatorMatches$AccessCount;)V
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 8 /* matcher */
        start local 8 // java.util.regex.Matcher matcher
        18: .line 85
            aload 8 /* matcher */
            invokevirtual java.util.regex.Matcher.matches:()Z
            invokestatic org.springframework.expression.spel.support.BooleanTypedValue.forValue:(Z)Lorg/springframework/expression/spel/support/BooleanTypedValue;
        19: areturn
        end local 8 // java.util.regex.Matcher matcher
        end local 7 // java.util.regex.Pattern pattern
        end local 6 // java.lang.String rightString
        20: .line 87
      StackMap locals: org.springframework.expression.spel.ast.OperatorMatches org.springframework.expression.spel.ExpressionState org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.spel.ast.SpelNodeImpl java.lang.String java.lang.Object
      StackMap stack: java.util.regex.PatternSyntaxException
            astore 6 /* ex */
        start local 6 // java.util.regex.PatternSyntaxException ex
        21: .line 88
            new org.springframework.expression.spel.SpelEvaluationException
            dup
        22: .line 89
            aload 3 /* rightOp */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getStartPosition:()I
            aload 6 /* ex */
            getstatic org.springframework.expression.spel.SpelMessage.INVALID_PATTERN:Lorg/springframework/expression/spel/SpelMessage;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* right */
        23: .line 88
            aastore
            invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILjava/lang/Throwable;Lorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
            athrow
        end local 6 // java.util.regex.PatternSyntaxException ex
        24: .line 91
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            astore 6 /* ex */
        start local 6 // java.lang.IllegalStateException ex
        25: .line 92
            new org.springframework.expression.spel.SpelEvaluationException
            dup
        26: .line 93
            aload 3 /* rightOp */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getStartPosition:()I
            aload 6 /* ex */
            getstatic org.springframework.expression.spel.SpelMessage.FLAWED_PATTERN:Lorg/springframework/expression/spel/SpelMessage;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* right */
        27: .line 92
            aastore
            invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILjava/lang/Throwable;Lorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
            athrow
        end local 6 // java.lang.IllegalStateException ex
        end local 5 // java.lang.Object right
        end local 4 // java.lang.String left
        end local 3 // org.springframework.expression.spel.ast.SpelNodeImpl rightOp
        end local 2 // org.springframework.expression.spel.ast.SpelNodeImpl leftOp
        end local 1 // org.springframework.expression.spel.ExpressionState state
        end local 0 // org.springframework.expression.spel.ast.OperatorMatches this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   28     0         this  Lorg/springframework/expression/spel/ast/OperatorMatches;
            0   28     1        state  Lorg/springframework/expression/spel/ExpressionState;
            1   28     2       leftOp  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            2   28     3      rightOp  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            3   28     4         left  Ljava/lang/String;
            4   28     5        right  Ljava/lang/Object;
           13   20     6  rightString  Ljava/lang/String;
           14   20     7      pattern  Ljava/util/regex/Pattern;
           18   20     8      matcher  Ljava/util/regex/Matcher;
           21   24     6           ex  Ljava/util/regex/PatternSyntaxException;
           25   28     6           ex  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
          12    19      20  Class java.util.regex.PatternSyntaxException
          12    19      24  Class java.lang.IllegalStateException
    Exceptions:
      throws org.springframework.expression.EvaluationException
    MethodParameters:
       Name  Flags
      state  

  public org.springframework.expression.TypedValue getValueInternal(org.springframework.expression.spel.ExpressionState);
    descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual org.springframework.expression.spel.ast.OperatorMatches.getValueInternal:(Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/spel/support/BooleanTypedValue;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws org.springframework.expression.EvaluationException
}
SourceFile: "OperatorMatches.java"
NestMembers:
  org.springframework.expression.spel.ast.OperatorMatches$AccessCount  org.springframework.expression.spel.ast.OperatorMatches$MatcherInput
InnerClasses:
  private AccessCount = org.springframework.expression.spel.ast.OperatorMatches$AccessCount of org.springframework.expression.spel.ast.OperatorMatches
  private MatcherInput = org.springframework.expression.spel.ast.OperatorMatches$MatcherInput of org.springframework.expression.spel.ast.OperatorMatches