public class io.undertow.attribute.ExchangeAttributeParser
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.attribute.ExchangeAttributeParser
super_class: java.lang.Object
{
private final java.util.List<io.undertow.attribute.ExchangeAttributeBuilder> builders;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lio/undertow/attribute/ExchangeAttributeBuilder;>;
private final java.util.List<io.undertow.attribute.ExchangeAttributeWrapper> wrappers;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lio/undertow/attribute/ExchangeAttributeWrapper;>;
void <init>(java.lang.ClassLoader, java.util.List<io.undertow.attribute.ExchangeAttributeWrapper>);
descriptor: (Ljava/lang/ClassLoader;Ljava/util/List;)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield io.undertow.attribute.ExchangeAttributeParser.wrappers:Ljava/util/List;
2: ldc Lio/undertow/attribute/ExchangeAttributeBuilder;
aload 1
invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
astore 3
start local 3 3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 4: aload 3
invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
astore 6
goto 7
StackMap locals: io.undertow.attribute.ExchangeAttributeParser java.lang.ClassLoader java.util.List java.util.ServiceLoader java.util.List top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.attribute.ExchangeAttributeBuilder
astore 5
start local 5 6: aload 4
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 7: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: aload 4
new io.undertow.attribute.ExchangeAttributeParser$1
dup
aload 0
invokespecial io.undertow.attribute.ExchangeAttributeParser$1.<init>:(Lio/undertow/attribute/ExchangeAttributeParser;)V
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
9: aload 0
aload 4
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
putfield io.undertow.attribute.ExchangeAttributeParser.builders:Ljava/util/List;
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/undertow/attribute/ExchangeAttributeParser;
0 11 1 classLoader Ljava/lang/ClassLoader;
0 11 2 wrappers Ljava/util/List<Lio/undertow/attribute/ExchangeAttributeWrapper;>;
3 11 3 loader Ljava/util/ServiceLoader<Lio/undertow/attribute/ExchangeAttributeBuilder;>;
4 11 4 builders Ljava/util/List<Lio/undertow/attribute/ExchangeAttributeBuilder;>;
6 7 5 instance Lio/undertow/attribute/ExchangeAttributeBuilder;
Signature: (Ljava/lang/ClassLoader;Ljava/util/List<Lio/undertow/attribute/ExchangeAttributeWrapper;>;)V
MethodParameters:
Name Flags
classLoader final
wrappers
public io.undertow.attribute.ExchangeAttribute parse(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/undertow/attribute/ExchangeAttribute;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 50
5: StackMap locals: io.undertow.attribute.ExchangeAttributeParser java.lang.String java.util.List int int int
StackMap stack:
aload 1
iload 5
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 6: iload 4
tableswitch { // 0 - 4
0: 7
1: 16
2: 28
3: 33
4: 45
default: 49
}
7: StackMap locals: int
StackMap stack:
iload 6
bipush 37
if_icmpeq 8
iload 6
bipush 36
if_icmpne 49
8: StackMap locals:
StackMap stack:
iload 3
iload 5
if_icmpeq 11
9: aload 2
aload 0
aload 0
aload 1
iload 3
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.parseSingleToken:(Ljava/lang/String;)Lio/undertow/attribute/ExchangeAttribute;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.wrap:(Lio/undertow/attribute/ExchangeAttribute;)Lio/undertow/attribute/ExchangeAttribute;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: iload 5
istore 3
11: StackMap locals:
StackMap stack:
iload 6
bipush 37
if_icmpne 14
12: iconst_1
istore 4
13: goto 49
14: StackMap locals:
StackMap stack:
iconst_3
istore 4
15: goto 49
16: StackMap locals:
StackMap stack:
iload 6
bipush 123
if_icmpne 19
17: iconst_2
istore 4
18: goto 49
StackMap locals:
StackMap stack:
19: iload 6
bipush 37
if_icmpne 24
20: aload 2
aload 0
new io.undertow.attribute.ConstantExchangeAttribute
dup
ldc "%"
invokespecial io.undertow.attribute.ConstantExchangeAttribute.<init>:(Ljava/lang/String;)V
invokevirtual io.undertow.attribute.ExchangeAttributeParser.wrap:(Lio/undertow/attribute/ExchangeAttribute;)Lio/undertow/attribute/ExchangeAttribute;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
21: iload 5
iconst_1
iadd
istore 3
22: iconst_0
istore 4
23: goto 49
24: StackMap locals:
StackMap stack:
aload 2
aload 0
aload 0
aload 1
iload 3
iload 5
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.parseSingleToken:(Ljava/lang/String;)Lio/undertow/attribute/ExchangeAttribute;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.wrap:(Lio/undertow/attribute/ExchangeAttribute;)Lio/undertow/attribute/ExchangeAttribute;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
25: iload 5
iconst_1
iadd
istore 3
26: iconst_0
istore 4
27: goto 49
28: StackMap locals:
StackMap stack:
iload 6
bipush 125
if_icmpne 49
29: aload 2
aload 0
aload 0
aload 1
iload 3
iload 5
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.parseSingleToken:(Ljava/lang/String;)Lio/undertow/attribute/ExchangeAttribute;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.wrap:(Lio/undertow/attribute/ExchangeAttribute;)Lio/undertow/attribute/ExchangeAttribute;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
30: iload 5
iconst_1
iadd
istore 3
31: iconst_0
istore 4
32: goto 49
33: StackMap locals:
StackMap stack:
iload 6
bipush 123
if_icmpne 36
34: iconst_4
istore 4
35: goto 49
StackMap locals:
StackMap stack:
36: iload 6
bipush 36
if_icmpne 41
37: aload 2
aload 0
new io.undertow.attribute.ConstantExchangeAttribute
dup
ldc "$"
invokespecial io.undertow.attribute.ConstantExchangeAttribute.<init>:(Ljava/lang/String;)V
invokevirtual io.undertow.attribute.ExchangeAttributeParser.wrap:(Lio/undertow/attribute/ExchangeAttribute;)Lio/undertow/attribute/ExchangeAttribute;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
38: iload 5
iconst_1
iadd
istore 3
39: iconst_0
istore 4
40: goto 49
41: StackMap locals:
StackMap stack:
aload 2
aload 0
aload 0
aload 1
iload 3
iload 5
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.parseSingleToken:(Ljava/lang/String;)Lio/undertow/attribute/ExchangeAttribute;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.wrap:(Lio/undertow/attribute/ExchangeAttribute;)Lio/undertow/attribute/ExchangeAttribute;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
42: iload 5
iconst_1
iadd
istore 3
43: iconst_0
istore 4
44: goto 49
45: StackMap locals:
StackMap stack:
iload 6
bipush 125
if_icmpne 49
46: aload 2
aload 0
aload 0
aload 1
iload 3
iload 5
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.parseSingleToken:(Ljava/lang/String;)Lio/undertow/attribute/ExchangeAttribute;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.wrap:(Lio/undertow/attribute/ExchangeAttribute;)Lio/undertow/attribute/ExchangeAttribute;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
47: iload 5
iconst_1
iadd
istore 3
48: iconst_0
istore 4
end local 6 49: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
50: iload 5
aload 1
invokevirtual java.lang.String.length:()I
if_icmplt 5
end local 5 51: iload 4
tableswitch { // 0 - 4
0: 52
1: 52
2: 55
3: 52
4: 55
default: 56
}
52: StackMap locals:
StackMap stack:
iload 3
aload 1
invokevirtual java.lang.String.length:()I
if_icmpeq 56
53: aload 2
aload 0
aload 0
aload 1
iload 3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.parseSingleToken:(Ljava/lang/String;)Lio/undertow/attribute/ExchangeAttribute;
invokevirtual io.undertow.attribute.ExchangeAttributeParser.wrap:(Lio/undertow/attribute/ExchangeAttribute;)Lio/undertow/attribute/ExchangeAttribute;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
54: goto 56
55: StackMap locals:
StackMap stack:
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
aload 1
invokeinterface io.undertow.UndertowMessages.mismatchedBraces:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
56: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 58
57: aload 2
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast io.undertow.attribute.ExchangeAttribute
areturn
58: StackMap locals:
StackMap stack:
new io.undertow.attribute.CompositeExchangeAttribute
dup
aload 2
aload 2
invokeinterface java.util.List.size:()I
anewarray io.undertow.attribute.ExchangeAttribute
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast io.undertow.attribute.ExchangeAttribute[]
invokespecial io.undertow.attribute.CompositeExchangeAttribute.<init>:([Lio/undertow/attribute/ExchangeAttribute;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lio/undertow/attribute/ExchangeAttributeParser;
0 59 1 valueString Ljava/lang/String;
1 59 2 attributes Ljava/util/List<Lio/undertow/attribute/ExchangeAttribute;>;
2 59 3 pos I
3 59 4 state I
4 51 5 i I
6 49 6 c C
MethodParameters:
Name Flags
valueString final
public io.undertow.attribute.ExchangeAttribute parseSingleToken(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/undertow/attribute/ExchangeAttribute;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.attribute.ExchangeAttributeParser.builders:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: io.undertow.attribute.ExchangeAttributeParser java.lang.String top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.attribute.ExchangeAttributeBuilder
astore 2
start local 2 2: aload 2
aload 1
invokeinterface io.undertow.attribute.ExchangeAttributeBuilder.build:(Ljava/lang/String;)Lio/undertow/attribute/ExchangeAttribute;
astore 4
start local 4 3: aload 4
ifnull 5
4: aload 4
areturn
end local 4 end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: aload 1
ldc "%"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 8
7: getstatic io.undertow.UndertowLogger.ROOT_LOGGER:Lio/undertow/UndertowLogger;
aload 1
invokeinterface io.undertow.UndertowLogger.unknownVariable:(Ljava/lang/String;)V
8: StackMap locals: io.undertow.attribute.ExchangeAttributeParser java.lang.String
StackMap stack:
new io.undertow.attribute.ConstantExchangeAttribute
dup
aload 1
invokespecial io.undertow.attribute.ConstantExchangeAttribute.<init>:(Ljava/lang/String;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/undertow/attribute/ExchangeAttributeParser;
0 9 1 token Ljava/lang/String;
2 5 2 builder Lio/undertow/attribute/ExchangeAttributeBuilder;
3 5 4 res Lio/undertow/attribute/ExchangeAttribute;
MethodParameters:
Name Flags
token final
private io.undertow.attribute.ExchangeAttribute wrap(io.undertow.attribute.ExchangeAttribute);
descriptor: (Lio/undertow/attribute/ExchangeAttribute;)Lio/undertow/attribute/ExchangeAttribute;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: aload 0
getfield io.undertow.attribute.ExchangeAttributeParser.wrappers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: io.undertow.attribute.ExchangeAttributeParser io.undertow.attribute.ExchangeAttribute io.undertow.attribute.ExchangeAttribute top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.attribute.ExchangeAttributeWrapper
astore 3
start local 3 3: aload 3
aload 2
invokeinterface io.undertow.attribute.ExchangeAttributeWrapper.wrap:(Lio/undertow/attribute/ExchangeAttribute;)Lio/undertow/attribute/ExchangeAttribute;
astore 2
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/attribute/ExchangeAttributeParser;
0 6 1 attribute Lio/undertow/attribute/ExchangeAttribute;
1 6 2 res Lio/undertow/attribute/ExchangeAttribute;
3 4 3 w Lio/undertow/attribute/ExchangeAttributeWrapper;
MethodParameters:
Name Flags
attribute
}
SourceFile: "ExchangeAttributeParser.java"
NestMembers:
io.undertow.attribute.ExchangeAttributeParser$1
InnerClasses:
io.undertow.attribute.ExchangeAttributeParser$1