Platform Interface: java.io.File

wrapper java.io.File requiredif RFile, RFileSystem, RSystem {
  requires java.io.RFileMap;
  state RFile rfile;

  passwrapper <clinit>;

  wrapper File (String path) requiredif RFile, RFileSystem {
    #;
    rfile = RFileMap.lookupAdd (this);
  }

  wrapper File (String path, String name) requiredif RFile, RFileSystem {
    #;
    rfile = RFileMap.lookupAdd (this);
  }

  wrapper File (java.io.File dir, String name) requiredif RFile, RFileSystem {
    #;
    rfile = RFileMap.lookupAdd (this);
  }
        
  wrapper String getAbsolutePath() {
     RSystem.observeProperty ("user.dir");
     #;
  }  

  wrapper String getCanonicalPath() {
    RSystem.observeProperty ("user.dir");
    #;
  }

  wrapper boolean exists () {
    RFileSystem.observeExists (rfile);
    #;
  }

  wrapper boolean canWrite () {
    RFileSystem.observeWriteable (rfile);
    #;
  }
    
  wrapper boolean canRead () {
    RFileSystem.observeReadable (rfile);
    #;
  }

  wrapper boolean isFile () {
    RFileSystem.observeIsFile (rfile);
    #;
  }

  wrapper boolean isDirectory () {
    RFileSystem.observeIsFile (rfile);
    #;
  }

  wrapper long lastModified () {
    RFileSystem.observeLastModifiedTime (rfile);
    #;
  }

  wrapper long length () {
    RFileSystem.observeLength (rfile);
    #;
  }

  wrapper boolean mkdir () {
    RFileSystem.makeDirectory (rfile);
    #;
  }

  wrapper boolean renameTo (java.io.File dest) {
      if (dest.exists ()) {
          RFileSystem.renameReplace (rfile, dest.rfile);
      } else {
          RFileSystem.renameNew (rfile, dest.rfile);
      }
      #;
  }

  passwrapper boolean mkdirs ();

  wrapper String[] list() {
    RFileSystem.observeList (rfile);
    #;
  }

  wrapper String[] list (java.io.FilenameFilter filter) {
    RFileSystem.observeList (rfile);
    #
  }

  wrapper boolean delete () {
    RFileSystem.preDelete (rfile);
    #;
    if (result) { RFileSystem.postDelete (rfile); }
  }
}

About this file

Naccio Home Page
David Evans
University of Virginia, Computer Science