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 // com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes this
        start local 1 // long inode
        start local 3 // com.oracle.truffle.api.test.polyglot.MemoryFileSystem$FileInfo fileInfo
        start local 4 // int size
         0: .line 677
            aload 0 /* this */
            lload 1 /* inode */
            aload 3 /* fileInfo */
            iload 4 /* size */
            invokespecial com.oracle.truffle.api.test.polyglot.MemoryFileSystem$BasicFileAttributes.<init>:(JLcom/oracle/truffle/api/test/polyglot/MemoryFileSystem$FileInfo;I)V
         1: .line 678
            return
        end local 4 // int size
        end local 3 // com.oracle.truffle.api.test.polyglot.MemoryFileSystem$FileInfo fileInfo
        end local 1 // long inode
        end local 0 // com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes this
      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 // com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes this
         0: .line 682
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.polyglot.MemoryFileSystem$BasicFileAttributes.getSupportedKeys:()Ljava/util/Set;
            astore 1 /* base */
        start local 1 // java.util.Set base
         1: .line 683
            aload 1 /* base */
            ldc "permissions"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 684
            aload 1 /* base */
            ldc "owner"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 685
            aload 1 /* base */
            ldc "group"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 686
            aload 1 /* base */
            areturn
        end local 1 // java.util.Set base
        end local 0 // com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes this
      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 // com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes this
        start local 1 // java.lang.String key
         0: .line 691
            ldc "permissions"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         1: .line 692
            ldc Ljava/nio/file/attribute/PosixFilePermission;
            invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            astore 2 /* result */
        start local 2 // java.util.Set result
         2: .line 693
            aload 0 /* this */
            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: .line 694
            aload 2 /* result */
            getstatic java.nio.file.attribute.PosixFilePermission.OWNER_READ:Ljava/nio/file/attribute/PosixFilePermission;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 696
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            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: .line 697
            aload 2 /* result */
            getstatic java.nio.file.attribute.PosixFilePermission.OWNER_WRITE:Ljava/nio/file/attribute/PosixFilePermission;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 699
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 700
            aload 2 /* result */
            getstatic java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         8: .line 702
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.util.Set result
         9: .line 703
      StackMap locals:
      StackMap stack:
            ldc "owner"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 704
            getstatic com.oracle.truffle.api.test.polyglot.MemoryFileSystem.USER:Ljava/nio/file/attribute/UserPrincipal;
            areturn
        11: .line 705
      StackMap locals:
      StackMap stack:
            ldc "group"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 706
            getstatic com.oracle.truffle.api.test.polyglot.MemoryFileSystem.GROUP:Ljava/nio/file/attribute/GroupPrincipal;
            areturn
        13: .line 708
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* key */
            invokespecial com.oracle.truffle.api.test.polyglot.MemoryFileSystem$BasicFileAttributes.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes this
      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 // com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes this
        start local 1 // java.lang.String key
        start local 2 // java.lang.Object value
         0: .line 713
            ldc "permissions"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
         1: .line 714
            aload 2 /* value */
            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 /* c */
        start local 3 // java.util.Collection c
         2: .line 715
            aload 0 /* this */
            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: .line 716
            aload 3 /* c */
            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 /* p */
        start local 4 // java.nio.file.attribute.PosixFilePermission p
         5: .line 717
            invokestatic com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes.$SWITCH_TABLE$java$nio$file$attribute$PosixFilePermission:()[I
            aload 4 /* p */
            invokevirtual java.nio.file.attribute.PosixFilePermission.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 6
                    2: 8
                    3: 10
              default: 11
          }
         6: .line 719
      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 /* this */
            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: .line 720
            goto 11
         8: .line 722
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 723
            goto 11
        10: .line 725
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 // java.nio.file.attribute.PosixFilePermission p
        11: .line 716
      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: .line 729
            iconst_1
            ireturn
        end local 3 // java.util.Collection c
        13: .line 731
      StackMap locals: com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes java.lang.String java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* key */
            aload 2 /* value */
            invokespecial com.oracle.truffle.api.test.polyglot.MemoryFileSystem$BasicFileAttributes.setValue:(Ljava/lang/String;Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.api.test.polyglot.MemoryFileSystem$PermissionsAttributes this
      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: .line 671
            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