public class io.dropwizard.jackson.DiscoverableSubtypeResolver extends com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.dropwizard.jackson.DiscoverableSubtypeResolver
super_class: com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final org.slf4j.Logger LOGGER;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.List<java.lang.Class<?>> discoveredSubtypes;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/Class<*>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/dropwizard/jackson/DiscoverableSubtypeResolver;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic io.dropwizard.jackson.DiscoverableSubtypeResolver.LOGGER:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc Lio/dropwizard/jackson/Discoverable;
invokespecial io.dropwizard.jackson.DiscoverableSubtypeResolver.<init>:(Ljava/lang/Class;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/dropwizard/jackson/DiscoverableSubtypeResolver;
public void <init>(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver.<init>:()V
1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 0
aload 1
invokevirtual io.dropwizard.jackson.DiscoverableSubtypeResolver.discoverServices:(Ljava/lang/Class;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 9
StackMap locals: io.dropwizard.jackson.DiscoverableSubtypeResolver java.lang.Class java.util.List top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Class
astore 3
start local 3 4: aload 0
aload 3
invokevirtual io.dropwizard.jackson.DiscoverableSubtypeResolver.discoverServices:(Ljava/lang/Class;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 8
StackMap locals: io.dropwizard.jackson.DiscoverableSubtypeResolver java.lang.Class java.util.List java.lang.Class java.util.Iterator top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Class
astore 5
start local 5 6: aload 2
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 5
aastore
invokevirtual io.dropwizard.jackson.DiscoverableSubtypeResolver.registerSubtypes:([Ljava/lang/Class;)V
end local 5 8: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 3 9: StackMap locals: io.dropwizard.jackson.DiscoverableSubtypeResolver java.lang.Class java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
10: aload 0
aload 2
putfield io.dropwizard.jackson.DiscoverableSubtypeResolver.discoveredSubtypes:Ljava/util/List;
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/dropwizard/jackson/DiscoverableSubtypeResolver;
0 12 1 rootKlass Ljava/lang/Class<*>;
2 12 2 subtypes Ljava/util/List<Ljava/lang/Class<*>;>;
4 9 3 klass Ljava/lang/Class<*>;
6 8 5 subtype Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
rootKlass
public java.util.List<java.lang.Class<?>> getDiscoveredSubtypes();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.dropwizard.jackson.DiscoverableSubtypeResolver.discoveredSubtypes:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/dropwizard/jackson/DiscoverableSubtypeResolver;
Signature: ()Ljava/util/List<Ljava/lang/Class<*>;>;
protected java.lang.ClassLoader getClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/dropwizard/jackson/DiscoverableSubtypeResolver;
protected java.util.List<java.lang.Class<?>> discoverServices(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=12, 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: aload 0
invokevirtual io.dropwizard.jackson.DiscoverableSubtypeResolver.getClassLoader:()Ljava/lang/ClassLoader;
new java.lang.StringBuilder
dup
ldc "META-INF/services/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
astore 3
start local 3 2: goto 30
3: StackMap locals: java.util.List java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.net.URL
astore 4
start local 4 4: aconst_null
astore 5
aconst_null
astore 6
5: aload 4
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
astore 7
start local 7 6: new java.io.InputStreamReader
dup
aload 7
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
astore 8
start local 8 7: new java.io.BufferedReader
dup
aload 8
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 9
start local 9 8: goto 12
start local 10 9: StackMap locals: io.dropwizard.jackson.DiscoverableSubtypeResolver java.lang.Class java.util.List java.util.Enumeration java.net.URL java.lang.Throwable java.lang.Throwable java.io.InputStream java.io.InputStreamReader java.io.BufferedReader java.lang.String
StackMap stack:
aload 0
aload 10
invokevirtual io.dropwizard.jackson.DiscoverableSubtypeResolver.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 11
start local 11 10: aload 11
ifnull 12
11: aload 2
aload 11
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 10 12: StackMap locals:
StackMap stack:
aload 9
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 10
start local 10 13: ifnonnull 9
end local 10 14: aload 9
ifnull 17
aload 9
invokevirtual java.io.BufferedReader.close:()V
goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 5
aload 9
ifnull 16
aload 9
invokevirtual java.io.BufferedReader.close:()V
end local 9 StackMap locals:
StackMap stack:
16: aload 5
athrow
StackMap locals:
StackMap stack:
17: aload 8
ifnull 22
aload 8
invokevirtual java.io.InputStreamReader.close:()V
goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
18: astore 6
aload 5
ifnonnull 19
aload 6
astore 5
goto 20
StackMap locals:
StackMap stack:
19: aload 5
aload 6
if_acmpeq 20
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
20: aload 8
ifnull 21
aload 8
invokevirtual java.io.InputStreamReader.close:()V
end local 8 StackMap locals:
StackMap stack:
21: aload 5
athrow
StackMap locals:
StackMap stack:
22: aload 7
ifnull 30
aload 7
invokevirtual java.io.InputStream.close:()V
goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 6
aload 5
ifnonnull 24
aload 6
astore 5
goto 25
StackMap locals:
StackMap stack:
24: aload 5
aload 6
if_acmpeq 25
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
25: aload 7
ifnull 26
aload 7
invokevirtual java.io.InputStream.close:()V
end local 7 StackMap locals:
StackMap stack:
26: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 6
aload 5
ifnonnull 28
aload 6
astore 5
goto 29
StackMap locals:
StackMap stack:
28: aload 5
aload 6
if_acmpeq 29
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
29: aload 5
athrow
end local 4 30: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 3
end local 3 31: goto 34
StackMap locals: io.dropwizard.jackson.DiscoverableSubtypeResolver java.lang.Class java.util.List
StackMap stack: java.io.IOException
32: astore 3
start local 3 33: getstatic io.dropwizard.jackson.DiscoverableSubtypeResolver.LOGGER:Lorg/slf4j/Logger;
ldc "Unable to load META-INF/services/{}"
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 3
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 3 34: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lio/dropwizard/jackson/DiscoverableSubtypeResolver;
0 35 1 klass Ljava/lang/Class<*>;
1 35 2 serviceClasses Ljava/util/List<Ljava/lang/Class<*>;>;
2 31 3 resources Ljava/util/Enumeration<Ljava/net/URL;>;
4 30 4 url Ljava/net/URL;
6 26 7 input Ljava/io/InputStream;
7 21 8 streamReader Ljava/io/InputStreamReader;
8 16 9 reader Ljava/io/BufferedReader;
9 12 10 line Ljava/lang/String;
13 14 10 line Ljava/lang/String;
10 12 11 loadedClass Ljava/lang/Class<*>;
33 34 3 e Ljava/io/IOException;
Exception table:
from to target type
8 14 15 any
7 17 18 any
6 22 23 any
5 27 27 any
1 31 32 Class java.io.IOException
Signature: (Ljava/lang/Class<*>;)Ljava/util/List<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
klass
private java.lang.Class<?> loadClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.dropwizard.jackson.DiscoverableSubtypeResolver.getClassLoader:()Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
3: getstatic io.dropwizard.jackson.DiscoverableSubtypeResolver.LOGGER:Lorg/slf4j/Logger;
ldc "Unable to load {}"
aload 1
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
4: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/dropwizard/jackson/DiscoverableSubtypeResolver;
0 5 1 line Ljava/lang/String;
Exception table:
from to target type
0 1 2 Class java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
javax.annotation.Nullable()
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
javax.annotation.Nullable()
MethodParameters:
Name Flags
line
}
SourceFile: "DiscoverableSubtypeResolver.java"