public class jdk.tools.jlink.internal.JmodArchive implements jdk.tools.jlink.internal.Archive
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.tools.jlink.internal.JmodArchive
super_class: java.lang.Object
{
private static final java.lang.String JMOD_EXT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: ".jmod"
private final java.nio.file.Path file;
descriptor: Ljava/nio/file/Path;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String moduleName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private jdk.internal.jmod.JmodFile jmodFile;
descriptor: Ljdk/internal/jmod/JmodFile;
flags: (0x0002) ACC_PRIVATE
private static volatile int[] $SWITCH_TABLE$jdk$internal$jmod$JmodFile$Section;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public void <init>(java.lang.String, java.nio.file.Path);
descriptor: (Ljava/lang/String;Ljava/nio/file/Path;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 2
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 2
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 3
start local 3 4: aload 3
ldc ".jmod"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 6
5: new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported format: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: jdk.tools.jlink.internal.JmodArchive java.lang.String java.nio.file.Path java.lang.String
StackMap stack:
aload 0
aload 1
putfield jdk.tools.jlink.internal.JmodArchive.moduleName:Ljava/lang/String;
7: aload 0
aload 2
putfield jdk.tools.jlink.internal.JmodArchive.file:Ljava/nio/file/Path;
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/tools/jlink/internal/JmodArchive;
0 9 1 mn Ljava/lang/String;
0 9 2 jmod Ljava/nio/file/Path;
4 9 3 filename Ljava/lang/String;
MethodParameters:
Name Flags
mn
jmod
public java.lang.String moduleName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jlink.internal.JmodArchive.moduleName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/JmodArchive;
public java.nio.file.Path getPath();
descriptor: ()Ljava/nio/file/Path;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jlink.internal.JmodArchive.file:Ljava/nio/file/Path;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/JmodArchive;
public java.util.stream.Stream<jdk.tools.jlink.internal.Archive$Entry> entries();
descriptor: ()Ljava/util/stream/Stream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual jdk.tools.jlink.internal.JmodArchive.ensureOpen:()V
1: aload 0
getfield jdk.tools.jlink.internal.JmodArchive.jmodFile:Ljdk/internal/jmod/JmodFile;
invokevirtual jdk.internal.jmod.JmodFile.stream:()Ljava/util/stream/Stream;
2: aload 0
invokedynamic apply(Ljdk/tools/jlink/internal/JmodArchive;)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;
jdk/tools/jlink/internal/JmodArchive.toEntry(Ljdk/internal/jmod/JmodFile$Entry;)Ljdk/tools/jlink/internal/Archive$Entry; (7)
(Ljdk/internal/jmod/JmodFile$Entry;)Ljdk/tools/jlink/internal/Archive$Entry;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
3: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/tools/jlink/internal/JmodArchive;
Signature: ()Ljava/util/stream/Stream<Ljdk/tools/jlink/internal/Archive$Entry;>;
public void open();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jlink.internal.JmodArchive.jmodFile:Ljdk/internal/jmod/JmodFile;
ifnull 2
1: aload 0
getfield jdk.tools.jlink.internal.JmodArchive.jmodFile:Ljdk/internal/jmod/JmodFile;
invokevirtual jdk.internal.jmod.JmodFile.close:()V
2: StackMap locals:
StackMap stack:
aload 0
new jdk.internal.jmod.JmodFile
dup
aload 0
getfield jdk.tools.jlink.internal.JmodArchive.file:Ljava/nio/file/Path;
invokespecial jdk.internal.jmod.JmodFile.<init>:(Ljava/nio/file/Path;)V
putfield jdk.tools.jlink.internal.JmodArchive.jmodFile:Ljdk/internal/jmod/JmodFile;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/tools/jlink/internal/JmodArchive;
Exceptions:
throws java.io.IOException
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jlink.internal.JmodArchive.jmodFile:Ljdk/internal/jmod/JmodFile;
ifnull 2
1: aload 0
getfield jdk.tools.jlink.internal.JmodArchive.jmodFile:Ljdk/internal/jmod/JmodFile;
invokevirtual jdk.internal.jmod.JmodFile.close:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/tools/jlink/internal/JmodArchive;
Exceptions:
throws java.io.IOException
private void ensureOpen();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jlink.internal.JmodArchive.jmodFile:Ljdk/internal/jmod/JmodFile;
ifnonnull 5
1: aload 0
invokevirtual jdk.tools.jlink.internal.JmodArchive.open:()V
2: goto 5
StackMap locals:
StackMap stack: java.io.IOException
3: astore 1
start local 1 4: new java.io.UncheckedIOException
dup
aload 1
invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
athrow
end local 1 5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/tools/jlink/internal/JmodArchive;
4 5 1 ioe Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
private jdk.tools.jlink.internal.Archive$Entry$EntryType toEntryType(jdk.internal.jmod.JmodFile$Section);
descriptor: (Ljdk/internal/jmod/JmodFile$Section;)Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: invokestatic jdk.tools.jlink.internal.JmodArchive.$SWITCH_TABLE$jdk$internal$jmod$JmodFile$Section:()[I
aload 1
invokevirtual jdk.internal.jmod.JmodFile$Section.ordinal:()I
iaload
tableswitch { // 1 - 7
1: 1
2: 2
3: 3
4: 4
5: 5
6: 6
7: 7
default: 8
}
1: StackMap locals:
StackMap stack:
getstatic jdk.tools.jlink.internal.Archive$Entry$EntryType.CLASS_OR_RESOURCE:Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
areturn
2: StackMap locals:
StackMap stack:
getstatic jdk.tools.jlink.internal.Archive$Entry$EntryType.CONFIG:Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
areturn
3: StackMap locals:
StackMap stack:
getstatic jdk.tools.jlink.internal.Archive$Entry$EntryType.HEADER_FILE:Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
areturn
4: StackMap locals:
StackMap stack:
getstatic jdk.tools.jlink.internal.Archive$Entry$EntryType.LEGAL_NOTICE:Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
areturn
5: StackMap locals:
StackMap stack:
getstatic jdk.tools.jlink.internal.Archive$Entry$EntryType.MAN_PAGE:Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
areturn
6: StackMap locals:
StackMap stack:
getstatic jdk.tools.jlink.internal.Archive$Entry$EntryType.NATIVE_LIB:Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
areturn
7: StackMap locals:
StackMap stack:
getstatic jdk.tools.jlink.internal.Archive$Entry$EntryType.NATIVE_CMD:Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
areturn
8: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "unexpected entry: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/tools/jlink/internal/JmodArchive;
0 9 1 section Ljdk/internal/jmod/JmodFile$Section;
MethodParameters:
Name Flags
section
private jdk.tools.jlink.internal.Archive$Entry toEntry(jdk.internal.jmod.JmodFile$Entry);
descriptor: (Ljdk/internal/jmod/JmodFile$Entry;)Ljdk/tools/jlink/internal/Archive$Entry;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.internal.jmod.JmodFile$Entry.section:()Ljdk/internal/jmod/JmodFile$Section;
invokevirtual jdk.tools.jlink.internal.JmodArchive.toEntryType:(Ljdk/internal/jmod/JmodFile$Section;)Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
astore 2
start local 2 1: aload 1
invokevirtual jdk.internal.jmod.JmodFile$Entry.section:()Ljdk/internal/jmod/JmodFile$Section;
invokevirtual jdk.internal.jmod.JmodFile$Section.jmodDir:()Ljava/lang/String;
astore 3
start local 3 2: aload 1
invokevirtual jdk.internal.jmod.JmodFile$Entry.name:()Ljava/lang/String;
astore 4
start local 4 3: new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 4: aload 4
astore 6
start local 6 5: aload 2
getstatic jdk.tools.jlink.internal.Archive$Entry$EntryType.LEGAL_NOTICE:Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
if_acmpne 8
6: new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.tools.jlink.internal.JmodArchive.moduleName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
7: goto 10
StackMap locals: jdk.tools.jlink.internal.JmodArchive jdk.internal.jmod.JmodFile$Entry jdk.tools.jlink.internal.Archive$Entry$EntryType java.lang.String java.lang.String java.lang.String java.lang.String
StackMap stack:
8: aload 2
getstatic jdk.tools.jlink.internal.Archive$Entry$EntryType.CLASS_OR_RESOURCE:Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
if_acmpeq 10
9: aload 5
astore 6
10: StackMap locals:
StackMap stack:
new jdk.tools.jlink.internal.JmodArchive$JmodEntry
dup
aload 0
aload 5
aload 6
aload 2
aload 1
invokespecial jdk.tools.jlink.internal.JmodArchive$JmodEntry.<init>:(Ljdk/tools/jlink/internal/JmodArchive;Ljava/lang/String;Ljava/lang/String;Ljdk/tools/jlink/internal/Archive$Entry$EntryType;Ljdk/internal/jmod/JmodFile$Entry;)V
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/tools/jlink/internal/JmodArchive;
0 11 1 entry Ljdk/internal/jmod/JmodFile$Entry;
1 11 2 type Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
2 11 3 prefix Ljava/lang/String;
3 11 4 name Ljava/lang/String;
4 11 5 path Ljava/lang/String;
5 11 6 resourceName Ljava/lang/String;
MethodParameters:
Name Flags
entry
static int[] $SWITCH_TABLE$jdk$internal$jmod$JmodFile$Section();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.tools.jlink.internal.JmodArchive.$SWITCH_TABLE$jdk$internal$jmod$JmodFile$Section:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.internal.jmod.JmodFile$Section.values:()[Ljdk/internal/jmod/JmodFile$Section;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.internal.jmod.JmodFile$Section.CLASSES:Ljdk/internal/jmod/JmodFile$Section;
invokevirtual jdk.internal.jmod.JmodFile$Section.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic jdk.internal.jmod.JmodFile$Section.CONFIG:Ljdk/internal/jmod/JmodFile$Section;
invokevirtual jdk.internal.jmod.JmodFile$Section.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.internal.jmod.JmodFile$Section.HEADER_FILES:Ljdk/internal/jmod/JmodFile$Section;
invokevirtual jdk.internal.jmod.JmodFile$Section.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic jdk.internal.jmod.JmodFile$Section.LEGAL_NOTICES:Ljdk/internal/jmod/JmodFile$Section;
invokevirtual jdk.internal.jmod.JmodFile$Section.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic jdk.internal.jmod.JmodFile$Section.MAN_PAGES:Ljdk/internal/jmod/JmodFile$Section;
invokevirtual jdk.internal.jmod.JmodFile$Section.ordinal:()I
iconst_5
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic jdk.internal.jmod.JmodFile$Section.NATIVE_CMDS:Ljdk/internal/jmod/JmodFile$Section;
invokevirtual jdk.internal.jmod.JmodFile$Section.ordinal:()I
bipush 7
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic jdk.internal.jmod.JmodFile$Section.NATIVE_LIBS:Ljdk/internal/jmod/JmodFile$Section;
invokevirtual jdk.internal.jmod.JmodFile$Section.ordinal:()I
bipush 6
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
dup
putstatic jdk.tools.jlink.internal.JmodArchive.$SWITCH_TABLE$jdk$internal$jmod$JmodFile$Section:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
}
SourceFile: "JmodArchive.java"
NestMembers:
jdk.tools.jlink.internal.JmodArchive$JmodEntry
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public Entry = jdk.internal.jmod.JmodFile$Entry of jdk.internal.jmod.JmodFile
public final Section = jdk.internal.jmod.JmodFile$Section of jdk.internal.jmod.JmodFile
public abstract Entry = jdk.tools.jlink.internal.Archive$Entry of jdk.tools.jlink.internal.Archive
public final EntryType = jdk.tools.jlink.internal.Archive$Entry$EntryType of jdk.tools.jlink.internal.Archive$Entry
public JmodEntry = jdk.tools.jlink.internal.JmodArchive$JmodEntry of jdk.tools.jlink.internal.JmodArchive