class com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl implements com.sun.tools.javac.platform.PlatformDescription
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl
super_class: java.lang.Object
{
private final java.util.Map<java.nio.file.Path, java.nio.file.FileSystem> ctSym2FileSystem;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/nio/file/Path;Ljava/nio/file/FileSystem;>;
private final java.lang.String version;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.ctSym2FileSystem:Ljava/util/Map;
2: aload 0
aload 1
putfield com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.version:Ljava/lang/String;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javac/platform/JDKPlatformProvider$PlatformDescriptionImpl;
0 4 1 version Ljava/lang/String;
MethodParameters:
Name Flags
version
public java.util.Collection<java.nio.file.Path> getPlatformPath();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=15, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: invokestatic com.sun.tools.javac.platform.JDKPlatformProvider.findCtSym:()Ljava/nio/file/Path;
astore 2
start local 2 2: aload 2
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 42
3: aload 0
getfield com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.ctSym2FileSystem:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.file.FileSystem
astore 3
start local 3 4: aload 3
ifnonnull 9
5: aload 0
getfield com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.ctSym2FileSystem:Ljava/util/Map;
aload 2
aload 2
aconst_null
invokestatic java.nio.file.FileSystems.newFileSystem:(Ljava/nio/file/Path;Ljava/lang/ClassLoader;)Ljava/nio/file/FileSystem;
dup
astore 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: goto 9
StackMap locals: com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl java.util.List java.nio.file.Path java.nio.file.FileSystem
StackMap stack: java.io.IOException
7: astore 4
start local 4 8: new java.lang.IllegalStateException
dup
aload 4
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 9: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.nio.file.FileSystem.getRootDirectories:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.Path
astore 4
start local 4 10: aconst_null
astore 5
aconst_null
astore 6
11: aload 4
invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
astore 7
start local 7 12: aload 7
invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
astore 9
goto 33
StackMap locals: com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl java.util.List java.nio.file.Path java.nio.file.FileSystem java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream top java.util.Iterator
StackMap stack:
13: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.Path
astore 8
start local 8 14: aload 8
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
aload 0
getfield com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.version:Ljava/lang/String;
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 33
15: aload 8
ldc "system-modules"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 10
start local 10 16: aload 10
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.isRegularFile:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 32
17: ldc "jrt:/"
invokestatic java.net.URI.create:(Ljava/lang/String;)Ljava/net/URI;
invokestatic java.nio.file.FileSystems.getFileSystem:(Ljava/net/URI;)Ljava/nio/file/FileSystem;
18: ldc "modules"
iconst_0
anewarray java.lang.String
invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
19: astore 11
start local 11 20: aconst_null
astore 12
aconst_null
astore 13
21: aload 10
ldc "UTF-8"
invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
invokestatic java.nio.file.Files.lines:(Ljava/nio/file/Path;Ljava/nio/charset/Charset;)Ljava/util/stream/Stream;
22: astore 14
start local 14 23: aload 14
aload 11
invokedynamic apply(Ljava/nio/file/Path;)Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/sun/tools/javac/platform/JDKPlatformProvider$PlatformDescriptionImpl.lambda$0(Ljava/nio/file/Path;Ljava/lang/String;)Ljava/nio/file/Path; (6)
(Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
24: invokedynamic test()Ljava/util/function/Predicate;
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;)Z
com/sun/tools/javac/platform/JDKPlatformProvider$PlatformDescriptionImpl.lambda$1(Ljava/nio/file/Path;)Z (6)
(Ljava/nio/file/Path;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
25: aload 1
invokedynamic accept(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
com/sun/tools/javac/platform/JDKPlatformProvider$PlatformDescriptionImpl.lambda$2(Ljava/util/List;Ljava/nio/file/Path;)V (6)
(Ljava/nio/file/Path;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
26: aload 14
ifnull 33
aload 14
invokeinterface java.util.stream.Stream.close:()V
goto 33
StackMap locals: com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl java.util.List java.nio.file.Path java.nio.file.FileSystem java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream java.nio.file.Path java.util.Iterator java.nio.file.Path java.nio.file.Path java.lang.Throwable java.lang.Throwable java.util.stream.Stream
StackMap stack: java.lang.Throwable
27: astore 12
aload 14
ifnull 28
aload 14
invokeinterface java.util.stream.Stream.close:()V
end local 14 StackMap locals:
StackMap stack:
28: aload 12
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 13
aload 12
ifnonnull 30
aload 13
astore 12
goto 31
StackMap locals:
StackMap stack:
30: aload 12
aload 13
if_acmpeq 31
aload 12
aload 13
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
31: aload 12
athrow
end local 11 32: StackMap locals:
StackMap stack:
aload 1
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 10 end local 8 33: StackMap locals: com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl java.util.List java.nio.file.Path java.nio.file.FileSystem java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
34: aload 7
ifnull 43
aload 7
invokeinterface java.nio.file.DirectoryStream.close:()V
goto 43
StackMap locals: com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl java.util.List java.nio.file.Path java.nio.file.FileSystem java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
StackMap stack: java.lang.Throwable
35: astore 5
aload 7
ifnull 36
aload 7
invokeinterface java.nio.file.DirectoryStream.close:()V
end local 7 StackMap locals:
StackMap stack:
36: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
37: astore 6
aload 5
ifnonnull 38
aload 6
astore 5
goto 39
StackMap locals:
StackMap stack:
38: aload 5
aload 6
if_acmpeq 39
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
39: aload 5
athrow
StackMap locals: com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl java.util.List java.nio.file.Path java.nio.file.FileSystem java.nio.file.Path
StackMap stack: java.io.IOException
40: astore 5
start local 5 41: new java.lang.IllegalStateException
dup
aload 5
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 end local 4 end local 3 42: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "Cannot find ct.sym!"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
43: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lcom/sun/tools/javac/platform/JDKPlatformProvider$PlatformDescriptionImpl;
1 44 1 paths Ljava/util/List<Ljava/nio/file/Path;>;
2 44 2 file Ljava/nio/file/Path;
4 42 3 fs Ljava/nio/file/FileSystem;
8 9 4 ex Ljava/io/IOException;
10 42 4 root Ljava/nio/file/Path;
12 36 7 dir Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
14 33 8 section Ljava/nio/file/Path;
16 33 10 systemModules Ljava/nio/file/Path;
20 32 11 modules Ljava/nio/file/Path;
23 28 14 lines Ljava/util/stream/Stream<Ljava/lang/String;>;
41 42 5 ex Ljava/io/IOException;
Exception table:
from to target type
5 6 7 Class java.io.IOException
23 26 27 any
21 29 29 any
12 34 35 any
11 37 37 any
10 40 40 Class java.io.IOException
Signature: ()Ljava/util/Collection<Ljava/nio/file/Path;>;
public java.lang.String getSourceVersion();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.version:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/platform/JDKPlatformProvider$PlatformDescriptionImpl;
public java.lang.String getTargetVersion();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.version:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/platform/JDKPlatformProvider$PlatformDescriptionImpl;
public java.util.List<com.sun.tools.javac.platform.PlatformDescription$PluginInfo<javax.annotation.processing.Processor>> getAnnotationProcessors();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/platform/JDKPlatformProvider$PlatformDescriptionImpl;
Signature: ()Ljava/util/List<Lcom/sun/tools/javac/platform/PlatformDescription$PluginInfo<Ljavax/annotation/processing/Processor;>;>;
public java.util.List<com.sun.tools.javac.platform.PlatformDescription$PluginInfo<com.sun.source.util.Plugin>> getPlugins();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/platform/JDKPlatformProvider$PlatformDescriptionImpl;
Signature: ()Ljava/util/List<Lcom/sun/tools/javac/platform/PlatformDescription$PluginInfo<Lcom/sun/source/util/Plugin;>;>;
public java.util.List<java.lang.String> getAdditionalOptions();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/platform/JDKPlatformProvider$PlatformDescriptionImpl;
Signature: ()Ljava/util/List<Ljava/lang/String;>;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.ctSym2FileSystem:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.FileSystem
astore 1
start local 1 2: aload 1
invokevirtual java.nio.file.FileSystem.close:()V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 0
getfield com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.ctSym2FileSystem:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/javac/platform/JDKPlatformProvider$PlatformDescriptionImpl;
2 3 1 fs Ljava/nio/file/FileSystem;
Exceptions:
throws java.io.IOException
private static java.nio.file.Path lambda$0(java.nio.file.Path, java.lang.String);
descriptor: (Ljava/nio/file/Path;Ljava/lang/String;)Ljava/nio/file/Path;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 line Ljava/lang/String;
private static boolean lambda$1(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 mod Ljava/nio/file/Path;
private static void lambda$2(java.util.List, java.nio.file.Path);
descriptor: (Ljava/util/List;Ljava/nio/file/Path;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 mod Ljava/nio/file/Path;
}
SourceFile: "JDKPlatformProvider.java"
NestHost: com.sun.tools.javac.platform.JDKPlatformProvider
InnerClasses:
PlatformDescriptionImpl = com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl of com.sun.tools.javac.platform.JDKPlatformProvider
public abstract PluginInfo = com.sun.tools.javac.platform.PlatformDescription$PluginInfo of com.sun.tools.javac.platform.PlatformDescription
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles