diff options
Diffstat (limited to 'src/compiler/scala/tools/nsc/io/PlainFile.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/io/PlainFile.scala | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/src/compiler/scala/tools/nsc/io/PlainFile.scala b/src/compiler/scala/tools/nsc/io/PlainFile.scala deleted file mode 100644 index 21276e8740..0000000000 --- a/src/compiler/scala/tools/nsc/io/PlainFile.scala +++ /dev/null @@ -1,102 +0,0 @@ -/* NSC -- new Scala compiler - * Copyright 2005-2011 LAMP/EPFL - * @author Martin Odersky - */ - - -package scala.tools.nsc -package io - -import java.io.{ FileInputStream, FileOutputStream, IOException } -import PartialFunction._ - -object PlainFile { - /** - * If the specified File exists, returns an abstract file backed - * by it. Otherwise, returns null. - */ - def fromPath(file: Path): PlainFile = - if (file.isDirectory) new PlainDirectory(file.toDirectory) - else if (file.isFile) new PlainFile(file) - else null -} - -class PlainDirectory(givenPath: Directory) extends PlainFile(givenPath) { - override def isDirectory = true - override def iterator = givenPath.list filter (_.exists) map (x => new PlainFile(x)) - override def delete(): Unit = givenPath.deleteRecursively() -} - -/** This class implements an abstract file backed by a File. - */ -class PlainFile(val givenPath: Path) extends AbstractFile { - assert(path ne null) - - val file = givenPath.jfile - override def underlyingSource = Some(this) - - private val fpath = givenPath.toAbsolute - - /** Returns the name of this abstract file. */ - def name = givenPath.name - - /** Returns the path of this abstract file. */ - def path = givenPath.path - - /** The absolute file. */ - def absolute = new PlainFile(givenPath.toAbsolute) - - override def container: AbstractFile = new PlainFile(givenPath.parent) - override def input = givenPath.toFile.inputStream() - override def output = givenPath.toFile.outputStream() - override def sizeOption = Some(givenPath.length.toInt) - - override def toString = path - override def hashCode(): Int = fpath.hashCode - override def equals(that: Any): Boolean = that match { - case x: PlainFile => fpath == x.fpath - case _ => false - } - - /** Is this abstract file a directory? */ - def isDirectory: Boolean = givenPath.isDirectory - - /** Returns the time that this abstract file was last modified. */ - def lastModified: Long = givenPath.lastModified - - /** Returns all abstract subfiles of this abstract directory. */ - def iterator: Iterator[AbstractFile] = { - if (!isDirectory) Iterator.empty - else givenPath.toDirectory.list filter (_.exists) map (new PlainFile(_)) - } - - /** - * Returns the abstract file in this abstract directory with the - * specified name. If there is no such file, returns null. The - * argument "directory" tells whether to look for a directory or - * or a regular file. - * - * @param name ... - * @param directory ... - * @return ... - */ - def lookupName(name: String, directory: Boolean): AbstractFile = { - val child = givenPath / name - if ((child.isDirectory && directory) || (child.isFile && !directory)) new PlainFile(child) - else null - } - - /** Does this abstract file denote an existing file? */ - def create(): Unit = if (!exists) givenPath.createFile() - - /** Delete the underlying file or directory (recursively). */ - def delete(): Unit = - if (givenPath.isFile) givenPath.delete() - else if (givenPath.isDirectory) givenPath.toDirectory.deleteRecursively() - - /** Returns a plain file with the given name. It does not - * check that it exists. - */ - def lookupNameUnchecked(name: String, directory: Boolean): AbstractFile = - new PlainFile(givenPath / name) -} |