final class com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes extends com.oracle.truffle.api.test.polyglot.MemoryFileSystem$BasicFileAttributes
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes
super_class: com.oracle.truffle.api.test.polyglot.MemoryFileSystem$BasicFileAttributes
{
private static final java.lang.String ATTR_PERMISSIONS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "permissions"
private static final java.lang.String ATTR_OWNER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "owner"
private static final java.lang.String ATTR_GROUP;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "group"
private static volatile int[] $SWITCH_TABLE$java$nio$file$attribute$PosixFilePermission;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
void <init>(long, com.oracle.truffle.api.test.polyglot.MemoryFileSystem$FileInfo, int);
descriptor: (JLcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$FileInfo;I)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 3 start local 4 0: aload 0
lload 1
aload 3
iload 4
invokespecial com.oracle.truffle.api.test.polyglot.MemoryFileSystem$BasicFileAttributes.<init>:(JLcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$FileInfo;I)V
1: return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$PermissionsAttributes;
0 2 1 inode J
0 2 3 fileInfo Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$FileInfo;
0 2 4 size I
MethodParameters:
Name Flags
inode
fileInfo
size
java.util.Set<java.lang.String> getSupportedKeys();
descriptor: ()Ljava/util/Set;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.api.test.polyglot.MemoryFileSystem$BasicFileAttributes.getSupportedKeys:()Ljava/util/Set;
astore 1
start local 1 1: aload 1
ldc "permissions"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: aload 1
ldc "owner"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
3: aload 1
ldc "group"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$PermissionsAttributes;
1 5 1 base Ljava/util/Set<Ljava/lang/String;>;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
java.lang.Object getValue(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: ldc "permissions"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
1: ldc Ljava/nio/file/attribute/PosixFilePermission;
invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
astore 2
start local 2 2: aload 0
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.fileInfo:Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$FileInfo;
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$FileInfo.permissions:Ljava/util/Set;
getstatic java.nio.file.AccessMode.READ:Ljava/nio/file/AccessMode;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 4
3: aload 2
getstatic java.nio.file.attribute.PosixFilePermission.OWNER_READ:Ljava/nio/file/attribute/PosixFilePermission;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
4: StackMap locals: java.util.Set
StackMap stack:
aload 0
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.fileInfo:Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$FileInfo;
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$FileInfo.permissions:Ljava/util/Set;
getstatic java.nio.file.AccessMode.WRITE:Ljava/nio/file/AccessMode;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 6
5: aload 2
getstatic java.nio.file.attribute.PosixFilePermission.OWNER_WRITE:Ljava/nio/file/attribute/PosixFilePermission;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.fileInfo:Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$FileInfo;
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$FileInfo.permissions:Ljava/util/Set;
getstatic java.nio.file.AccessMode.EXECUTE:Ljava/nio/file/AccessMode;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 8
7: aload 2
getstatic java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 9: StackMap locals:
StackMap stack:
ldc "owner"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
10: getstatic com.oracle.truffle.api.test.polyglot.MemoryFileSystem.USER:Ljava/nio/file/attribute/UserPrincipal;
areturn
11: StackMap locals:
StackMap stack:
ldc "group"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
12: getstatic com.oracle.truffle.api.test.polyglot.MemoryFileSystem.GROUP:Ljava/nio/file/attribute/GroupPrincipal;
areturn
13: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial com.oracle.truffle.api.test.polyglot.MemoryFileSystem$BasicFileAttributes.getValue:(Ljava/lang/String;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$PermissionsAttributes;
0 14 1 key Ljava/lang/String;
2 9 2 result Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;
MethodParameters:
Name Flags
key
boolean setValue(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)Z
flags: (0x0000)
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: ldc "permissions"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
1: aload 2
ldc Ljava/nio/file/attribute/PosixFilePermission;
invokestatic com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.castCollection:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/util/Collection;
astore 3
start local 3 2: aload 0
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.fileInfo:Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$FileInfo;
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$FileInfo.permissions:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
3: aload 3
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 11
StackMap locals: com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes java.lang.String java.lang.Object java.util.Collection top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.attribute.PosixFilePermission
astore 4
start local 4 5: invokestatic com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.$SWITCH_TABLE$java$nio$file$attribute$PosixFilePermission:()[I
aload 4
invokevirtual java.nio.file.attribute.PosixFilePermission.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 6
2: 8
3: 10
default: 11
}
6: StackMap locals: com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes java.lang.String java.lang.Object java.util.Collection java.nio.file.attribute.PosixFilePermission java.util.Iterator
StackMap stack:
aload 0
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.fileInfo:Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$FileInfo;
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$FileInfo.permissions:Ljava/util/Set;
getstatic java.nio.file.AccessMode.READ:Ljava/nio/file/AccessMode;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
7: goto 11
8: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.fileInfo:Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$FileInfo;
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$FileInfo.permissions:Ljava/util/Set;
getstatic java.nio.file.AccessMode.WRITE:Ljava/nio/file/AccessMode;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
9: goto 11
10: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.fileInfo:Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$FileInfo;
getfield com.oracle.truffle.api.test.polyglot.MemoryFileSystem$FileInfo.permissions:Ljava/util/Set;
getstatic java.nio.file.AccessMode.EXECUTE:Ljava/nio/file/AccessMode;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 4 11: StackMap locals: com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes java.lang.String java.lang.Object java.util.Collection top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
12: iconst_1
ireturn
end local 3 13: StackMap locals: com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes java.lang.String java.lang.Object
StackMap stack:
aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.api.test.polyglot.MemoryFileSystem$BasicFileAttributes.setValue:(Ljava/lang/String;Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$PermissionsAttributes;
0 14 1 key Ljava/lang/String;
0 14 2 value Ljava/lang/Object;
2 13 3 c Ljava/util/Collection<Ljava/nio/file/attribute/PosixFilePermission;>;
5 11 4 p Ljava/nio/file/attribute/PosixFilePermission;
MethodParameters:
Name Flags
key
value
static int[] $SWITCH_TABLE$java$nio$file$attribute$PosixFilePermission();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.$SWITCH_TABLE$java$nio$file$attribute$PosixFilePermission:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic java.nio.file.attribute.PosixFilePermission.values:()[Ljava/nio/file/attribute/PosixFilePermission;
arraylength
newarray 10
astore 0
2: aload 0
getstatic java.nio.file.attribute.PosixFilePermission.GROUP_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
invokevirtual java.nio.file.attribute.PosixFilePermission.ordinal:()I
bipush 6
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic java.nio.file.attribute.PosixFilePermission.GROUP_READ:Ljava/nio/file/attribute/PosixFilePermission;
invokevirtual java.nio.file.attribute.PosixFilePermission.ordinal:()I
iconst_4
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic java.nio.file.attribute.PosixFilePermission.GROUP_WRITE:Ljava/nio/file/attribute/PosixFilePermission;
invokevirtual java.nio.file.attribute.PosixFilePermission.ordinal:()I
iconst_5
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic java.nio.file.attribute.PosixFilePermission.OTHERS_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
invokevirtual java.nio.file.attribute.PosixFilePermission.ordinal:()I
bipush 9
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic java.nio.file.attribute.PosixFilePermission.OTHERS_READ:Ljava/nio/file/attribute/PosixFilePermission;
invokevirtual java.nio.file.attribute.PosixFilePermission.ordinal:()I
bipush 7
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic java.nio.file.attribute.PosixFilePermission.OTHERS_WRITE:Ljava/nio/file/attribute/PosixFilePermission;
invokevirtual java.nio.file.attribute.PosixFilePermission.ordinal:()I
bipush 8
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
invokevirtual java.nio.file.attribute.PosixFilePermission.ordinal:()I
iconst_3
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic java.nio.file.attribute.PosixFilePermission.OWNER_READ:Ljava/nio/file/attribute/PosixFilePermission;
invokevirtual java.nio.file.attribute.PosixFilePermission.ordinal:()I
iconst_1
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic java.nio.file.attribute.PosixFilePermission.OWNER_WRITE:Ljava/nio/file/attribute/PosixFilePermission;
invokevirtual java.nio.file.attribute.PosixFilePermission.ordinal:()I
iconst_2
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
dup
putstatic com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.$SWITCH_TABLE$java$nio$file$attribute$PosixFilePermission:[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
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
}
SourceFile: "MemoryFileSystem.java"
NestHost: com.oracle.truffle.api.test.polyglot.MemoryFileSystem
InnerClasses:
private BasicFileAttributes = com.oracle.truffle.api.test.polyglot.MemoryFileSystem$BasicFileAttributes of com.oracle.truffle.api.test.polyglot.MemoryFileSystem
private final FileInfo = com.oracle.truffle.api.test.polyglot.MemoryFileSystem$FileInfo of com.oracle.truffle.api.test.polyglot.MemoryFileSystem
private final PermissionsAttributes = com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes of com.oracle.truffle.api.test.polyglot.MemoryFileSystem