public class io.undertow.server.handlers.PathHandler implements io.undertow.server.HttpHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.server.handlers.PathHandler
super_class: java.lang.Object
{
private final io.undertow.util.PathMatcher<io.undertow.server.HttpHandler> pathMatcher;
descriptor: Lio/undertow/util/PathMatcher;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/undertow/util/PathMatcher<Lio/undertow/server/HttpHandler;>;
private final io.undertow.server.handlers.cache.LRUCache<java.lang.String, io.undertow.util.PathMatcher$PathMatch<io.undertow.server.HttpHandler>> cache;
descriptor: Lio/undertow/server/handlers/cache/LRUCache;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/undertow/server/handlers/cache/LRUCache<Ljava/lang/String;Lio/undertow/util/PathMatcher$PathMatch<Lio/undertow/server/HttpHandler;>;>;
public void <init>(io.undertow.server.HttpHandler);
descriptor: (Lio/undertow/server/HttpHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
invokespecial io.undertow.server.handlers.PathHandler.<init>:(I)V
1: aload 0
getfield io.undertow.server.handlers.PathHandler.pathMatcher:Lio/undertow/util/PathMatcher;
ldc "/"
aload 1
invokevirtual io.undertow.util.PathMatcher.addPrefixPath:(Ljava/lang/String;Ljava/lang/Object;)Lio/undertow/util/PathMatcher;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/handlers/PathHandler;
0 3 1 defaultHandler Lio/undertow/server/HttpHandler;
MethodParameters:
Name Flags
defaultHandler final
public void <init>(io.undertow.server.HttpHandler, int);
descriptor: (Lio/undertow/server/HttpHandler;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 2
invokespecial io.undertow.server.handlers.PathHandler.<init>:(I)V
1: aload 0
getfield io.undertow.server.handlers.PathHandler.pathMatcher:Lio/undertow/util/PathMatcher;
ldc "/"
aload 1
invokevirtual io.undertow.util.PathMatcher.addPrefixPath:(Ljava/lang/String;Ljava/lang/Object;)Lio/undertow/util/PathMatcher;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/handlers/PathHandler;
0 3 1 defaultHandler Lio/undertow/server/HttpHandler;
0 3 2 cacheSize I
MethodParameters:
Name Flags
defaultHandler final
cacheSize
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokespecial io.undertow.server.handlers.PathHandler.<init>:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/PathHandler;
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new io.undertow.util.PathMatcher
dup
invokespecial io.undertow.util.PathMatcher.<init>:()V
putfield io.undertow.server.handlers.PathHandler.pathMatcher:Lio/undertow/util/PathMatcher;
2: iload 1
ifle 5
3: aload 0
new io.undertow.server.handlers.cache.LRUCache
dup
iload 1
iconst_m1
iconst_1
invokespecial io.undertow.server.handlers.cache.LRUCache.<init>:(IIZ)V
putfield io.undertow.server.handlers.PathHandler.cache:Lio/undertow/server/handlers/cache/LRUCache;
4: goto 6
5: StackMap locals: io.undertow.server.handlers.PathHandler int
StackMap stack:
aload 0
aconst_null
putfield io.undertow.server.handlers.PathHandler.cache:Lio/undertow/server/handlers/cache/LRUCache;
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/server/handlers/PathHandler;
0 7 1 cacheSize I
MethodParameters:
Name Flags
cacheSize
public void handleRequest(io.undertow.server.HttpServerExchange);
descriptor: (Lio/undertow/server/HttpServerExchange;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 0
getfield io.undertow.server.handlers.PathHandler.cache:Lio/undertow/server/handlers/cache/LRUCache;
ifnull 5
3: aload 0
getfield io.undertow.server.handlers.PathHandler.cache:Lio/undertow/server/handlers/cache/LRUCache;
aload 1
invokevirtual io.undertow.server.HttpServerExchange.getRelativePath:()Ljava/lang/String;
invokevirtual io.undertow.server.handlers.cache.LRUCache.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.undertow.util.PathMatcher$PathMatch
astore 2
4: iconst_1
istore 3
5: StackMap locals: io.undertow.util.PathMatcher$PathMatch int
StackMap stack:
aload 2
ifnonnull 7
6: aload 0
getfield io.undertow.server.handlers.PathHandler.pathMatcher:Lio/undertow/util/PathMatcher;
aload 1
invokevirtual io.undertow.server.HttpServerExchange.getRelativePath:()Ljava/lang/String;
invokevirtual io.undertow.util.PathMatcher.match:(Ljava/lang/String;)Lio/undertow/util/PathMatcher$PathMatch;
astore 2
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.util.PathMatcher$PathMatch.getValue:()Ljava/lang/Object;
ifnonnull 10
8: getstatic io.undertow.server.handlers.ResponseCodeHandler.HANDLE_404:Lio/undertow/server/handlers/ResponseCodeHandler;
aload 1
invokevirtual io.undertow.server.handlers.ResponseCodeHandler.handleRequest:(Lio/undertow/server/HttpServerExchange;)V
9: return
10: StackMap locals:
StackMap stack:
iload 3
ifeq 12
11: aload 0
getfield io.undertow.server.handlers.PathHandler.cache:Lio/undertow/server/handlers/cache/LRUCache;
aload 1
invokevirtual io.undertow.server.HttpServerExchange.getRelativePath:()Ljava/lang/String;
aload 2
invokevirtual io.undertow.server.handlers.cache.LRUCache.add:(Ljava/lang/Object;Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual io.undertow.util.PathMatcher$PathMatch.getRemaining:()Ljava/lang/String;
invokevirtual io.undertow.server.HttpServerExchange.setRelativePath:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
pop
13: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getResolvedPath:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifeq 16
14: aload 1
aload 2
invokevirtual io.undertow.util.PathMatcher$PathMatch.getMatched:()Ljava/lang/String;
invokevirtual io.undertow.server.HttpServerExchange.setResolvedPath:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
pop
15: goto 20
16: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokevirtual io.undertow.server.HttpServerExchange.getResolvedPath:()Ljava/lang/String;
invokevirtual java.lang.String.length:()I
aload 2
invokevirtual io.undertow.util.PathMatcher$PathMatch.getMatched:()Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iadd
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 4
start local 4 17: aload 4
aload 1
invokevirtual io.undertow.server.HttpServerExchange.getResolvedPath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: aload 4
aload 2
invokevirtual io.undertow.util.PathMatcher$PathMatch.getMatched:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: aload 1
aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual io.undertow.server.HttpServerExchange.setResolvedPath:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
pop
end local 4 20: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.util.PathMatcher$PathMatch.getValue:()Ljava/lang/Object;
checkcast io.undertow.server.HttpHandler
aload 1
invokeinterface io.undertow.server.HttpHandler.handleRequest:(Lio/undertow/server/HttpServerExchange;)V
21: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lio/undertow/server/handlers/PathHandler;
0 22 1 exchange Lio/undertow/server/HttpServerExchange;
1 22 2 match Lio/undertow/util/PathMatcher$PathMatch<Lio/undertow/server/HttpHandler;>;
2 22 3 hit Z
17 20 4 sb Ljava/lang/StringBuilder;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
exchange
public synchronized io.undertow.server.handlers.PathHandler addPath(java.lang.String, io.undertow.server.HttpHandler);
descriptor: (Ljava/lang/String;Lio/undertow/server/HttpHandler;)Lio/undertow/server/handlers/PathHandler;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual io.undertow.server.handlers.PathHandler.addPrefixPath:(Ljava/lang/String;Lio/undertow/server/HttpHandler;)Lio/undertow/server/handlers/PathHandler;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/PathHandler;
0 1 1 path Ljava/lang/String;
0 1 2 handler Lio/undertow/server/HttpHandler;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
path final
handler final
public synchronized io.undertow.server.handlers.PathHandler addPrefixPath(java.lang.String, io.undertow.server.HttpHandler);
descriptor: (Ljava/lang/String;Lio/undertow/server/HttpHandler;)Lio/undertow/server/handlers/PathHandler;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic io.undertow.Handlers.handlerNotNull:(Lio/undertow/server/HttpHandler;)V
1: aload 0
getfield io.undertow.server.handlers.PathHandler.pathMatcher:Lio/undertow/util/PathMatcher;
aload 1
aload 2
invokevirtual io.undertow.util.PathMatcher.addPrefixPath:(Ljava/lang/String;Ljava/lang/Object;)Lio/undertow/util/PathMatcher;
pop
2: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/handlers/PathHandler;
0 3 1 path Ljava/lang/String;
0 3 2 handler Lio/undertow/server/HttpHandler;
MethodParameters:
Name Flags
path final
handler final
public synchronized io.undertow.server.handlers.PathHandler addExactPath(java.lang.String, io.undertow.server.HttpHandler);
descriptor: (Ljava/lang/String;Lio/undertow/server/HttpHandler;)Lio/undertow/server/handlers/PathHandler;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic io.undertow.Handlers.handlerNotNull:(Lio/undertow/server/HttpHandler;)V
1: aload 0
getfield io.undertow.server.handlers.PathHandler.pathMatcher:Lio/undertow/util/PathMatcher;
aload 1
aload 2
invokevirtual io.undertow.util.PathMatcher.addExactPath:(Ljava/lang/String;Ljava/lang/Object;)Lio/undertow/util/PathMatcher;
pop
2: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/handlers/PathHandler;
0 3 1 path Ljava/lang/String;
0 3 2 handler Lio/undertow/server/HttpHandler;
MethodParameters:
Name Flags
path final
handler final
public synchronized io.undertow.server.handlers.PathHandler removePath(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/undertow/server/handlers/PathHandler;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual io.undertow.server.handlers.PathHandler.removePrefixPath:(Ljava/lang/String;)Lio/undertow/server/handlers/PathHandler;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/PathHandler;
0 1 1 path Ljava/lang/String;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
path final
public synchronized io.undertow.server.handlers.PathHandler removePrefixPath(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/undertow/server/handlers/PathHandler;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.handlers.PathHandler.pathMatcher:Lio/undertow/util/PathMatcher;
aload 1
invokevirtual io.undertow.util.PathMatcher.removePrefixPath:(Ljava/lang/String;)Lio/undertow/util/PathMatcher;
pop
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/PathHandler;
0 2 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path final
public synchronized io.undertow.server.handlers.PathHandler removeExactPath(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/undertow/server/handlers/PathHandler;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.handlers.PathHandler.pathMatcher:Lio/undertow/util/PathMatcher;
aload 1
invokevirtual io.undertow.util.PathMatcher.removeExactPath:(Ljava/lang/String;)Lio/undertow/util/PathMatcher;
pop
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/PathHandler;
0 2 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path final
public synchronized io.undertow.server.handlers.PathHandler clearPaths();
descriptor: ()Lio/undertow/server/handlers/PathHandler;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.PathHandler.pathMatcher:Lio/undertow/util/PathMatcher;
invokevirtual io.undertow.util.PathMatcher.clearPaths:()Lio/undertow/util/PathMatcher;
pop
1: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/PathHandler;
}
SourceFile: "PathHandler.java"
InnerClasses:
public final PathMatch = io.undertow.util.PathMatcher$PathMatch of io.undertow.util.PathMatcher