public final class jdk.tools.jlink.internal.PluginRepository
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.tools.jlink.internal.PluginRepository
super_class: java.lang.Object
{
private static final java.util.Map<java.lang.String, jdk.tools.jlink.plugin.Plugin> registeredPlugins;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljdk/tools/jlink/plugin/Plugin;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic jdk.tools.jlink.internal.PluginRepository.registeredPlugins:Ljava/util/Map;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/tools/jlink/internal/PluginRepository;
public static jdk.tools.jlink.plugin.Plugin getPlugin(java.lang.String, java.lang.ModuleLayer);
descriptor: (Ljava/lang/String;Ljava/lang/ModuleLayer;)Ljdk/tools/jlink/plugin/Plugin;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: ldc Ljdk/tools/jlink/plugin/Plugin;
aload 0
aload 1
invokestatic jdk.tools.jlink.internal.PluginRepository.getPlugin:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/ModuleLayer;)Ljdk/tools/jlink/plugin/Plugin;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
0 1 1 pluginsLayer Ljava/lang/ModuleLayer;
MethodParameters:
Name Flags
name
pluginsLayer
public static jdk.tools.jlink.plugin.Plugin newPlugin(java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.ModuleLayer);
descriptor: (Ljava/util/Map;Ljava/lang/String;Ljava/lang/ModuleLayer;)Ljdk/tools/jlink/plugin/Plugin;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, 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 1
aload 2
invokestatic jdk.tools.jlink.internal.PluginRepository.getPlugin:(Ljava/lang/String;Ljava/lang/ModuleLayer;)Ljdk/tools/jlink/plugin/Plugin;
astore 3
start local 3 3: aload 3
ifnull 11
4: aload 3
aload 0
invokeinterface jdk.tools.jlink.plugin.Plugin.configure:(Ljava/util/Map;)V
5: goto 11
StackMap locals: java.util.Map java.lang.String java.lang.ModuleLayer jdk.tools.jlink.plugin.Plugin
StackMap stack: java.lang.IllegalArgumentException
6: astore 4
start local 4 7: getstatic jdk.tools.jlink.internal.JlinkTask.DEBUG:Z
ifeq 10
8: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Plugin "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokeinterface jdk.tools.jlink.plugin.Plugin.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " threw exception with config: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: aload 4
invokevirtual java.lang.IllegalArgumentException.printStackTrace:()V
10: StackMap locals: java.lang.IllegalArgumentException
StackMap stack:
aload 4
athrow
end local 4 11: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 config Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
0 12 1 name Ljava/lang/String;
0 12 2 pluginsLayer Ljava/lang/ModuleLayer;
3 12 3 plugin Ljdk/tools/jlink/plugin/Plugin;
7 11 4 e Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
4 5 6 Class java.lang.IllegalArgumentException
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/lang/String;Ljava/lang/ModuleLayer;)Ljdk/tools/jlink/plugin/Plugin;
MethodParameters:
Name Flags
config
name
pluginsLayer
public static synchronized void registerPlugin(jdk.tools.jlink.plugin.Plugin);
descriptor: (Ljdk/tools/jlink/plugin/Plugin;)V
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: getstatic jdk.tools.jlink.internal.PluginRepository.registeredPlugins:Ljava/util/Map;
aload 0
invokeinterface jdk.tools.jlink.plugin.Plugin.getName:()Ljava/lang/String;
aload 0
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 plugin Ljdk/tools/jlink/plugin/Plugin;
MethodParameters:
Name Flags
plugin
public static synchronized void unregisterPlugin(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: getstatic jdk.tools.jlink.internal.PluginRepository.registeredPlugins:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public static java.util.List<jdk.tools.jlink.plugin.Plugin> getPlugins(java.lang.ModuleLayer);
descriptor: (Ljava/lang/ModuleLayer;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc Ljdk/tools/jlink/plugin/Plugin;
aload 0
invokestatic jdk.tools.jlink.internal.PluginRepository.getPlugins:(Ljava/lang/Class;Ljava/lang/ModuleLayer;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 pluginsLayer Ljava/lang/ModuleLayer;
Signature: (Ljava/lang/ModuleLayer;)Ljava/util/List<Ljdk/tools/jlink/plugin/Plugin;>;
MethodParameters:
Name Flags
pluginsLayer
private static <T extends jdk.tools.jlink.plugin.Plugin> T getPlugin(java.lang.Class<T>, java.lang.String, java.lang.ModuleLayer);
descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/ModuleLayer;)Ljdk/tools/jlink/plugin/Plugin;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, 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: aconst_null
astore 3
start local 3 3: aload 0
aload 2
invokestatic jdk.tools.jlink.internal.PluginRepository.getPlugins:(Ljava/lang/Class;Ljava/lang/ModuleLayer;)Ljava/util/List;
astore 4
start local 4 4: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 12
StackMap locals: java.lang.Class java.lang.String java.lang.ModuleLayer jdk.tools.jlink.plugin.Plugin java.util.List top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.tools.jlink.plugin.Plugin
astore 5
start local 5 6: aload 5
invokeinterface jdk.tools.jlink.plugin.Plugin.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
7: aload 3
ifnull 11
8: new jdk.tools.jlink.plugin.PluginException
dup
new java.lang.StringBuilder
dup
ldc "Multiple plugin for the name "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: java.lang.Class java.lang.String java.lang.ModuleLayer jdk.tools.jlink.plugin.Plugin java.util.List jdk.tools.jlink.plugin.Plugin java.util.Iterator
StackMap stack:
aload 5
astore 3
end local 5 12: StackMap locals: java.lang.Class java.lang.String java.lang.ModuleLayer jdk.tools.jlink.plugin.Plugin java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
13: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 clazz Ljava/lang/Class<TT;>;
0 14 1 name Ljava/lang/String;
0 14 2 pluginsLayer Ljava/lang/ModuleLayer;
3 14 3 provider TT;
4 14 4 javaProviders Ljava/util/List<TT;>;
6 12 5 factory TT;
Signature: <T::Ljdk/tools/jlink/plugin/Plugin;>(Ljava/lang/Class<TT;>;Ljava/lang/String;Ljava/lang/ModuleLayer;)TT;
MethodParameters:
Name Flags
clazz
name
pluginsLayer
private static <T extends jdk.tools.jlink.plugin.Plugin> java.util.List<T> getPlugins(java.lang.Class<T>, java.lang.ModuleLayer);
descriptor: (Ljava/lang/Class;Ljava/lang/ModuleLayer;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, 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: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
aload 0
invokestatic java.util.ServiceLoader.load:(Ljava/lang/ModuleLayer;Ljava/lang/Class;)Ljava/util/ServiceLoader;
invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
3: astore 3
start local 3 4: goto 6
5: StackMap locals: java.util.List java.util.Iterator
StackMap stack:
aload 2
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.tools.jlink.plugin.Plugin
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
7: getstatic jdk.tools.jlink.internal.PluginRepository.registeredPlugins:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
aload 0
aload 2
invokedynamic accept(Ljava/lang/Class;Ljava/util/List;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
jdk/tools/jlink/internal/PluginRepository.lambda$0(Ljava/lang/Class;Ljava/util/List;Ljdk/tools/jlink/plugin/Plugin;)V (6)
(Ljdk/tools/jlink/plugin/Plugin;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
8: aload 2
9: areturn
end local 3 10: StackMap locals: java.lang.Class java.lang.ModuleLayer java.util.List
StackMap stack: java.lang.Exception
astore 3
start local 3 11: new jdk.tools.jlink.plugin.PluginException
dup
aload 3
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 clazz Ljava/lang/Class<TT;>;
0 12 1 pluginsLayer Ljava/lang/ModuleLayer;
2 12 2 factories Ljava/util/List<TT;>;
4 10 3 providers Ljava/util/Iterator<TT;>;
11 12 3 ex Ljava/lang/Exception;
Exception table:
from to target type
2 9 10 Class java.lang.Exception
Signature: <T::Ljdk/tools/jlink/plugin/Plugin;>(Ljava/lang/Class<TT;>;Ljava/lang/ModuleLayer;)Ljava/util/List<TT;>;
MethodParameters:
Name Flags
clazz
pluginsLayer
private static void lambda$0(java.lang.Class, java.util.List, jdk.tools.jlink.plugin.Plugin);
descriptor: (Ljava/lang/Class;Ljava/util/List;Ljdk/tools/jlink/plugin/Plugin;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=3
start local 2 0: aload 0
aload 2
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 3
1: aload 2
astore 3
start local 3 2: aload 1
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 3: StackMap locals:
StackMap stack:
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 4 2 fact Ljdk/tools/jlink/plugin/Plugin;
2 3 3 trans TT;
}
SourceFile: "PluginRepository.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles