public interface org.jruby.util.FileResource
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: org.jruby.util.FileResource
  super_class: java.lang.Object
{
  public static org.jruby.util.FileResource wrap(jnr.posix.POSIX, org.jruby.util.JRubyFile);
    descriptor: (Ljnr/posix/POSIX;Lorg/jruby/util/JRubyFile;)Lorg/jruby/util/FileResource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jnr.posix.POSIX posix
        start local 1 // org.jruby.util.JRubyFile file
         0: .line 18
            new org.jruby.util.RegularFileResource
            dup
            aload 0 /* posix */
            aload 1 /* file */
            aload 1 /* file */
            invokevirtual org.jruby.util.JRubyFile.getPathDefault:()Ljava/lang/String;
            invokespecial org.jruby.util.RegularFileResource.<init>:(Ljnr/posix/POSIX;Lorg/jruby/util/JRubyFile;Ljava/lang/String;)V
            areturn
        end local 1 // org.jruby.util.JRubyFile file
        end local 0 // jnr.posix.POSIX posix
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  posix  Ljnr/posix/POSIX;
            0    1     1   file  Lorg/jruby/util/JRubyFile;
    MethodParameters:
       Name  Flags
      posix  
      file   

  public abstract java.lang.String absolutePath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String canonicalPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean exists();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean isDirectory();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean isFile();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean canExecute();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int errno();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract long lastModified();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract long length();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean canRead();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean canWrite();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public boolean isNull();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.FileResource this
         0: .line 39
            iconst_0
            ireturn
        end local 0 // org.jruby.util.FileResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/FileResource;

  public abstract java.lang.String[] list();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean isSymLink();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract jnr.posix.FileStat stat();
    descriptor: ()Ljnr/posix/FileStat;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract jnr.posix.FileStat lstat();
    descriptor: ()Ljnr/posix/FileStat;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract <T> T unwrap(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.lang.UnsupportedOperationException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
      Name  Flags
      type  

  public org.jruby.util.JRubyFile hackyGetJRubyFile();
    descriptor: ()Lorg/jruby/util/JRubyFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.FileResource this
         0: .line 67
            aload 0 /* this */
            ldc Lorg/jruby/util/JRubyFile;
            invokeinterface org.jruby.util.FileResource.unwrap:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.jruby.util.JRubyFile
         1: areturn
         2: .line 69
      StackMap locals:
      StackMap stack: java.lang.UnsupportedOperationException
            pop
         3: .line 70
            getstatic org.jruby.util.JRubyFile.DUMMY:Lorg/jruby/util/JRubyFile;
            areturn
        end local 0 // org.jruby.util.FileResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/util/FileResource;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.UnsupportedOperationException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.io.InputStream inputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.util.FileResource this
         0: .line 86
            aload 0 /* this */
            invokeinterface org.jruby.util.FileResource.exists:()Z
            ifne 2
         1: .line 87
            new org.jruby.util.ResourceException$NotFound
            dup
            aload 0 /* this */
            invokeinterface org.jruby.util.FileResource.absolutePath:()Ljava/lang/String;
            invokespecial org.jruby.util.ResourceException$NotFound.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokeinterface org.jruby.util.FileResource.isDirectory:()Z
            ifeq 4
         3: .line 90
            new org.jruby.util.ResourceException$FileIsDirectory
            dup
            aload 0 /* this */
            invokeinterface org.jruby.util.FileResource.absolutePath:()Ljava/lang/String;
            invokespecial org.jruby.util.ResourceException$FileIsDirectory.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokeinterface org.jruby.util.FileResource.openInputStream:()Ljava/io/InputStream;
         5: areturn
         6: .line 95
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         7: .line 96
            new org.jruby.util.ResourceException$IOError
            dup
            aload 1 /* e */
            invokespecial org.jruby.util.ResourceException$IOError.<init>:(Ljava/io/IOException;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // org.jruby.util.FileResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/jruby/util/FileResource;
            7    8     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
    Exceptions:
      throws org.jruby.util.ResourceException

  public abstract java.io.InputStream openInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public java.nio.channels.Channel openChannel(org.jruby.util.io.ModeFlags, int);
    descriptor: (Lorg/jruby/util/io/ModeFlags;I)Ljava/nio/channels/Channel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.util.FileResource this
        start local 1 // org.jruby.util.io.ModeFlags flags
        start local 2 // int perm
         0: .line 121
            aload 0 /* this */
            aload 1 /* flags */
            invokevirtual org.jruby.util.io.ModeFlags.getFlags:()I
            iload 2 /* perm */
            invokeinterface org.jruby.util.FileResource.openChannel:(II)Ljava/nio/channels/Channel;
         1: areturn
         2: .line 123
      StackMap locals:
      StackMap stack: org.jruby.util.ResourceException
            astore 3 /* ex */
        start local 3 // org.jruby.util.ResourceException ex
         3: .line 124
            aload 3 /* ex */
            athrow
        end local 3 // org.jruby.util.ResourceException ex
         4: .line 126
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* ex */
        start local 3 // java.io.IOException ex
         5: .line 127
            new org.jruby.util.ResourceException$IOError
            dup
            aload 3 /* ex */
            invokespecial org.jruby.util.ResourceException$IOError.<init>:(Ljava/io/IOException;)V
            athrow
        end local 3 // java.io.IOException ex
        end local 2 // int perm
        end local 1 // org.jruby.util.io.ModeFlags flags
        end local 0 // org.jruby.util.FileResource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/jruby/util/FileResource;
            0    6     1  flags  Lorg/jruby/util/io/ModeFlags;
            0    6     2   perm  I
            3    4     3     ex  Lorg/jruby/util/ResourceException;
            5    6     3     ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class org.jruby.util.ResourceException
           0     1       4  Class java.io.IOException
    Exceptions:
      throws org.jruby.util.ResourceException
    MethodParameters:
       Name  Flags
      flags  
      perm   

  public abstract java.nio.channels.Channel openChannel(int, int);
    descriptor: (II)Ljava/nio/channels/Channel;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      flags  
      perm   
}
SourceFile: "FileResource.java"
InnerClasses:
  public FileIsDirectory = org.jruby.util.ResourceException$FileIsDirectory of org.jruby.util.ResourceException
  public IOError = org.jruby.util.ResourceException$IOError of org.jruby.util.ResourceException
  public NotFound = org.jruby.util.ResourceException$NotFound of org.jruby.util.ResourceException