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); }
}
}
Naccio Home Page
University of Virginia, Computer Science