summaryrefslogtreecommitdiff
path: root/examples/scala-js/tools/jvm/src/main/scala/scala/scalajs/tools/io/FileVirtualFiles.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/tools/jvm/src/main/scala/scala/scalajs/tools/io/FileVirtualFiles.scala')
-rw-r--r--examples/scala-js/tools/jvm/src/main/scala/scala/scalajs/tools/io/FileVirtualFiles.scala157
1 files changed, 0 insertions, 157 deletions
diff --git a/examples/scala-js/tools/jvm/src/main/scala/scala/scalajs/tools/io/FileVirtualFiles.scala b/examples/scala-js/tools/jvm/src/main/scala/scala/scalajs/tools/io/FileVirtualFiles.scala
deleted file mode 100644
index da29225..0000000
--- a/examples/scala-js/tools/jvm/src/main/scala/scala/scalajs/tools/io/FileVirtualFiles.scala
+++ /dev/null
@@ -1,157 +0,0 @@
-package scala.scalajs.tools.io
-
-import scala.annotation.tailrec
-
-import java.io._
-import java.net.URI
-
-/** A [[VirtualFile]] implemented by an actual file on the file system. */
-class FileVirtualFile(val file: File) extends VirtualFile {
- import FileVirtualFile._
-
- override def path = file.getPath
-
- override def name = file.getName
-
- override def version: Option[String] = {
- if (!file.isFile) None
- else Some(file.lastModified.toString)
- }
-
- override def exists: Boolean = file.exists
-
- override def toURI: URI = file.toURI
-}
-
-object FileVirtualFile extends (File => FileVirtualFile) {
- def apply(f: File): FileVirtualFile =
- new FileVirtualFile(f)
-
- /** Tests whether the given file has the specified extension.
- * Extension contain the '.', so a typical value for `ext` would be ".js".
- * The comparison is case-sensitive.
- */
- def hasExtension(file: File, ext: String): Boolean =
- file.getName.endsWith(ext)
-
- /** Returns a new file with the same parent as the given file but a different
- * name.
- */
- def withName(file: File, newName: String): File =
- new File(file.getParentFile(), newName)
-
- /** Returns a new file with the same path as the given file but a different
- * extension.
- * Extension contain the '.', so a typical value for `ext` would be ".js".
- * Precondition: hasExtension(file, oldExt)
- */
- def withExtension(file: File, oldExt: String, newExt: String): File = {
- require(hasExtension(file, oldExt),
- s"File $file does not have extension '$oldExt'")
- withName(file, file.getName.stripSuffix(oldExt) + newExt)
- }
-}
-
-/** A [[VirtualTextFile]] implemented by an actual file on the file system. */
-class FileVirtualTextFile(f: File) extends FileVirtualFile(f)
- with VirtualTextFile {
- import FileVirtualTextFile._
-
- override def content: String = readFileToString(file)
- override def reader: Reader = new BufferedReader(new FileReader(f))
-}
-
-object FileVirtualTextFile extends (File => FileVirtualTextFile) {
- def apply(f: File): FileVirtualTextFile =
- new FileVirtualTextFile(f)
-
- /** Reads the entire content of a file as a UTF-8 string. */
- def readFileToString(file: File): String = {
- val stream = new FileInputStream(file)
- try IO.readInputStreamToString(stream)
- finally stream.close()
- }
-}
-
-trait WritableFileVirtualTextFile extends FileVirtualTextFile
- with WritableVirtualTextFile {
- override def contentWriter: Writer = {
- new BufferedWriter(new OutputStreamWriter(
- new FileOutputStream(file), "UTF-8"))
- }
-}
-
-object WritableFileVirtualTextFile {
- def apply(f: File): WritableFileVirtualTextFile =
- new FileVirtualTextFile(f) with WritableFileVirtualTextFile
-}
-
-/** A [[VirtualBinaryFile]] implemented by an actual file on the file system. */
-class FileVirtualBinaryFile(f: File) extends FileVirtualFile(f)
- with VirtualBinaryFile {
- import FileVirtualBinaryFile._
-
- override def inputStream: InputStream =
- new BufferedInputStream(new FileInputStream(file))
-
- override def content: Array[Byte] =
- readFileToByteArray(file)
-}
-
-object FileVirtualBinaryFile extends (File => FileVirtualBinaryFile) {
- def apply(f: File): FileVirtualBinaryFile =
- new FileVirtualBinaryFile(f)
-
- /** Reads the entire content of a file as byte array. */
- def readFileToByteArray(file: File): Array[Byte] = {
- val stream = new FileInputStream(file)
- try IO.readInputStreamToByteArray(stream)
- finally stream.close()
- }
-}
-
-class FileVirtualJSFile(f: File) extends FileVirtualTextFile(f)
- with VirtualJSFile {
- import FileVirtualFile._
- import FileVirtualTextFile._
-
- val sourceMapFile: File = withExtension(file, ".js", ".js.map")
-
- override def sourceMap: Option[String] = {
- if (sourceMapFile.exists) Some(readFileToString(sourceMapFile))
- else None
- }
-}
-
-object FileVirtualJSFile extends (File => FileVirtualJSFile) {
- def apply(f: File): FileVirtualJSFile =
- new FileVirtualJSFile(f)
-}
-
-trait WritableFileVirtualJSFile extends FileVirtualJSFile
- with WritableFileVirtualTextFile
- with WritableVirtualJSFile {
-
- override def sourceMapWriter: Writer = {
- new BufferedWriter(new OutputStreamWriter(
- new FileOutputStream(sourceMapFile), "UTF-8"))
- }
-}
-
-object WritableFileVirtualJSFile {
- def apply(f: File): WritableFileVirtualJSFile =
- new FileVirtualJSFile(f) with WritableFileVirtualJSFile
-}
-
-class FileVirtualScalaJSIRFile(f: File)
- extends FileVirtualBinaryFile(f) with VirtualSerializedScalaJSIRFile
-
-object FileVirtualScalaJSIRFile extends (File => FileVirtualScalaJSIRFile) {
- import FileVirtualFile._
-
- def apply(f: File): FileVirtualScalaJSIRFile =
- new FileVirtualScalaJSIRFile(f)
-
- def isScalaJSIRFile(file: File): Boolean =
- hasExtension(file, ".sjsir")
-}