public class org.eclipse.jetty.http.pathmap.UriTemplatePathSpec extends org.eclipse.jetty.http.pathmap.RegexPathSpec
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jetty.http.pathmap.UriTemplatePathSpec
super_class: org.eclipse.jetty.http.pathmap.RegexPathSpec
{
private static final org.eclipse.jetty.util.log.Logger LOG;
descriptor: Lorg/eclipse/jetty/util/log/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
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 java.lang.String VARIABLE_RESERVED;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: ":/?#[]@!$&'()*+,;="
private static final java.lang.String VARIABLE_SYMBOLS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "-._"
private static final java.util.Set<java.lang.String> FORBIDDEN_SEGMENTS;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private java.lang.String[] variables;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/eclipse/jetty/http/pathmap/UriTemplatePathSpec;
invokestatic org.eclipse.jetty.util.log.Log.getLogger:(Ljava/lang/Class;)Lorg/eclipse/jetty/util/log/Logger;
putstatic org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.LOG:Lorg/eclipse/jetty/util/log/Logger;
1: ldc "\\{(.*)\\}"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.VARIABLE_PATTERN:Ljava/util/regex/Pattern;
2: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putstatic org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.FORBIDDEN_SEGMENTS:Ljava/util/Set;
3: getstatic org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.FORBIDDEN_SEGMENTS:Ljava/util/Set;
ldc "/./"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
4: getstatic org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.FORBIDDEN_SEGMENTS:Ljava/util/Set;
ldc "/../"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
5: getstatic org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.FORBIDDEN_SEGMENTS:Ljava/util/Set;
ldc "//"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
6: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=13, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.eclipse.jetty.http.pathmap.RegexPathSpec.<init>:()V
1: aload 1
ldc "Path Param Spec cannot be null"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
2: ldc ""
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
ldc "/"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
3: StackMap locals: org.eclipse.jetty.http.pathmap.UriTemplatePathSpec java.lang.String
StackMap stack:
aload 0
ldc "/"
putfield org.eclipse.jetty.http.pathmap.RegexPathSpec.pathSpec:Ljava/lang/String;
4: aload 0
ldc "^/$"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putfield org.eclipse.jetty.http.pathmap.RegexPathSpec.pattern:Ljava/util/regex/Pattern;
5: aload 0
iconst_1
putfield org.eclipse.jetty.http.pathmap.RegexPathSpec.pathDepth:I
6: aload 0
iconst_1
putfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.specLength:I
7: aload 0
iconst_0
anewarray java.lang.String
putfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.variables:[Ljava/lang/String;
8: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.EXACT:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
putfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
9: return
10: StackMap locals:
StackMap stack:
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpeq 16
11: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 12: aload 2
ldc "Syntax Error: path spec \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: aload 2
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: aload 2
ldc "\" must start with '/'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: new java.lang.IllegalArgumentException
dup
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 16: StackMap locals:
StackMap stack:
getstatic org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.FORBIDDEN_SEGMENTS:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 25
StackMap locals: org.eclipse.jetty.http.pathmap.UriTemplatePathSpec java.lang.String top java.util.Iterator
StackMap stack:
17: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 18: aload 1
aload 2
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 25
19: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 4
start local 4 20: aload 4
ldc "Syntax Error: segment "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: aload 4
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
22: aload 4
ldc " is forbidden in path spec: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
23: aload 4
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
24: new java.lang.IllegalArgumentException
dup
aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 2 25: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
26: aload 0
aload 1
putfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.pathSpec:Ljava/lang/String;
27: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 28: aload 2
bipush 94
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
29: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 30: aload 1
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
ldc "/"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 4
start local 4 31: aload 4
arraylength
newarray 5
astore 5
start local 5 32: aload 0
aload 4
arraylength
putfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.pathDepth:I
33: iconst_0
istore 6
start local 6 34: goto 82
35: StackMap locals: org.eclipse.jetty.http.pathmap.UriTemplatePathSpec java.lang.String java.lang.StringBuilder java.util.List java.lang.String[] char[] int
StackMap stack:
aload 4
iload 6
aaload
astore 7
start local 7 36: getstatic org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.VARIABLE_PATTERN:Ljava/util/regex/Pattern;
aload 7
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 8
start local 8 37: aload 8
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 51
38: aload 8
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 9
start local 9 39: aload 3
aload 9
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 46
40: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 10
start local 10 41: aload 10
ldc "Syntax Error: variable "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
42: aload 10
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
43: aload 10
ldc " is duplicated in path spec: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
44: aload 10
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
45: new java.lang.IllegalArgumentException
dup
aload 10
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 10 46: StackMap locals: java.lang.String java.util.regex.Matcher java.lang.String
StackMap stack:
aload 0
aload 9
invokevirtual org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.assertIsValidVariableLiteral:(Ljava/lang/String;)V
47: aload 5
iload 6
bipush 118
castore
48: aload 3
aload 9
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
49: aload 2
ldc "/([^/]+)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 9 50: goto 81
51: StackMap locals:
StackMap stack:
aload 8
iconst_0
invokevirtual java.util.regex.Matcher.find:(I)Z
ifeq 58
52: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 9
start local 9 53: aload 9
ldc "Syntax Error: variable "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
54: aload 9
aload 8
invokevirtual java.util.regex.Matcher.group:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
55: aload 9
ldc " must exist as entire path segment: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
56: aload 9
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
57: new java.lang.IllegalArgumentException
dup
aload 9
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 9 58: StackMap locals:
StackMap stack:
aload 7
bipush 123
invokevirtual java.lang.String.indexOf:(I)I
ifge 59
aload 7
bipush 125
invokevirtual java.lang.String.indexOf:(I)I
iflt 65
59: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 9
start local 9 60: aload 9
ldc "Syntax Error: invalid path segment /"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
61: aload 9
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
62: aload 9
ldc "/ variable declaration incomplete: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
63: aload 9
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
64: new java.lang.IllegalArgumentException
dup
aload 9
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 9 65: StackMap locals:
StackMap stack:
aload 7
bipush 42
invokevirtual java.lang.String.indexOf:(I)I
iflt 72
66: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 9
start local 9 67: aload 9
ldc "Syntax Error: path segment /"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
68: aload 9
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
69: aload 9
ldc "/ contains a wildcard symbol (not supported by this uri-template implementation): "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
70: aload 9
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
71: new java.lang.IllegalArgumentException
dup
aload 9
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 9 72: StackMap locals:
StackMap stack:
aload 5
iload 6
bipush 101
castore
73: aload 2
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
74: aload 7
invokevirtual java.lang.String.toCharArray:()[C
dup
astore 12
arraylength
istore 11
iconst_0
istore 10
goto 80
StackMap locals: org.eclipse.jetty.http.pathmap.UriTemplatePathSpec java.lang.String java.lang.StringBuilder java.util.List java.lang.String[] char[] int java.lang.String java.util.regex.Matcher top int int char[]
StackMap stack:
75: aload 12
iload 10
caload
istore 9
start local 9 76: iload 9
bipush 46
if_icmpeq 77
iload 9
bipush 91
if_icmpeq 77
iload 9
bipush 93
if_icmpeq 77
iload 9
bipush 92
if_icmpne 78
77: StackMap locals: org.eclipse.jetty.http.pathmap.UriTemplatePathSpec java.lang.String java.lang.StringBuilder java.util.List java.lang.String[] char[] int java.lang.String java.util.regex.Matcher int int int char[]
StackMap stack:
aload 2
bipush 92
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
78: StackMap locals:
StackMap stack:
aload 2
iload 9
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 9 79: iinc 10 1
StackMap locals: org.eclipse.jetty.http.pathmap.UriTemplatePathSpec java.lang.String java.lang.StringBuilder java.util.List java.lang.String[] char[] int java.lang.String java.util.regex.Matcher top int int char[]
StackMap stack:
80: iload 10
iload 11
if_icmplt 75
end local 8 end local 7 81: StackMap locals: org.eclipse.jetty.http.pathmap.UriTemplatePathSpec java.lang.String java.lang.StringBuilder java.util.List java.lang.String[] char[] int
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
82: iload 6
aload 4
arraylength
if_icmplt 35
end local 6 83: aload 1
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 85
84: aload 2
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
85: StackMap locals:
StackMap stack:
aload 2
bipush 36
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
86: aload 0
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.pattern:Ljava/util/regex/Pattern;
87: aload 3
invokeinterface java.util.List.size:()I
istore 6
start local 6 88: aload 0
aload 3
iload 6
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
putfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.variables:[Ljava/lang/String;
89: aload 5
invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
astore 7
start local 7 90: ldc "^e*$"
aload 7
invokestatic java.util.regex.Pattern.matches:(Ljava/lang/String;Ljava/lang/CharSequence;)Z
ifeq 93
91: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.EXACT:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
putfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
92: goto 100
93: StackMap locals: int java.lang.String
StackMap stack:
ldc "^e*v+"
aload 7
invokestatic java.util.regex.Pattern.matches:(Ljava/lang/String;Ljava/lang/CharSequence;)Z
ifeq 96
94: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.PREFIX_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
putfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
95: goto 100
96: StackMap locals:
StackMap stack:
ldc "^v+e+"
aload 7
invokestatic java.util.regex.Pattern.matches:(Ljava/lang/String;Ljava/lang/CharSequence;)Z
ifeq 99
97: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.SUFFIX_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
putfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
98: goto 100
99: StackMap locals:
StackMap stack:
aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.MIDDLE_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
putfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
100: StackMap locals:
StackMap stack:
return
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 101 0 this Lorg/eclipse/jetty/http/pathmap/UriTemplatePathSpec;
0 101 1 rawSpec Ljava/lang/String;
12 16 2 err Ljava/lang/StringBuilder;
18 25 2 forbidden Ljava/lang/String;
20 25 4 err Ljava/lang/StringBuilder;
28 101 2 regex Ljava/lang/StringBuilder;
30 101 3 varNames Ljava/util/List<Ljava/lang/String;>;
31 101 4 segments [Ljava/lang/String;
32 101 5 segmentSignature [C
34 83 6 i I
36 81 7 segment Ljava/lang/String;
37 81 8 mat Ljava/util/regex/Matcher;
39 50 9 variable Ljava/lang/String;
41 46 10 err Ljava/lang/StringBuilder;
53 58 9 err Ljava/lang/StringBuilder;
60 65 9 err Ljava/lang/StringBuilder;
67 72 9 err Ljava/lang/StringBuilder;
76 79 9 c C
88 101 6 varcount I
90 101 7 sig Ljava/lang/String;
MethodParameters:
Name Flags
rawSpec
private void assertIsValidVariableLiteral(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iload 2
ifle 3
iconst_1
goto 4
StackMap locals: int int
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 5
start local 5 5: goto 21
6: StackMap locals: org.eclipse.jetty.http.pathmap.UriTemplatePathSpec java.lang.String int int top int
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.String.codePointAt:(I)I
istore 4
start local 4 7: iload 3
iload 4
invokestatic java.lang.Character.charCount:(I)I
iadd
istore 3
8: aload 0
iload 4
invokevirtual org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.isValidBasicLiteralCodepoint:(I)Z
ifeq 10
9: goto 21
10: StackMap locals: org.eclipse.jetty.http.pathmap.UriTemplatePathSpec java.lang.String int int int int
StackMap stack:
iload 4
invokestatic java.lang.Character.isSupplementaryCodePoint:(I)Z
ifeq 12
11: goto 21
12: StackMap locals:
StackMap stack:
iload 4
bipush 37
if_icmpne 20
13: iload 3
iconst_2
iadd
iload 2
if_icmple 16
14: iconst_0
istore 5
15: goto 21
16: StackMap locals:
StackMap stack:
aload 1
iload 3
iinc 3 1
invokevirtual java.lang.String.codePointAt:(I)I
invokestatic org.eclipse.jetty.util.TypeUtil.convertHexDigit:(I)I
iconst_4
ishl
istore 4
17: iload 4
aload 1
iload 3
iinc 3 1
invokevirtual java.lang.String.codePointAt:(I)I
invokestatic org.eclipse.jetty.util.TypeUtil.convertHexDigit:(I)I
ior
istore 4
18: aload 0
iload 4
invokevirtual org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.isValidBasicLiteralCodepoint:(I)Z
ifeq 20
19: goto 21
20: StackMap locals:
StackMap stack:
iconst_0
istore 5
end local 4 21: StackMap locals: org.eclipse.jetty.http.pathmap.UriTemplatePathSpec java.lang.String int int top int
StackMap stack:
iload 5
ifeq 22
iload 3
iload 2
if_icmplt 6
22: StackMap locals:
StackMap stack:
iload 5
ifne 29
23: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 6
start local 6 24: aload 6
ldc "Syntax Error: variable {"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
25: aload 6
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
26: aload 6
ldc "} an invalid variable name: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
27: aload 6
aload 0
getfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.pathSpec:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: new java.lang.IllegalArgumentException
dup
aload 6
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 6 29: StackMap locals:
StackMap stack:
return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/eclipse/jetty/http/pathmap/UriTemplatePathSpec;
0 30 1 variable Ljava/lang/String;
1 30 2 len I
2 30 3 i I
7 21 4 codepoint I
5 30 5 valid Z
24 29 6 err Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
variable
private boolean isValidBasicLiteralCodepoint(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: iload 1
bipush 97
if_icmplt 1
iload 1
bipush 122
if_icmple 3
1: StackMap locals:
StackMap stack:
iload 1
bipush 65
if_icmplt 2
iload 1
bipush 90
if_icmple 3
2: StackMap locals:
StackMap stack:
iload 1
bipush 48
if_icmplt 4
iload 1
bipush 57
if_icmpgt 4
3: StackMap locals:
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
ldc "-._"
iload 1
invokevirtual java.lang.String.indexOf:(I)I
iflt 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
ldc ":/?#[]@!$&'()*+,;="
iload 1
invokevirtual java.lang.String.indexOf:(I)I
iflt 9
7: getstatic org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "Detected URI Template reserved symbol [{}] in path spec \"{}\""
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 1
i2c
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
aastore
dup
iconst_1
aload 0
getfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.pathSpec:Ljava/lang/String;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jetty/http/pathmap/UriTemplatePathSpec;
0 10 1 codepoint I
MethodParameters:
Name Flags
codepoint
public java.util.Map<java.lang.String, java.lang.String> getPathParams(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.getMatcher:(Ljava/lang/String;)Ljava/util/regex/Matcher;
astore 2
start local 2 1: aload 2
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 13
2: aload 0
getfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.EXACT:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
if_acmpne 4
3: invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
areturn
4: StackMap locals: java.util.regex.Matcher
StackMap stack:
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 3
start local 3 5: aload 2
invokevirtual java.util.regex.Matcher.groupCount:()I
istore 4
start local 4 6: iconst_1
istore 5
start local 5 7: goto 11
8: StackMap locals: java.util.Map int int
StackMap stack:
aload 2
iload 5
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokestatic org.eclipse.jetty.util.UrlEncoded.decodeString:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 9: aload 3
aload 0
getfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.variables:[Ljava/lang/String;
iload 5
iconst_1
isub
aaload
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 10: iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
iload 4
if_icmple 8
end local 5 12: aload 3
areturn
end local 4 end local 3 13: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/eclipse/jetty/http/pathmap/UriTemplatePathSpec;
0 14 1 path Ljava/lang/String;
1 14 2 matcher Ljava/util/regex/Matcher;
5 13 3 ret Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
6 13 4 groupCount I
7 12 5 i I
9 10 6 value Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
MethodParameters:
Name Flags
path
public int getVariableCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.variables:[Ljava/lang/String;
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/http/pathmap/UriTemplatePathSpec;
public java.lang.String[] getVariables();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.http.pathmap.UriTemplatePathSpec.variables:[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/http/pathmap/UriTemplatePathSpec;
}
SourceFile: "UriTemplatePathSpec.java"