final class com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem extends com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem
super_class: com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem
{
private final java.util.function.Predicate<java.nio.file.Path> readPredicate;
descriptor: Ljava/util/function/Predicate;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Predicate<Ljava/nio/file/Path;>;
private final java.util.function.Predicate<java.nio.file.Path> writePredicate;
descriptor: Ljava/util/function/Predicate;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Predicate<Ljava/nio/file/Path;>;
void <init>(org.graalvm.polyglot.io.FileSystem, java.util.function.Predicate<java.nio.file.Path>, java.util.function.Predicate<java.nio.file.Path>);
descriptor: (Lorg/graalvm/polyglot/io/FileSystem;Ljava/util/function/Predicate;Ljava/util/function/Predicate;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.<init>:(Lorg/graalvm/polyglot/io/FileSystem;)V
1: aload 2
ldc "ReadPredicate must be non null"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
2: aload 3
ldc "WritePredicate must be non null"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
3: aload 0
aload 2
putfield com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.readPredicate:Ljava/util/function/Predicate;
4: aload 0
aload 3
putfield com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.writePredicate:Ljava/util/function/Predicate;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 6 1 delegate Lorg/graalvm/polyglot/io/FileSystem;
0 6 2 readPredicate Ljava/util/function/Predicate<Ljava/nio/file/Path;>;
0 6 3 writePredicate Ljava/util/function/Predicate<Ljava/nio/file/Path;>;
Signature: (Lorg/graalvm/polyglot/io/FileSystem;Ljava/util/function/Predicate<Ljava/nio/file/Path;>;Ljava/util/function/Predicate<Ljava/nio/file/Path;>;)V
MethodParameters:
Name Flags
delegate final
readPredicate final
writePredicate final
public java.nio.file.Path toRealPath(java.nio.file.Path, java.nio.file.LinkOption[]);
descriptor: (Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Ljava/nio/file/Path;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkRead:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.toRealPath:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Ljava/nio/file/Path;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 2 1 path Ljava/nio/file/Path;
0 2 2 linkOptions [Ljava/nio/file/LinkOption;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
path
linkOptions
public java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream$Filter<? super java.nio.file.Path>);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/DirectoryStream$Filter;)Ljava/nio/file/DirectoryStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkRead:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.newDirectoryStream:(Ljava/nio/file/Path;Ljava/nio/file/DirectoryStream$Filter;)Ljava/nio/file/DirectoryStream;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 2 1 dir Ljava/nio/file/Path;
0 2 2 filter Ljava/nio/file/DirectoryStream$Filter<-Ljava/nio/file/Path;>;
Exceptions:
throws java.io.IOException
Signature: (Ljava/nio/file/Path;Ljava/nio/file/DirectoryStream$Filter<-Ljava/nio/file/Path;>;)Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
MethodParameters:
Name Flags
dir
filter
public java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>[]);
descriptor: (Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkChannelOpenOptions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
pop
1: aload 0
aload 1
aload 2
aload 3
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.newByteChannel:(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 2 1 path Ljava/nio/file/Path;
0 2 2 options Ljava/util/Set<+Ljava/nio/file/OpenOption;>;
0 2 3 attrs [Ljava/nio/file/attribute/FileAttribute;
Exceptions:
throws java.io.IOException
Signature: (Ljava/nio/file/Path;Ljava/util/Set<+Ljava/nio/file/OpenOption;>;[Ljava/nio/file/attribute/FileAttribute<*>;)Ljava/nio/channels/SeekableByteChannel;
MethodParameters:
Name Flags
path
options
attrs
public void move(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption[]);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkWrite:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 0
aload 2
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkWrite:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
2: aload 0
aload 1
aload 2
aload 3
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 4 1 source Ljava/nio/file/Path;
0 4 2 target Ljava/nio/file/Path;
0 4 3 options [Ljava/nio/file/CopyOption;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
target
options
public void copy(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption[]);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkRead:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 0
aload 2
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkWrite:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
2: aload 0
aload 1
aload 2
aload 3
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 4 1 source Ljava/nio/file/Path;
0 4 2 target Ljava/nio/file/Path;
0 4 3 options [Ljava/nio/file/CopyOption;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
target
options
public java.nio.file.Path readSymbolicLink(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkReadLink:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 0
aload 1
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.readSymbolicLink:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 2 1 link Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
link
public void createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>[]);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkWrite:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 0
aload 1
aload 2
aload 3
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.createSymbolicLink:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 3 1 link Ljava/nio/file/Path;
0 3 2 target Ljava/nio/file/Path;
0 3 3 attrs [Ljava/nio/file/attribute/FileAttribute;
Exceptions:
throws java.io.IOException
Signature: (Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute<*>;)V
MethodParameters:
Name Flags
link
target
attrs
public void createLink(java.nio.file.Path, java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkWrite:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 0
aload 2
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkWrite:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
2: aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.createLink:(Ljava/nio/file/Path;Ljava/nio/file/Path;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 4 1 link Ljava/nio/file/Path;
0 4 2 existing Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
link
existing
public void delete(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkDelete:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 0
aload 1
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.delete:(Ljava/nio/file/Path;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 3 1 path Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
path
public void createDirectory(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>[]);
descriptor: (Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkWrite:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.createDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 3 1 dir Ljava/nio/file/Path;
0 3 2 attrs [Ljava/nio/file/attribute/FileAttribute;
Exceptions:
throws java.io.IOException
Signature: (Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute<*>;)V
MethodParameters:
Name Flags
dir
attrs
public void checkAccess(java.nio.file.Path, java.util.Set<? extends java.nio.file.AccessMode>, java.nio.file.LinkOption[]);
descriptor: (Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/LinkOption;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkRead:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 2
getstatic java.nio.file.AccessMode.WRITE:Ljava/nio/file/AccessMode;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 3
aload 0
getfield com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.writePredicate:Ljava/util/function/Predicate;
aload 1
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifne 3
2: new java.io.IOException
dup
invokespecial java.io.IOException.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.checkAccess:(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/LinkOption;)V
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 5 1 path Ljava/nio/file/Path;
0 5 2 modes Ljava/util/Set<+Ljava/nio/file/AccessMode;>;
0 5 3 linkOptions [Ljava/nio/file/LinkOption;
Exceptions:
throws java.io.IOException
Signature: (Ljava/nio/file/Path;Ljava/util/Set<+Ljava/nio/file/AccessMode;>;[Ljava/nio/file/LinkOption;)V
MethodParameters:
Name Flags
path
modes
linkOptions
public java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption[]);
descriptor: (Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/LinkOption;)Ljava/util/Map;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkRead:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 0
aload 1
aload 2
aload 3
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.readAttributes:(Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/LinkOption;)Ljava/util/Map;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 2 1 path Ljava/nio/file/Path;
0 2 2 attributes Ljava/lang/String;
0 2 3 options [Ljava/nio/file/LinkOption;
Exceptions:
throws java.io.IOException
Signature: (Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/LinkOption;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
MethodParameters:
Name Flags
path
attributes
options
public void setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption[]);
descriptor: (Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/Object;[Ljava/nio/file/LinkOption;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkWrite:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
1: aload 0
aload 1
aload 2
aload 3
aload 4
invokespecial com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem.setAttribute:(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/Object;[Ljava/nio/file/LinkOption;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 3 1 path Ljava/nio/file/Path;
0 3 2 attribute Ljava/lang/String;
0 3 3 value Ljava/lang/Object;
0 3 4 options [Ljava/nio/file/LinkOption;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
path
attribute
value
options
private java.nio.file.Path checkRead(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.readPredicate:Ljava/util/function/Predicate;
aload 1
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifne 2
1: new java.lang.SecurityException
dup
new java.lang.StringBuilder
dup
ldc "Read operation is not allowed for: "
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.SecurityException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 3 1 path Ljava/nio/file/Path;
MethodParameters:
Name Flags
path
private java.nio.file.Path checkWrite(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.writePredicate:Ljava/util/function/Predicate;
aload 1
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifne 2
1: new java.lang.SecurityException
dup
new java.lang.StringBuilder
dup
ldc "Write operation is not allowed for: "
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.SecurityException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 3 1 path Ljava/nio/file/Path;
MethodParameters:
Name Flags
path
private java.nio.file.Path checkDelete(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.writePredicate:Ljava/util/function/Predicate;
aload 1
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifne 2
1: new java.lang.SecurityException
dup
new java.lang.StringBuilder
dup
ldc "Delete operation is not allowed for: "
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.SecurityException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 3 1 path Ljava/nio/file/Path;
MethodParameters:
Name Flags
path
private java.nio.file.Path checkReadLink(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.readPredicate:Ljava/util/function/Predicate;
aload 1
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifne 2
1: new java.lang.SecurityException
dup
new java.lang.StringBuilder
dup
ldc "Read link operation is not allowed for: "
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.SecurityException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 3 1 path Ljava/nio/file/Path;
MethodParameters:
Name Flags
path
private java.nio.file.Path checkChannelOpenOptions(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>);
descriptor: (Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
istore 3
start local 3 1: aload 2
getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
istore 4
start local 4 2: iload 3
ifne 7
iload 4
ifne 7
3: aload 2
getstatic java.nio.file.StandardOpenOption.APPEND:Ljava/nio/file/StandardOpenOption;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 6
4: iconst_1
istore 4
5: goto 7
6: StackMap locals: int int
StackMap stack:
iconst_1
istore 3
7: StackMap locals:
StackMap stack:
iload 3
ifeq 9
8: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkRead:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
9: StackMap locals:
StackMap stack:
iload 4
ifeq 11
10: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkWrite:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
11: StackMap locals:
StackMap stack:
aload 2
getstatic java.nio.file.StandardOpenOption.DELETE_ON_CLOSE:Ljava/nio/file/StandardOpenOption;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 13
12: aload 0
aload 1
invokevirtual com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem.checkDelete:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
13: StackMap locals:
StackMap stack:
aload 1
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 this Lcom/oracle/truffle/api/test/polyglot/FileSystemsTest$RestrictedFileSystem;
0 14 1 path Ljava/nio/file/Path;
0 14 2 options Ljava/util/Set<+Ljava/nio/file/OpenOption;>;
1 14 3 checkRead Z
2 14 4 checkWrite Z
Signature: (Ljava/nio/file/Path;Ljava/util/Set<+Ljava/nio/file/OpenOption;>;)Ljava/nio/file/Path;
MethodParameters:
Name Flags
path final
options final
}
SourceFile: "FileSystemsTest.java"
NestHost: com.oracle.truffle.api.test.polyglot.FileSystemsTest
InnerClasses:
ForwardingFileSystem = com.oracle.truffle.api.test.polyglot.FileSystemsTest$ForwardingFileSystem of com.oracle.truffle.api.test.polyglot.FileSystemsTest
private final RestrictedFileSystem = com.oracle.truffle.api.test.polyglot.FileSystemsTest$RestrictedFileSystem of com.oracle.truffle.api.test.polyglot.FileSystemsTest
public abstract Filter = java.nio.file.DirectoryStream$Filter of java.nio.file.DirectoryStream