Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jruby.util;
  
  import jnr.posix.FileStat;
  import jnr.posix.POSIX;
  import java.io.File;
  import java.io.FileFilter;
 
 import org.jruby.Ruby;
 
Represents a "regular" file, backed by regular file system.
 
 class RegularFileResource implements FileResource {
     private final JRubyFile file;
     private final POSIX symlinkPosix = POSIXFactory.getPOSIX();
 
     RegularFileResource(File file) {
         this(file.getAbsolutePath());
     }
 
     protected RegularFileResource(String filename) {
         this. = new JRubyFile(filename);
     }
 
     @Override
     public String absolutePath() {
         return .getAbsolutePath();
     }
 
     @Override
     public long length() {
         return .length();
     }
 
     @Override
     public long lastModified() {
         return .lastModified();
     }
 
     @Override
     public boolean exists() {
         // MRI behavior: Even broken symlinks should return true.
         return .exists() || isSymLink();
     }
 
     @Override
     public boolean isFile() {
         return .isFile();
     }
 
     @Override
     public boolean isDirectory() {
         return .isDirectory();
     }
 
     @Override
     public boolean isSymLink() {
         try {
             return .lstat(absolutePath()).isSymlink();
         } catch (Throwable t) {
             return false;
         }
     }
 
     @Override
     public boolean canRead() {
         return .canRead();
     }
 
     @Override
     public boolean canWrite() {
         return .canWrite();
     }
 
     @Override
     public String[] list() {
         String[] fileList = .list();
 
         if (fileList != null) {
             // If we got some entries, then it's probably a directory and in Ruby all file
             // directories should have '.' and '..' entries
             String[] list = new String[fileList.length + 2];
             list[0] = ".";
             list[1] = "..";
             for (int i = 0; i < fileList.lengthi++) {
                 list[i+2] = fileList[i];
             }
             fileList = list;
        }
        return fileList;
    }
    @Override
    public FileStat stat(POSIX posix) {
        return posix.stat(absolutePath());
    }
    @Override
    public FileStat lstat(POSIX posix) {
        return posix.lstat(absolutePath());
    }
    @Override
    public String toString() {
        return .toString();
    }
    @Override
    public JRubyFile hackyGetJRubyFile() {
      return ;
    }
New to GrepCode? Check out our FAQ X