summaryrefslogtreecommitdiff
path: root/examples/scala-js/javalib/src/main/scala/java/io/Writer.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/javalib/src/main/scala/java/io/Writer.scala')
-rw-r--r--examples/scala-js/javalib/src/main/scala/java/io/Writer.scala45
1 files changed, 45 insertions, 0 deletions
diff --git a/examples/scala-js/javalib/src/main/scala/java/io/Writer.scala b/examples/scala-js/javalib/src/main/scala/java/io/Writer.scala
new file mode 100644
index 0000000..d63b477
--- /dev/null
+++ b/examples/scala-js/javalib/src/main/scala/java/io/Writer.scala
@@ -0,0 +1,45 @@
+package java.io
+
+abstract class Writer private[this] (_lock: Option[Object]) extends
+ Appendable with Closeable with Flushable {
+
+ protected val lock = _lock.getOrElse(this)
+
+ protected def this(lock: Object) = this(Some(lock))
+ protected def this() = this(None)
+
+ def write(c: Int): Unit =
+ write(Array(c.toChar))
+
+ def write(cbuf: Array[Char]): Unit =
+ write(cbuf, 0, cbuf.length)
+
+ def write(cbuf: Array[Char], off: Int, len: Int): Unit
+
+ def write(str: String): Unit =
+ write(str.toCharArray)
+
+ def write(str: String, off: Int, len: Int): Unit =
+ write(str.toCharArray, off, len)
+
+ def append(csq: CharSequence): Writer = {
+ write(if (csq == null) "null" else csq.toString)
+ this
+ }
+
+ def append(csq: CharSequence, start: Int, end: Int): Writer = {
+ val csq1 = if (csq == null) "null" else csq
+ write(csq1.subSequence(start, end).toString)
+ this
+ }
+
+ def append(c: Char): Writer = {
+ write(c.toInt)
+ this
+ }
+
+ def flush(): Unit
+
+ def close(): Unit
+
+}