class io.micronaut.websocket.context.DefaultWebSocketBeanRegistry implements io.micronaut.websocket.context.WebSocketBeanRegistry
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.micronaut.websocket.context.DefaultWebSocketBeanRegistry
super_class: java.lang.Object
{
private final io.micronaut.context.BeanContext beanContext;
descriptor: Lio/micronaut/context/BeanContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Class<? extends java.lang.annotation.Annotation> stereotype;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
private final java.util.Map<java.lang.Class, io.micronaut.websocket.context.WebSocketBean> webSocketBeanMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class;Lio/micronaut/websocket/context/WebSocketBean;>;
void <init>(io.micronaut.context.BeanContext, java.lang.Class<? extends java.lang.annotation.Annotation>);
descriptor: (Lio/micronaut/context/BeanContext;Ljava/lang/Class;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 // io.micronaut.websocket.context.DefaultWebSocketBeanRegistry this
start local 1 // io.micronaut.context.BeanContext beanContext
start local 2 // java.lang.Class stereotype
0: .line 50
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 43
aload 0 /* this */
new java.util.concurrent.ConcurrentHashMap
dup
iconst_3
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield io.micronaut.websocket.context.DefaultWebSocketBeanRegistry.webSocketBeanMap:Ljava/util/Map;
2: .line 51
aload 0 /* this */
aload 1 /* beanContext */
putfield io.micronaut.websocket.context.DefaultWebSocketBeanRegistry.beanContext:Lio/micronaut/context/BeanContext;
3: .line 52
aload 0 /* this */
aload 2 /* stereotype */
putfield io.micronaut.websocket.context.DefaultWebSocketBeanRegistry.stereotype:Ljava/lang/Class;
4: .line 53
return
end local 2 // java.lang.Class stereotype
end local 1 // io.micronaut.context.BeanContext beanContext
end local 0 // io.micronaut.websocket.context.DefaultWebSocketBeanRegistry this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/micronaut/websocket/context/DefaultWebSocketBeanRegistry;
0 5 1 beanContext Lio/micronaut/context/BeanContext;
0 5 2 stereotype Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
Signature: (Lio/micronaut/context/BeanContext;Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)V
MethodParameters:
Name Flags
beanContext
stereotype
public <T> io.micronaut.websocket.context.WebSocketBean<T> getWebSocket(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Lio/micronaut/websocket/context/WebSocketBean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=13, args_size=2
start local 0 // io.micronaut.websocket.context.DefaultWebSocketBeanRegistry this
start local 1 // java.lang.Class type
0: .line 58
aload 0 /* this */
getfield io.micronaut.websocket.context.DefaultWebSocketBeanRegistry.webSocketBeanMap:Ljava/util/Map;
aload 1 /* type */
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.micronaut.websocket.context.WebSocketBean
astore 2 /* webSocketBean */
start local 2 // io.micronaut.websocket.context.WebSocketBean webSocketBean
1: .line 59
aload 2 /* webSocketBean */
ifnull 3
2: .line 60
aload 2 /* webSocketBean */
areturn
3: .line 63
StackMap locals: io.micronaut.websocket.context.WebSocketBean
StackMap stack:
aload 0 /* this */
getfield io.micronaut.websocket.context.DefaultWebSocketBeanRegistry.stereotype:Ljava/lang/Class;
invokestatic io.micronaut.inject.qualifiers.Qualifiers.byStereotype:(Ljava/lang/Class;)Lio/micronaut/context/Qualifier;
astore 3 /* qualifier */
start local 3 // io.micronaut.context.Qualifier qualifier
4: .line 64
aload 0 /* this */
getfield io.micronaut.websocket.context.DefaultWebSocketBeanRegistry.beanContext:Lio/micronaut/context/BeanContext;
aload 1 /* type */
aload 3 /* qualifier */
invokeinterface io.micronaut.context.BeanContext.getBeanDefinition:(Ljava/lang/Class;Lio/micronaut/context/Qualifier;)Lio/micronaut/inject/BeanDefinition;
astore 4 /* beanDefinition */
start local 4 // io.micronaut.inject.BeanDefinition beanDefinition
5: .line 65
aload 0 /* this */
getfield io.micronaut.websocket.context.DefaultWebSocketBeanRegistry.beanContext:Lio/micronaut/context/BeanContext;
aload 1 /* type */
aload 3 /* qualifier */
invokeinterface io.micronaut.context.BeanContext.getBean:(Ljava/lang/Class;Lio/micronaut/context/Qualifier;)Ljava/lang/Object;
astore 5 /* bean */
start local 5 // java.lang.Object bean
6: .line 66
aload 4 /* beanDefinition */
invokeinterface io.micronaut.inject.BeanDefinition.getExecutableMethods:()Ljava/util/Collection;
astore 6 /* executableMethods */
start local 6 // java.util.Collection executableMethods
7: .line 67
aconst_null
astore 7 /* onOpen */
start local 7 // io.micronaut.inject.MethodExecutionHandle onOpen
8: .line 68
aconst_null
astore 8 /* onClose */
start local 8 // io.micronaut.inject.MethodExecutionHandle onClose
9: .line 69
aconst_null
astore 9 /* onMessage */
start local 9 // io.micronaut.inject.MethodExecutionHandle onMessage
10: .line 70
aconst_null
astore 10 /* onError */
start local 10 // io.micronaut.inject.MethodExecutionHandle onError
11: .line 71
aload 6 /* executableMethods */
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 12
goto 32
StackMap locals: io.micronaut.websocket.context.DefaultWebSocketBeanRegistry java.lang.Class io.micronaut.websocket.context.WebSocketBean io.micronaut.context.Qualifier io.micronaut.inject.BeanDefinition java.lang.Object java.util.Collection io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle top java.util.Iterator
StackMap stack:
12: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.micronaut.inject.ExecutableMethod
astore 11 /* method */
start local 11 // io.micronaut.inject.ExecutableMethod method
13: .line 72
aload 11 /* method */
ldc Lio/micronaut/websocket/annotation/OnOpen;
invokeinterface io.micronaut.inject.ExecutableMethod.isAnnotationPresent:(Ljava/lang/Class;)Z
ifeq 18
14: .line 74
aload 5 /* bean */
15: .line 75
aload 11 /* method */
16: .line 73
invokestatic io.micronaut.inject.ExecutionHandle.of:(Ljava/lang/Object;Lio/micronaut/inject/ExecutableMethod;)Lio/micronaut/inject/MethodExecutionHandle;
astore 7 /* onOpen */
17: .line 77
goto 32
18: .line 80
StackMap locals: io.micronaut.websocket.context.DefaultWebSocketBeanRegistry java.lang.Class io.micronaut.websocket.context.WebSocketBean io.micronaut.context.Qualifier io.micronaut.inject.BeanDefinition java.lang.Object java.util.Collection io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.ExecutableMethod java.util.Iterator
StackMap stack:
aload 11 /* method */
ldc Lio/micronaut/websocket/annotation/OnClose;
invokeinterface io.micronaut.inject.ExecutableMethod.isAnnotationPresent:(Ljava/lang/Class;)Z
ifeq 23
19: .line 82
aload 5 /* bean */
20: .line 83
aload 11 /* method */
21: .line 81
invokestatic io.micronaut.inject.ExecutionHandle.of:(Ljava/lang/Object;Lio/micronaut/inject/ExecutableMethod;)Lio/micronaut/inject/MethodExecutionHandle;
astore 8 /* onClose */
22: .line 85
goto 32
23: .line 88
StackMap locals:
StackMap stack:
aload 11 /* method */
ldc Lio/micronaut/websocket/annotation/OnError;
invokeinterface io.micronaut.inject.ExecutableMethod.isAnnotationPresent:(Ljava/lang/Class;)Z
ifeq 28
24: .line 90
aload 5 /* bean */
25: .line 91
aload 11 /* method */
26: .line 89
invokestatic io.micronaut.inject.ExecutionHandle.of:(Ljava/lang/Object;Lio/micronaut/inject/ExecutableMethod;)Lio/micronaut/inject/MethodExecutionHandle;
astore 10 /* onError */
27: .line 93
goto 32
28: .line 96
StackMap locals:
StackMap stack:
aload 11 /* method */
ldc Lio/micronaut/websocket/annotation/OnMessage;
invokeinterface io.micronaut.inject.ExecutableMethod.isAnnotationPresent:(Ljava/lang/Class;)Z
ifeq 32
29: .line 98
aload 5 /* bean */
30: .line 99
aload 11 /* method */
31: .line 97
invokestatic io.micronaut.inject.ExecutionHandle.of:(Ljava/lang/Object;Lio/micronaut/inject/ExecutableMethod;)Lio/micronaut/inject/MethodExecutionHandle;
astore 9 /* onMessage */
end local 11 // io.micronaut.inject.ExecutableMethod method
32: .line 71
StackMap locals: io.micronaut.websocket.context.DefaultWebSocketBeanRegistry java.lang.Class io.micronaut.websocket.context.WebSocketBean io.micronaut.context.Qualifier io.micronaut.inject.BeanDefinition java.lang.Object java.util.Collection io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle top java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
33: .line 103
aload 9 /* onMessage */
ifnonnull 35
34: .line 104
new io.micronaut.websocket.exceptions.WebSocketException
dup
new java.lang.StringBuilder
dup
ldc "WebSocket handler must specify an @OnMessage handler: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5 /* bean */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial io.micronaut.websocket.exceptions.WebSocketException.<init>:(Ljava/lang/String;)V
athrow
35: .line 106
StackMap locals: io.micronaut.websocket.context.DefaultWebSocketBeanRegistry java.lang.Class io.micronaut.websocket.context.WebSocketBean io.micronaut.context.Qualifier io.micronaut.inject.BeanDefinition java.lang.Object java.util.Collection io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle io.micronaut.inject.MethodExecutionHandle
StackMap stack:
new io.micronaut.websocket.context.DefaultWebSocketBeanRegistry$DefaultWebSocketBean
dup
aload 5 /* bean */
aload 4 /* beanDefinition */
aload 7 /* onOpen */
aload 8 /* onClose */
aload 9 /* onMessage */
aload 10 /* onError */
invokespecial io.micronaut.websocket.context.DefaultWebSocketBeanRegistry$DefaultWebSocketBean.<init>:(Ljava/lang/Object;Lio/micronaut/inject/BeanDefinition;Lio/micronaut/inject/MethodExecutionHandle;Lio/micronaut/inject/MethodExecutionHandle;Lio/micronaut/inject/MethodExecutionHandle;Lio/micronaut/inject/MethodExecutionHandle;)V
astore 11 /* newWebSocketBean */
start local 11 // io.micronaut.websocket.context.DefaultWebSocketBeanRegistry$DefaultWebSocketBean newWebSocketBean
36: .line 107
aload 4 /* beanDefinition */
invokeinterface io.micronaut.inject.BeanDefinition.isSingleton:()Z
ifeq 38
37: .line 108
aload 0 /* this */
getfield io.micronaut.websocket.context.DefaultWebSocketBeanRegistry.webSocketBeanMap:Ljava/util/Map;
aload 1 /* type */
aload 11 /* newWebSocketBean */
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
38: .line 110
StackMap locals: io.micronaut.websocket.context.DefaultWebSocketBeanRegistry$DefaultWebSocketBean
StackMap stack:
aload 11 /* newWebSocketBean */
areturn
end local 11 // io.micronaut.websocket.context.DefaultWebSocketBeanRegistry$DefaultWebSocketBean newWebSocketBean
end local 10 // io.micronaut.inject.MethodExecutionHandle onError
end local 9 // io.micronaut.inject.MethodExecutionHandle onMessage
end local 8 // io.micronaut.inject.MethodExecutionHandle onClose
end local 7 // io.micronaut.inject.MethodExecutionHandle onOpen
end local 6 // java.util.Collection executableMethods
end local 5 // java.lang.Object bean
end local 4 // io.micronaut.inject.BeanDefinition beanDefinition
end local 3 // io.micronaut.context.Qualifier qualifier
end local 2 // io.micronaut.websocket.context.WebSocketBean webSocketBean
end local 1 // java.lang.Class type
end local 0 // io.micronaut.websocket.context.DefaultWebSocketBeanRegistry this
LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lio/micronaut/websocket/context/DefaultWebSocketBeanRegistry;
0 39 1 type Ljava/lang/Class<TT;>;
1 39 2 webSocketBean Lio/micronaut/websocket/context/WebSocketBean;
4 39 3 qualifier Lio/micronaut/context/Qualifier<TT;>;
5 39 4 beanDefinition Lio/micronaut/inject/BeanDefinition<TT;>;
6 39 5 bean TT;
7 39 6 executableMethods Ljava/util/Collection<Lio/micronaut/inject/ExecutableMethod<TT;*>;>;
8 39 7 onOpen Lio/micronaut/inject/MethodExecutionHandle<TT;*>;
9 39 8 onClose Lio/micronaut/inject/MethodExecutionHandle<TT;*>;
10 39 9 onMessage Lio/micronaut/inject/MethodExecutionHandle<TT;*>;
11 39 10 onError Lio/micronaut/inject/MethodExecutionHandle<TT;*>;
13 32 11 method Lio/micronaut/inject/ExecutableMethod<TT;*>;
36 39 11 newWebSocketBean Lio/micronaut/websocket/context/DefaultWebSocketBeanRegistry$DefaultWebSocketBean<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lio/micronaut/websocket/context/WebSocketBean<TT;>;
MethodParameters:
Name Flags
type
}
SourceFile: "DefaultWebSocketBeanRegistry.java"
NestMembers:
io.micronaut.websocket.context.DefaultWebSocketBeanRegistry$DefaultWebSocketBean
InnerClasses:
private DefaultWebSocketBean = io.micronaut.websocket.context.DefaultWebSocketBeanRegistry$DefaultWebSocketBean of io.micronaut.websocket.context.DefaultWebSocketBeanRegistry