public class org.springframework.util.AntPathMatcher implements org.springframework.util.PathMatcher
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.util.AntPathMatcher
super_class: java.lang.Object
{
public static final java.lang.String DEFAULT_PATH_SEPARATOR;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "/"
private static final int CACHE_TURNOFF_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private static final java.util.regex.Pattern VARIABLE_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final char[] WILDCARD_CHARS;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.lang.String pathSeparator;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private org.springframework.util.AntPathMatcher$PathSeparatorPatternCache pathSeparatorPatternCache;
descriptor: Lorg/springframework/util/AntPathMatcher$PathSeparatorPatternCache;
flags: (0x0002) ACC_PRIVATE
private boolean caseSensitive;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean trimTokens;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private volatile java.lang.Boolean cachePatterns;
descriptor: Ljava/lang/Boolean;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final java.util.Map<java.lang.String, java.lang.String[]> tokenizedPatternCache;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;[Ljava/lang/String;>;
final java.util.Map<java.lang.String, org.springframework.util.AntPathMatcher$AntPathStringMatcher> stringMatcherCache;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/springframework/util/AntPathMatcher$AntPathStringMatcher;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc "\\{[^/]+?\\}"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic org.springframework.util.AntPathMatcher.VARIABLE_PATTERN:Ljava/util/regex/Pattern;
1: iconst_3
newarray 5
dup
iconst_0
bipush 42
castore
dup
iconst_1
bipush 63
castore
dup
iconst_2
bipush 123
castore
putstatic org.springframework.util.AntPathMatcher.WILDCARD_CHARS:[C
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield org.springframework.util.AntPathMatcher.caseSensitive:Z
2: aload 0
iconst_0
putfield org.springframework.util.AntPathMatcher.trimTokens:Z
3: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
sipush 256
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.util.AntPathMatcher.tokenizedPatternCache:Ljava/util/Map;
4: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
sipush 256
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.util.AntPathMatcher.stringMatcherCache:Ljava/util/Map;
5: aload 0
ldc "/"
putfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
6: aload 0
new org.springframework.util.AntPathMatcher$PathSeparatorPatternCache
dup
ldc "/"
invokespecial org.springframework.util.AntPathMatcher$PathSeparatorPatternCache.<init>:(Ljava/lang/String;)V
putfield org.springframework.util.AntPathMatcher.pathSeparatorPatternCache:Lorg/springframework/util/AntPathMatcher$PathSeparatorPatternCache;
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/util/AntPathMatcher;
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield org.springframework.util.AntPathMatcher.caseSensitive:Z
2: aload 0
iconst_0
putfield org.springframework.util.AntPathMatcher.trimTokens:Z
3: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
sipush 256
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.util.AntPathMatcher.tokenizedPatternCache:Ljava/util/Map;
4: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
sipush 256
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.util.AntPathMatcher.stringMatcherCache:Ljava/util/Map;
5: aload 1
ldc "'pathSeparator' is required"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
6: aload 0
aload 1
putfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
7: aload 0
new org.springframework.util.AntPathMatcher$PathSeparatorPatternCache
dup
aload 1
invokespecial org.springframework.util.AntPathMatcher$PathSeparatorPatternCache.<init>:(Ljava/lang/String;)V
putfield org.springframework.util.AntPathMatcher.pathSeparatorPatternCache:Lorg/springframework/util/AntPathMatcher$PathSeparatorPatternCache;
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/util/AntPathMatcher;
0 9 1 pathSeparator Ljava/lang/String;
MethodParameters:
Name Flags
pathSeparator
public void setPathSeparator(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ifnull 1
aload 1
goto 2
StackMap locals:
StackMap stack: org.springframework.util.AntPathMatcher
1: ldc "/"
StackMap locals: org.springframework.util.AntPathMatcher java.lang.String
StackMap stack: org.springframework.util.AntPathMatcher java.lang.String
2: putfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
3: aload 0
new org.springframework.util.AntPathMatcher$PathSeparatorPatternCache
dup
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokespecial org.springframework.util.AntPathMatcher$PathSeparatorPatternCache.<init>:(Ljava/lang/String;)V
putfield org.springframework.util.AntPathMatcher.pathSeparatorPatternCache:Lorg/springframework/util/AntPathMatcher$PathSeparatorPatternCache;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/util/AntPathMatcher;
0 5 1 pathSeparator Ljava/lang/String;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
pathSeparator
public void setCaseSensitive(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.util.AntPathMatcher.caseSensitive:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/util/AntPathMatcher;
0 2 1 caseSensitive Z
MethodParameters:
Name Flags
caseSensitive
public void setTrimTokens(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.util.AntPathMatcher.trimTokens:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/util/AntPathMatcher;
0 2 1 trimTokens Z
MethodParameters:
Name Flags
trimTokens
public void setCachePatterns(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
putfield org.springframework.util.AntPathMatcher.cachePatterns:Ljava/lang/Boolean;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/util/AntPathMatcher;
0 2 1 cachePatterns Z
MethodParameters:
Name Flags
cachePatterns
private void deactivatePatternCache();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
putfield org.springframework.util.AntPathMatcher.cachePatterns:Ljava/lang/Boolean;
1: aload 0
getfield org.springframework.util.AntPathMatcher.tokenizedPatternCache:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
2: aload 0
getfield org.springframework.util.AntPathMatcher.stringMatcherCache:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/util/AntPathMatcher;
public boolean isPattern(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
bipush 42
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpne 1
aload 1
bipush 63
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/util/AntPathMatcher;
0 2 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
public boolean match(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_1
aconst_null
invokevirtual org.springframework.util.AntPathMatcher.doMatch:(Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/util/AntPathMatcher;
0 1 1 pattern Ljava/lang/String;
0 1 2 path Ljava/lang/String;
MethodParameters:
Name Flags
pattern
path
public boolean matchStart(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
aconst_null
invokevirtual org.springframework.util.AntPathMatcher.doMatch:(Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/util/AntPathMatcher;
0 1 1 pattern Ljava/lang/String;
0 1 2 path Ljava/lang/String;
MethodParameters:
Name Flags
pattern
path
protected boolean doMatch(java.lang.String, java.lang.String, boolean, java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=19, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
aload 1
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
if_icmpeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.springframework.util.AntPathMatcher.tokenizePattern:(Ljava/lang/String;)[Ljava/lang/String;
astore 5
start local 5 3: iload 3
ifeq 5
aload 0
getfield org.springframework.util.AntPathMatcher.caseSensitive:Z
ifeq 5
aload 0
aload 2
aload 5
invokevirtual org.springframework.util.AntPathMatcher.isPotentialMatch:(Ljava/lang/String;[Ljava/lang/String;)Z
ifne 5
4: iconst_0
ireturn
5: StackMap locals: java.lang.String[]
StackMap stack:
aload 0
aload 2
invokevirtual org.springframework.util.AntPathMatcher.tokenizePath:(Ljava/lang/String;)[Ljava/lang/String;
astore 6
start local 6 6: iconst_0
istore 7
start local 7 7: aload 5
arraylength
iconst_1
isub
istore 8
start local 8 8: iconst_0
istore 9
start local 9 9: aload 6
arraylength
iconst_1
isub
istore 10
start local 10 10: goto 18
11: StackMap locals: org.springframework.util.AntPathMatcher java.lang.String java.lang.String int java.util.Map java.lang.String[] java.lang.String[] int int int int
StackMap stack:
aload 5
iload 7
aaload
astore 11
start local 11 12: ldc "**"
aload 11
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
13: goto 19
14: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 11
aload 6
iload 9
aaload
aload 4
invokevirtual org.springframework.util.AntPathMatcher.matchStrings:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Z
ifne 16
15: iconst_0
ireturn
16: StackMap locals:
StackMap stack:
iinc 7 1
17: iinc 9 1
end local 11 18: StackMap locals:
StackMap stack:
iload 7
iload 8
if_icmpgt 19
iload 9
iload 10
if_icmple 11
19: StackMap locals:
StackMap stack:
iload 9
iload 10
if_icmple 34
20: iload 7
iload 8
if_icmple 23
21: aload 1
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
aload 2
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
if_icmpne 22
iconst_1
ireturn
StackMap locals:
StackMap stack:
22: iconst_0
ireturn
23: StackMap locals:
StackMap stack:
iload 3
ifne 25
24: iconst_1
ireturn
25: StackMap locals:
StackMap stack:
iload 7
iload 8
if_icmpne 27
aload 5
iload 7
aaload
ldc "*"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 27
aload 2
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 27
26: iconst_1
ireturn
27: StackMap locals:
StackMap stack:
iload 7
istore 11
start local 11 28: goto 32
29: StackMap locals: int
StackMap stack:
aload 5
iload 11
aaload
ldc "**"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 31
30: iconst_0
ireturn
31: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
32: iload 11
iload 8
if_icmple 29
end local 11 33: iconst_1
ireturn
34: StackMap locals:
StackMap stack:
iload 7
iload 8
if_icmple 36
35: iconst_0
ireturn
36: StackMap locals:
StackMap stack:
iload 3
ifne 45
ldc "**"
aload 5
iload 7
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 45
37: iconst_1
ireturn
38: StackMap locals:
StackMap stack:
aload 5
iload 8
aaload
astore 11
start local 11 39: aload 11
ldc "**"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 41
40: goto 46
41: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 11
aload 6
iload 10
aaload
aload 4
invokevirtual org.springframework.util.AntPathMatcher.matchStrings:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Z
ifne 43
42: iconst_0
ireturn
43: StackMap locals:
StackMap stack:
iinc 8 -1
44: iinc 10 -1
end local 11 45: StackMap locals:
StackMap stack:
iload 7
iload 8
if_icmpgt 46
iload 9
iload 10
if_icmple 38
46: StackMap locals:
StackMap stack:
iload 9
iload 10
if_icmple 86
47: iload 7
istore 11
start local 11 48: goto 52
49: StackMap locals: int
StackMap stack:
aload 5
iload 11
aaload
ldc "**"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 51
50: iconst_0
ireturn
51: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
52: iload 11
iload 8
if_icmple 49
end local 11 53: iconst_1
ireturn
54: StackMap locals:
StackMap stack:
iconst_m1
istore 11
start local 11 55: iload 7
iconst_1
iadd
istore 12
start local 12 56: goto 61
57: StackMap locals: int int
StackMap stack:
aload 5
iload 12
aaload
ldc "**"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 60
58: iload 12
istore 11
59: goto 62
60: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
61: iload 12
iload 8
if_icmple 57
end local 12 62: StackMap locals:
StackMap stack:
iload 11
iload 7
iconst_1
iadd
if_icmpne 65
63: iinc 7 1
64: goto 86
65: StackMap locals:
StackMap stack:
iload 11
iload 7
isub
iconst_1
isub
istore 12
start local 12 66: iload 10
iload 9
isub
iconst_1
iadd
istore 13
start local 13 67: iconst_m1
istore 14
start local 14 68: iconst_0
istore 15
start local 15 69: goto 81
70: StackMap locals: org.springframework.util.AntPathMatcher java.lang.String java.lang.String int java.util.Map java.lang.String[] java.lang.String[] int int int int int int int int int
StackMap stack:
iconst_0
istore 16
start local 16 71: goto 77
72: StackMap locals: int
StackMap stack:
aload 5
iload 7
iload 16
iadd
iconst_1
iadd
aaload
astore 17
start local 17 73: aload 6
iload 9
iload 15
iadd
iload 16
iadd
aaload
astore 18
start local 18 74: aload 0
aload 17
aload 18
aload 4
invokevirtual org.springframework.util.AntPathMatcher.matchStrings:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Z
ifne 76
75: goto 80
end local 18 end local 17 76: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
77: iload 16
iload 12
if_icmplt 72
end local 16 78: iload 9
iload 15
iadd
istore 14
79: goto 82
80: StackMap locals:
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
81: iload 15
iload 13
iload 12
isub
if_icmple 70
end local 15 82: StackMap locals:
StackMap stack:
iload 14
iconst_m1
if_icmpne 84
83: iconst_0
ireturn
84: StackMap locals:
StackMap stack:
iload 11
istore 7
85: iload 14
iload 12
iadd
istore 9
end local 14 end local 13 end local 12 end local 11 86: StackMap locals: org.springframework.util.AntPathMatcher java.lang.String java.lang.String int java.util.Map java.lang.String[] java.lang.String[] int int int int
StackMap stack:
iload 7
iload 8
if_icmpeq 87
iload 9
iload 10
if_icmple 54
87: StackMap locals:
StackMap stack:
iload 7
istore 11
start local 11 88: goto 92
89: StackMap locals: int
StackMap stack:
aload 5
iload 11
aaload
ldc "**"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 91
90: iconst_0
ireturn
91: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
92: iload 11
iload 8
if_icmple 89
end local 11 93: iconst_1
ireturn
end local 10 end local 9 end local 8 end local 7 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 94 0 this Lorg/springframework/util/AntPathMatcher;
0 94 1 pattern Ljava/lang/String;
0 94 2 path Ljava/lang/String;
0 94 3 fullMatch Z
0 94 4 uriTemplateVariables Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
3 94 5 pattDirs [Ljava/lang/String;
6 94 6 pathDirs [Ljava/lang/String;
7 94 7 pattIdxStart I
8 94 8 pattIdxEnd I
9 94 9 pathIdxStart I
10 94 10 pathIdxEnd I
12 18 11 pattDir Ljava/lang/String;
28 33 11 i I
39 45 11 pattDir Ljava/lang/String;
48 53 11 i I
55 86 11 patIdxTmp I
56 62 12 i I
66 86 12 patLength I
67 86 13 strLength I
68 86 14 foundIdx I
69 82 15 i I
71 78 16 j I
73 76 17 subPat Ljava/lang/String;
74 76 18 subStr Ljava/lang/String;
88 93 11 i I
Signature: (Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Z
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
pattern
path
fullMatch
uriTemplateVariables
private boolean isPotentialMatch(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.util.AntPathMatcher.trimTokens:Z
ifne 14
1: iconst_0
istore 3
start local 3 2: aload 2
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 13
StackMap locals: org.springframework.util.AntPathMatcher java.lang.String java.lang.String[] int top int int java.lang.String[]
StackMap stack:
3: aload 7
iload 5
aaload
astore 4
start local 4 4: aload 0
aload 1
iload 3
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokevirtual org.springframework.util.AntPathMatcher.skipSeparator:(Ljava/lang/String;ILjava/lang/String;)I
istore 8
start local 8 5: iload 3
iload 8
iadd
istore 3
6: aload 0
aload 1
iload 3
aload 4
invokevirtual org.springframework.util.AntPathMatcher.skipSegment:(Ljava/lang/String;ILjava/lang/String;)I
istore 8
7: iload 8
aload 4
invokevirtual java.lang.String.length:()I
if_icmpge 11
8: iload 8
ifgt 10
aload 4
invokevirtual java.lang.String.length:()I
ifle 9
aload 0
aload 4
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokevirtual org.springframework.util.AntPathMatcher.isWildcardChar:(C)Z
ifne 10
StackMap locals: org.springframework.util.AntPathMatcher java.lang.String java.lang.String[] int java.lang.String int int java.lang.String[] int
StackMap stack:
9: iconst_0
ireturn
StackMap locals:
StackMap stack:
10: iconst_1
ireturn
11: StackMap locals:
StackMap stack:
iload 3
iload 8
iadd
istore 3
end local 8 end local 4 12: iinc 5 1
StackMap locals: org.springframework.util.AntPathMatcher java.lang.String java.lang.String[] int top int int java.lang.String[]
StackMap stack:
13: iload 5
iload 6
if_icmplt 3
end local 3 14: StackMap locals: org.springframework.util.AntPathMatcher java.lang.String java.lang.String[]
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/springframework/util/AntPathMatcher;
0 15 1 path Ljava/lang/String;
0 15 2 pattDirs [Ljava/lang/String;
2 14 3 pos I
4 12 4 pattDir Ljava/lang/String;
5 12 8 skipped I
MethodParameters:
Name Flags
path
pattDirs
private int skipSegment(java.lang.String, int, java.lang.String);
descriptor: (Ljava/lang/String;ILjava/lang/String;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 12
3: StackMap locals: int int
StackMap stack:
aload 3
iload 5
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 4: aload 0
iload 6
invokevirtual org.springframework.util.AntPathMatcher.isWildcardChar:(C)Z
ifeq 6
5: iload 4
ireturn
6: StackMap locals: int
StackMap stack:
iload 2
iload 4
iadd
istore 7
start local 7 7: iload 7
aload 1
invokevirtual java.lang.String.length:()I
if_icmplt 9
8: iconst_0
ireturn
9: StackMap locals: int
StackMap stack:
iload 6
aload 1
iload 7
invokevirtual java.lang.String.charAt:(I)C
if_icmpne 11
10: iinc 4 1
end local 7 end local 6 11: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
aload 3
invokevirtual java.lang.String.length:()I
if_icmplt 3
end local 5 13: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/springframework/util/AntPathMatcher;
0 14 1 path Ljava/lang/String;
0 14 2 pos I
0 14 3 prefix Ljava/lang/String;
1 14 4 skipped I
2 13 5 i I
4 11 6 c C
7 11 7 currPos I
MethodParameters:
Name Flags
path
pos
prefix
private int skipSeparator(java.lang.String, int, java.lang.String);
descriptor: (Ljava/lang/String;ILjava/lang/String;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: goto 3
2: StackMap locals: int
StackMap stack:
iload 4
aload 3
invokevirtual java.lang.String.length:()I
iadd
istore 4
3: StackMap locals:
StackMap stack:
aload 1
aload 3
iload 2
iload 4
iadd
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 2
4: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/util/AntPathMatcher;
0 5 1 path Ljava/lang/String;
0 5 2 pos I
0 5 3 separator Ljava/lang/String;
1 5 4 skipped I
MethodParameters:
Name Flags
path
pos
separator
private boolean isWildcardChar(char);
descriptor: (C)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: getstatic org.springframework.util.AntPathMatcher.WILDCARD_CHARS:[C
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: org.springframework.util.AntPathMatcher int top int int char[]
StackMap stack:
1: aload 5
iload 3
caload
istore 2
start local 2 2: iload 1
iload 2
if_icmpne 4
3: iconst_1
ireturn
end local 2 4: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/util/AntPathMatcher;
0 7 1 c C
2 4 2 candidate C
MethodParameters:
Name Flags
c
protected java.lang.String[] tokenizePattern(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield org.springframework.util.AntPathMatcher.cachePatterns:Ljava/lang/Boolean;
astore 3
start local 3 2: aload 3
ifnull 3
aload 3
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 4
3: StackMap locals: java.lang.String[] java.lang.Boolean
StackMap stack:
aload 0
getfield org.springframework.util.AntPathMatcher.tokenizedPatternCache:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String[]
astore 2
4: StackMap locals:
StackMap stack:
aload 2
ifnonnull 11
5: aload 0
aload 1
invokevirtual org.springframework.util.AntPathMatcher.tokenizePath:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
6: aload 3
ifnonnull 9
aload 0
getfield org.springframework.util.AntPathMatcher.tokenizedPatternCache:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
ldc 65536
if_icmplt 9
7: aload 0
invokevirtual org.springframework.util.AntPathMatcher.deactivatePatternCache:()V
8: aload 2
areturn
9: StackMap locals:
StackMap stack:
aload 3
ifnull 10
aload 3
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 11
10: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.util.AntPathMatcher.tokenizedPatternCache:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/springframework/util/AntPathMatcher;
0 12 1 pattern Ljava/lang/String;
1 12 2 tokenized [Ljava/lang/String;
2 12 3 cachePatterns Ljava/lang/Boolean;
MethodParameters:
Name Flags
pattern
protected java.lang.String[] tokenizePath(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
aload 0
getfield org.springframework.util.AntPathMatcher.trimTokens:Z
iconst_1
invokestatic org.springframework.util.StringUtils.tokenizeToStringArray:(Ljava/lang/String;Ljava/lang/String;ZZ)[Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/util/AntPathMatcher;
0 1 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
private boolean matchStrings(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.springframework.util.AntPathMatcher.getStringMatcher:(Ljava/lang/String;)Lorg/springframework/util/AntPathMatcher$AntPathStringMatcher;
aload 2
aload 3
invokevirtual org.springframework.util.AntPathMatcher$AntPathStringMatcher.matchStrings:(Ljava/lang/String;Ljava/util/Map;)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/util/AntPathMatcher;
0 1 1 pattern Ljava/lang/String;
0 1 2 str Ljava/lang/String;
0 1 3 uriTemplateVariables Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Z
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
pattern
str
uriTemplateVariables
protected org.springframework.util.AntPathMatcher$AntPathStringMatcher getStringMatcher(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/springframework/util/AntPathMatcher$AntPathStringMatcher;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield org.springframework.util.AntPathMatcher.cachePatterns:Ljava/lang/Boolean;
astore 3
start local 3 2: aload 3
ifnull 3
aload 3
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 4
3: StackMap locals: org.springframework.util.AntPathMatcher$AntPathStringMatcher java.lang.Boolean
StackMap stack:
aload 0
getfield org.springframework.util.AntPathMatcher.stringMatcherCache:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.util.AntPathMatcher$AntPathStringMatcher
astore 2
4: StackMap locals:
StackMap stack:
aload 2
ifnonnull 11
5: new org.springframework.util.AntPathMatcher$AntPathStringMatcher
dup
aload 1
aload 0
getfield org.springframework.util.AntPathMatcher.caseSensitive:Z
invokespecial org.springframework.util.AntPathMatcher$AntPathStringMatcher.<init>:(Ljava/lang/String;Z)V
astore 2
6: aload 3
ifnonnull 9
aload 0
getfield org.springframework.util.AntPathMatcher.stringMatcherCache:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
ldc 65536
if_icmplt 9
7: aload 0
invokevirtual org.springframework.util.AntPathMatcher.deactivatePatternCache:()V
8: aload 2
areturn
9: StackMap locals:
StackMap stack:
aload 3
ifnull 10
aload 3
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 11
10: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.util.AntPathMatcher.stringMatcherCache:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/springframework/util/AntPathMatcher;
0 12 1 pattern Ljava/lang/String;
1 12 2 matcher Lorg/springframework/util/AntPathMatcher$AntPathStringMatcher;
2 12 3 cachePatterns Ljava/lang/Boolean;
MethodParameters:
Name Flags
pattern
public java.lang.String (java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
aload 0
getfield org.springframework.util.AntPathMatcher.trimTokens:Z
iconst_1
invokestatic org.springframework.util.StringUtils.tokenizeToStringArray:(Ljava/lang/String;Ljava/lang/String;ZZ)[Ljava/lang/String;
astore 3
start local 3 1: aload 2
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
aload 0
getfield org.springframework.util.AntPathMatcher.trimTokens:Z
iconst_1
invokestatic org.springframework.util.StringUtils.tokenizeToStringArray:(Ljava/lang/String;Ljava/lang/String;ZZ)[Ljava/lang/String;
astore 4
start local 4 2: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 5
start local 5 3: iconst_0
istore 6
start local 6 4: iconst_0
istore 7
start local 7 5: goto 16
6: StackMap locals: org.springframework.util.AntPathMatcher java.lang.String java.lang.String java.lang.String[] java.lang.String[] java.lang.StringBuilder int int
StackMap stack:
aload 3
iload 7
aaload
astore 8
start local 8 7: aload 8
bipush 42
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpgt 14
aload 8
bipush 63
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmple 15
8: goto 14
9: StackMap locals: java.lang.String
StackMap stack:
iload 6
ifne 10
iload 7
ifne 11
aload 1
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 11
10: StackMap locals:
StackMap stack:
aload 5
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: StackMap locals:
StackMap stack:
aload 5
aload 4
iload 7
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: iconst_1
istore 6
13: iinc 7 1
StackMap locals:
StackMap stack:
14: iload 7
aload 4
arraylength
if_icmplt 9
end local 8 15: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
16: iload 7
aload 3
arraylength
if_icmplt 6
end local 7 17: aload 5
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
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 18 0 this Lorg/springframework/util/AntPathMatcher;
0 18 1 pattern Ljava/lang/String;
0 18 2 path Ljava/lang/String;
1 18 3 patternParts [Ljava/lang/String;
2 18 4 pathParts [Ljava/lang/String;
3 18 5 builder Ljava/lang/StringBuilder;
4 18 6 pathStarted Z
5 17 7 segment I
7 15 8 patternPart Ljava/lang/String;
MethodParameters:
Name Flags
pattern
path
public java.util.Map<java.lang.String, java.lang.String> extractUriTemplateVariables(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 3
start local 3 1: aload 0
aload 1
aload 2
iconst_1
aload 3
invokevirtual org.springframework.util.AntPathMatcher.doMatch:(Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map;)Z
istore 4
start local 4 2: iload 4
ifne 4
3: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Pattern \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\" is not a match for \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.util.Map int
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/util/AntPathMatcher;
0 5 1 pattern Ljava/lang/String;
0 5 2 path Ljava/lang/String;
1 5 3 variables Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
2 5 4 result Z
Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
MethodParameters:
Name Flags
pattern
path
public java.lang.String combine(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
ifne 2
aload 2
invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
ifne 2
1: ldc ""
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
ifne 4
3: aload 2
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
ifne 6
5: aload 1
areturn
6: StackMap locals:
StackMap stack:
aload 1
bipush 123
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpeq 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 3
start local 3 9: aload 1
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
iload 3
ifne 11
aload 0
aload 1
aload 2
invokevirtual org.springframework.util.AntPathMatcher.match:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 11
10: aload 2
areturn
11: StackMap locals: int
StackMap stack:
aload 1
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparatorPatternCache:Lorg/springframework/util/AntPathMatcher$PathSeparatorPatternCache;
invokevirtual org.springframework.util.AntPathMatcher$PathSeparatorPatternCache.getEndsOnWildCard:()Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 13
12: aload 0
aload 1
iconst_0
aload 1
invokevirtual java.lang.String.length:()I
iconst_2
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
aload 2
invokevirtual org.springframework.util.AntPathMatcher.concat:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
areturn
13: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparatorPatternCache:Lorg/springframework/util/AntPathMatcher$PathSeparatorPatternCache;
invokevirtual org.springframework.util.AntPathMatcher$PathSeparatorPatternCache.getEndsOnDoubleWildCard:()Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 15
14: aload 0
aload 1
aload 2
invokevirtual org.springframework.util.AntPathMatcher.concat:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
areturn
15: StackMap locals:
StackMap stack:
aload 1
ldc "*."
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 4
start local 4 16: iload 3
ifne 17
iload 4
iconst_m1
if_icmpeq 17
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
ldc "."
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
17: StackMap locals: int
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.springframework.util.AntPathMatcher.concat:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
areturn
18: StackMap locals:
StackMap stack:
aload 1
iload 4
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 5
start local 5 19: aload 2
bipush 46
invokevirtual java.lang.String.indexOf:(I)I
istore 6
start local 6 20: iload 6
iconst_m1
if_icmpne 21
aload 2
goto 22
StackMap locals: java.lang.String int
StackMap stack:
21: aload 2
iconst_0
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
22: astore 7
start local 7 23: iload 6
iconst_m1
if_icmpne 24
ldc ""
goto 25
StackMap locals: java.lang.String
StackMap stack:
24: aload 2
iload 6
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
25: astore 8
start local 8 26: aload 5
ldc ".*"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 27
aload 5
invokevirtual java.lang.String.isEmpty:()Z
ifne 27
iconst_0
goto 28
StackMap locals: java.lang.String
StackMap stack:
27: iconst_1
StackMap locals:
StackMap stack: int
28: istore 9
start local 9 29: aload 8
ldc ".*"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 30
aload 8
invokevirtual java.lang.String.isEmpty:()Z
ifne 30
iconst_0
goto 31
StackMap locals: int
StackMap stack:
30: iconst_1
StackMap locals:
StackMap stack: int
31: istore 10
start local 10 32: iload 9
ifne 34
iload 10
ifne 34
33: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Cannot combine patterns: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " vs "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals: int
StackMap stack:
iload 9
ifeq 35
aload 8
goto 36
StackMap locals:
StackMap stack:
35: aload 5
StackMap locals:
StackMap stack: java.lang.String
36: astore 11
start local 11 37: new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 11 end local 10 end local 9 end local 8 end local 7 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 38 0 this Lorg/springframework/util/AntPathMatcher;
0 38 1 pattern1 Ljava/lang/String;
0 38 2 pattern2 Ljava/lang/String;
9 38 3 pattern1ContainsUriVar Z
16 38 4 starDotPos1 I
19 38 5 ext1 Ljava/lang/String;
20 38 6 dotPos2 I
23 38 7 file2 Ljava/lang/String;
26 38 8 ext2 Ljava/lang/String;
29 38 9 ext1All Z
32 38 10 ext2All Z
37 38 11 ext Ljava/lang/String;
MethodParameters:
Name Flags
pattern1
pattern2
private java.lang.String concat(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
istore 3
start local 3 1: aload 2
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
istore 4
start local 4 2: iload 3
ifeq 4
iload 4
ifeq 4
3: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
4: StackMap locals: int int
StackMap stack:
iload 3
ifne 5
iload 4
ifeq 6
5: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
6: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.util.AntPathMatcher.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/util/AntPathMatcher;
0 7 1 path1 Ljava/lang/String;
0 7 2 path2 Ljava/lang/String;
1 7 3 path1EndsWithSeparator Z
2 7 4 path2StartsWithSeparator Z
MethodParameters:
Name Flags
path1
path2
public java.util.Comparator<java.lang.String> getPatternComparator(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Comparator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new org.springframework.util.AntPathMatcher$AntPatternComparator
dup
aload 1
invokespecial org.springframework.util.AntPathMatcher$AntPatternComparator.<init>:(Ljava/lang/String;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/util/AntPathMatcher;
0 1 1 path Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/util/Comparator<Ljava/lang/String;>;
MethodParameters:
Name Flags
path
}
SourceFile: "AntPathMatcher.java"
NestMembers:
org.springframework.util.AntPathMatcher$AntPathStringMatcher org.springframework.util.AntPathMatcher$AntPatternComparator org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo org.springframework.util.AntPathMatcher$PathSeparatorPatternCache
InnerClasses:
protected AntPathStringMatcher = org.springframework.util.AntPathMatcher$AntPathStringMatcher of org.springframework.util.AntPathMatcher
protected AntPatternComparator = org.springframework.util.AntPathMatcher$AntPatternComparator of org.springframework.util.AntPathMatcher
private PathSeparatorPatternCache = org.springframework.util.AntPathMatcher$PathSeparatorPatternCache of org.springframework.util.AntPathMatcher