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 start local 1 start local 2 start local 3 0: aload 0
ldc "matches"
iload 1
iload 2
aload 3
invokespecial org.springframework.expression.spel.ast.Operator.<init>:(Ljava/lang/String;II[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
1: aload 0
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: return
end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
invokevirtual org.springframework.expression.spel.ast.OperatorMatches.getLeftOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
astore 2
start local 2 1: aload 0
invokevirtual org.springframework.expression.spel.ast.OperatorMatches.getRightOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
astore 3
start local 3 2: aload 2
aload 1
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
start local 4 3: aload 0
invokevirtual org.springframework.expression.spel.ast.OperatorMatches.getRightOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
aload 1
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getValue:(Lorg/springframework/expression/spel/ExpressionState;)Ljava/lang/Object;
astore 5
start local 5 4: aload 4
ifnonnull 8
5: new org.springframework.expression.spel.SpelEvaluationException
dup
aload 2
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getStartPosition:()I
6: 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: aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
8: 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
instanceof java.lang.String
ifne 12
9: new org.springframework.expression.spel.SpelEvaluationException
dup
aload 3
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getStartPosition:()I
10: 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
11: aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
12: StackMap locals:
StackMap stack:
aload 5
checkcast java.lang.String
astore 6
start local 6 13: aload 0
getfield org.springframework.expression.spel.ast.OperatorMatches.patternCache:Ljava/util/concurrent/ConcurrentMap;
aload 6
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.regex.Pattern
astore 7
start local 7 14: aload 7
ifnonnull 17
15: aload 6
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
astore 7
16: aload 0
getfield org.springframework.expression.spel.ast.OperatorMatches.patternCache:Ljava/util/concurrent/ConcurrentMap;
aload 6
aload 7
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: StackMap locals: java.lang.String java.util.regex.Pattern
StackMap stack:
aload 7
new org.springframework.expression.spel.ast.OperatorMatches$MatcherInput
dup
aload 4
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
start local 8 18: aload 8
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 end local 7 end local 6 20: 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
start local 6 21: new org.springframework.expression.spel.SpelEvaluationException
dup
22: aload 3
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getStartPosition:()I
aload 6
getstatic org.springframework.expression.spel.SpelMessage.INVALID_PATTERN:Lorg/springframework/expression/spel/SpelMessage;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
23: aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILjava/lang/Throwable;Lorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
end local 6 24: StackMap locals:
StackMap stack: java.lang.IllegalStateException
astore 6
start local 6 25: new org.springframework.expression.spel.SpelEvaluationException
dup
26: aload 3
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getStartPosition:()I
aload 6
getstatic org.springframework.expression.spel.SpelMessage.FLAWED_PATTERN:Lorg/springframework/expression/spel/SpelMessage;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
27: aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILjava/lang/Throwable;Lorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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: 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