public class io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl implements io.vertx.ext.web.handler.MultiTenantHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl
super_class: java.lang.Object
{
private final java.util.Map<java.lang.String, io.vertx.core.Handler<io.vertx.ext.web.RoutingContext>> handlerMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/ext/web/RoutingContext;>;>;
private final java.util.function.Function<io.vertx.ext.web.RoutingContext, java.lang.String> tenantExtractor;
descriptor: Ljava/util/function/Function;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Function<Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;>;
private final java.lang.String contextKey;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.vertx.core.Handler<io.vertx.ext.web.RoutingContext> defaultHandler;
descriptor: Lio/vertx/core/Handler;
flags: (0x0002) ACC_PRIVATE
Signature: Lio/vertx/core/Handler<Lio/vertx/ext/web/RoutingContext;>;
public void <init>(java.util.function.Function<io.vertx.ext.web.RoutingContext, java.lang.String>, java.lang.String);
descriptor: (Ljava/util/function/Function;Ljava/lang/String;)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
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.handlerMap:Ljava/util/Map;
2: aload 0
aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.function.Function
putfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.tenantExtractor:Ljava/util/function/Function;
3: aload 0
aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.contextKey:Ljava/lang/String;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/ext/web/handler/impl/MultiTenantHandlerImpl;
0 5 1 tenantExtractor Ljava/util/function/Function<Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;>;
0 5 2 contextKey Ljava/lang/String;
Signature: (Ljava/util/function/Function<Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;>;Ljava/lang/String;)V
MethodParameters:
Name Flags
tenantExtractor
contextKey
public io.vertx.ext.web.handler.MultiTenantHandler addTenantHandler(java.lang.String, io.vertx.core.Handler<io.vertx.ext.web.RoutingContext>);
descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/web/handler/MultiTenantHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.handlerMap:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnull 4
3: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "tenant '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' already present"
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:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/ext/web/handler/impl/MultiTenantHandlerImpl;
0 5 1 tenant Ljava/lang/String;
0 5 2 handler Lio/vertx/core/Handler<Lio/vertx/ext/web/RoutingContext;>;
Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/ext/web/RoutingContext;>;)Lio/vertx/ext/web/handler/MultiTenantHandler;
MethodParameters:
Name Flags
tenant
handler
public io.vertx.ext.web.handler.MultiTenantHandler removeTenant(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/handler/MultiTenantHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.handlerMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/ext/web/handler/impl/MultiTenantHandlerImpl;
0 3 1 tenant Ljava/lang/String;
MethodParameters:
Name Flags
tenant
public io.vertx.ext.web.handler.MultiTenantHandler addDefaultHandler(io.vertx.core.Handler<io.vertx.ext.web.RoutingContext>);
descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/web/handler/MultiTenantHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
putfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.defaultHandler:Lio/vertx/core/Handler;
2: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/ext/web/handler/impl/MultiTenantHandlerImpl;
0 3 1 handler Lio/vertx/core/Handler<Lio/vertx/ext/web/RoutingContext;>;
Signature: (Lio/vertx/core/Handler<Lio/vertx/ext/web/RoutingContext;>;)Lio/vertx/ext/web/handler/MultiTenantHandler;
MethodParameters:
Name Flags
handler
public void handle(io.vertx.ext.web.RoutingContext);
descriptor: (Lio/vertx/ext/web/RoutingContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.tenantExtractor:Ljava/util/function/Function;
aload 1
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aload 0
getfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.defaultHandler:Lio/vertx/core/Handler;
goto 4
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.handlerMap:Ljava/util/Map;
aload 2
aload 0
getfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.defaultHandler:Lio/vertx/core/Handler;
invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.vertx.core.Handler
4: StackMap locals:
StackMap stack: io.vertx.core.Handler
astore 3
start local 3 5: aload 3
ifnull 11
6: aload 1
aload 0
getfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.contextKey:Ljava/lang/String;
aload 3
aload 0
getfield io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.defaultHandler:Lio/vertx/core/Handler;
if_acmpne 7
ldc "default"
goto 8
StackMap locals: io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.Handler
StackMap stack: io.vertx.ext.web.RoutingContext java.lang.String
7: aload 2
StackMap locals: io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.Handler
StackMap stack: io.vertx.ext.web.RoutingContext java.lang.String java.lang.String
8: invokeinterface io.vertx.ext.web.RoutingContext.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/ext/web/RoutingContext;
pop
9: aload 3
aload 1
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
10: goto 12
11: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.vertx.ext.web.RoutingContext.next:()V
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/vertx/ext/web/handler/impl/MultiTenantHandlerImpl;
0 13 1 ctx Lio/vertx/ext/web/RoutingContext;
1 13 2 tenant Ljava/lang/String;
5 13 3 handler Lio/vertx/core/Handler<Lio/vertx/ext/web/RoutingContext;>;
MethodParameters:
Name Flags
ctx
public void handle(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast io.vertx.ext.web.RoutingContext
invokevirtual io.vertx.ext.web.handler.impl.MultiTenantHandlerImpl.handle:(Lio/vertx/ext/web/RoutingContext;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "MultiTenantHandlerImpl.java"