summaryrefslogtreecommitdiff
path: root/examples/scala-js/javalib-ex/src/main/scala/java/util
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/javalib-ex/src/main/scala/java/util')
-rw-r--r--examples/scala-js/javalib-ex/src/main/scala/java/util/zip/InflaterInputStream.scala18
-rw-r--r--examples/scala-js/javalib-ex/src/main/scala/java/util/zip/ZipEntry.scala67
-rw-r--r--examples/scala-js/javalib-ex/src/main/scala/java/util/zip/ZipInputStream.scala87
3 files changed, 0 insertions, 172 deletions
diff --git a/examples/scala-js/javalib-ex/src/main/scala/java/util/zip/InflaterInputStream.scala b/examples/scala-js/javalib-ex/src/main/scala/java/util/zip/InflaterInputStream.scala
deleted file mode 100644
index 10aa04e..0000000
--- a/examples/scala-js/javalib-ex/src/main/scala/java/util/zip/InflaterInputStream.scala
+++ /dev/null
@@ -1,18 +0,0 @@
-package java.util.zip
-
-import java.io._
-
-class InflaterInputStream(in: InputStream) extends FilterInputStream(in) {
-
- // Not implemented:
- // def this(in: InputStream, inf: Inflater)
- // def this(in: InputStream, inf: Inflater, size: Int)
- // protected var buf: Array[Byte]
- // protected var inf: Inflater
- // protected var len: Int
-
- override def markSupported(): Boolean = false
- override def mark(readlimit: Int): Unit = {}
- override def reset(): Unit = throw new IOException("Reset not supported")
-
-}
diff --git a/examples/scala-js/javalib-ex/src/main/scala/java/util/zip/ZipEntry.scala b/examples/scala-js/javalib-ex/src/main/scala/java/util/zip/ZipEntry.scala
deleted file mode 100644
index 89f37a3..0000000
--- a/examples/scala-js/javalib-ex/src/main/scala/java/util/zip/ZipEntry.scala
+++ /dev/null
@@ -1,67 +0,0 @@
-package java.util.zip
-
-class ZipEntry(private[this] val _name: String) extends Cloneable {
-
- private[this] var _comment: String = null
- private[this] var _csize: Long = -1
- private[this] var _crc: Long = -1
- private[this] var _extra: Array[Byte] = null
- private[this] var _method: Int = -1
- private[this] var _size: Long = -1
- private[this] var _time: Long = -1
-
- def this(e: ZipEntry) = {
- this(e.getName())
- setComment(e.getComment())
- setCompressedSize(e.getCompressedSize())
- setCrc(e.getCrc())
- setExtra(e.getExtra())
- setMethod(e.getMethod())
- setSize(e.getSize())
- setTime(e.getTime())
- }
-
- override def clone(): Object = {
- val result = super.clone()
- if (getExtra() != null)
- setExtra(getExtra().clone().asInstanceOf[Array[Byte]])
- result
- }
-
- def getComment(): String = _comment
- def getCompressedSize(): Long = _csize
- def getCrc(): Long = _crc
- def getExtra(): Array[Byte] = _extra
- def getMethod(): Int = _method
- def getName(): String = _name
- def getSize(): Long = _size
- def getTime(): Long = _time
-
- // Strangely, the Javalib defines hashCode, but not equals.
- override def hashCode(): Int = {
- import scala.util.hashing.MurmurHash3._
-
- var acc = 0x45322
- acc = mix(acc, getComment.##)
- acc = mix(acc, getCompressedSize.##)
- acc = mix(acc, getCrc.##)
- acc = mix(acc, getExtra.##)
- acc = mix(acc, getMethod.##)
- acc = mix(acc, getName.##)
- acc = mix(acc, getSize.##)
- acc = mixLast(acc, getTime.##)
- finalizeHash(acc, 8)
- }
-
- def isDirectory(): Boolean = _name.endsWith("/")
-
- def setComment(comment: String): Unit = { _comment = comment }
- def setCompressedSize(csize: Long): Unit = { _csize = csize }
- def setCrc(crc: Long): Unit = { _crc = crc }
- def setExtra(extra: Array[Byte]): Unit = { _extra = extra }
- def setMethod(method: Int): Unit = { _method = method }
- def setSize(size: Long): Unit = { _size = size }
- def setTime(time: Long): Unit = { _time = time }
- override def toString(): String = _name
-
-}
diff --git a/examples/scala-js/javalib-ex/src/main/scala/java/util/zip/ZipInputStream.scala b/examples/scala-js/javalib-ex/src/main/scala/java/util/zip/ZipInputStream.scala
deleted file mode 100644
index 082f6fc..0000000
--- a/examples/scala-js/javalib-ex/src/main/scala/java/util/zip/ZipInputStream.scala
+++ /dev/null
@@ -1,87 +0,0 @@
-package java.util.zip
-
-import java.io._
-
-import scala.scalajs.js
-import scala.scalajs.js.typedarray._
-
-class ZipInputStream(in: InputStream) extends InflaterInputStream(in) {
-
- // Not implemented
- // - All static constant fields (zip internals)
- // - protected def createZipEntry(name: String): ZipEntry
-
- private[this] val entryIter = {
- import js.Dynamic.{global => g}
-
- val data = in match {
- case in: ArrayBufferInputStream =>
- // Simulate reading all the data
- while (in.skip(in.available()) > 0) {}
- new Uint8Array(in.buffer, in.offset, in.length)
- case _ =>
- val arr = new js.Array[Int]
- var x = in.read()
- while (x != -1) {
- arr.push(x)
- x = in.read()
- }
- new Uint8Array(arr)
- }
-
- val zip = js.Dynamic.newInstance(g.JSZip)(data)
- val entries = zip.files.asInstanceOf[js.Dictionary[js.Dynamic]]
-
- entries.iterator
- }
-
- private[this] var inner: ArrayBufferInputStream = null
-
- override def close(): Unit = {
- closeEntry()
- super.close()
- }
-
- override def available(): Int = {
- if (inner == null || inner.available() <= 0) 0
- else 1
- }
-
- def closeEntry(): Unit = {
- if (inner != null)
- inner.close()
- inner = null
- }
-
- def getNextEntry(): ZipEntry = {
- closeEntry()
- if (entryIter.hasNext) {
- val (name, jsEntry) = entryIter.next()
- val res = new ZipEntry(name)
- res.setTime(jsEntry.date.asInstanceOf[js.Date].getTime().toLong)
- res.setComment(jsEntry.comment.asInstanceOf[String])
-
- inner = new ArrayBufferInputStream(
- jsEntry.asArrayBuffer().asInstanceOf[ArrayBuffer])
-
- res
- } else null
- }
-
- override def read(): Int = {
- if (inner == null) -1
- else inner.read()
- }
-
- override def read(buf: Array[Byte], off: Int, len: Int): Int = {
- if (len == 0) 0
- else if (inner == null) -1
- else inner.read(buf, off, len)
- }
-
- override def skip(n: Long): Long = {
- if (inner == null) 0
- else inner.skip(n)
- }
-
-}