summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/io/PlainFile.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-05-21 17:45:18 +0000
committerPaul Phillips <paulp@improving.org>2011-05-21 17:45:18 +0000
commitb4b884e0f878c2da1f410d51977d36dacfcab536 (patch)
treed272600247a276ba7b540fec828cb109d6c0a56d /src/compiler/scala/tools/nsc/io/PlainFile.scala
parent9cc4c5f9a30b11461d563d8009dfc9af462aac16 (diff)
downloadscala-b4b884e0f878c2da1f410d51977d36dacfcab536.tar.gz
scala-b4b884e0f878c2da1f410d51977d36dacfcab536.tar.bz2
scala-b4b884e0f878c2da1f410d51977d36dacfcab536.zip
Created a PlainDirectory subclass of PlainFile ...
Created a PlainDirectory subclass of PlainFile so I can use polymorphism to optimize. No review.
Diffstat (limited to 'src/compiler/scala/tools/nsc/io/PlainFile.scala')
-rw-r--r--src/compiler/scala/tools/nsc/io/PlainFile.scala10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/io/PlainFile.scala b/src/compiler/scala/tools/nsc/io/PlainFile.scala
index 21c4d95d7a..83b8cc32c4 100644
--- a/src/compiler/scala/tools/nsc/io/PlainFile.scala
+++ b/src/compiler/scala/tools/nsc/io/PlainFile.scala
@@ -16,7 +16,15 @@ object PlainFile {
* by it. Otherwise, returns null.
*/
def fromPath(file: Path): PlainFile =
- if (file.exists) new PlainFile(file) else null
+ 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.