summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/io/PlainFile.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/tools/nsc/io/PlainFile.scala')
-rw-r--r--src/compiler/scala/tools/nsc/io/PlainFile.scala102
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)
-}