summaryrefslogtreecommitdiff
path: root/examples/scala-js/javalanglib/src/main/scala/java/lang/ref
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/javalanglib/src/main/scala/java/lang/ref')
-rw-r--r--examples/scala-js/javalanglib/src/main/scala/java/lang/ref/PhantomReference.scala7
-rw-r--r--examples/scala-js/javalanglib/src/main/scala/java/lang/ref/Reference.scala8
-rw-r--r--examples/scala-js/javalanglib/src/main/scala/java/lang/ref/ReferenceQueue.scala3
-rw-r--r--examples/scala-js/javalanglib/src/main/scala/java/lang/ref/SoftReference.scala9
-rw-r--r--examples/scala-js/javalanglib/src/main/scala/java/lang/ref/WeakReference.scala7
5 files changed, 34 insertions, 0 deletions
diff --git a/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/PhantomReference.scala b/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/PhantomReference.scala
new file mode 100644
index 0000000..ecace8a
--- /dev/null
+++ b/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/PhantomReference.scala
@@ -0,0 +1,7 @@
+package java.lang.ref
+
+class PhantomReference[T >: Null <: AnyRef](referent: T,
+ queue: ReferenceQueue[_ >: T]) extends Reference[T](null) {
+
+ override def get(): T = null
+}
diff --git a/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/Reference.scala b/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/Reference.scala
new file mode 100644
index 0000000..76909cf
--- /dev/null
+++ b/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/Reference.scala
@@ -0,0 +1,8 @@
+package java.lang.ref
+
+abstract class Reference[T >: Null <: AnyRef](private[this] var referent: T) {
+ def get(): T = referent
+ def clear(): Unit = referent = null
+ def isEnqueued(): Boolean = false
+ def enqueue(): Boolean = false
+}
diff --git a/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/ReferenceQueue.scala b/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/ReferenceQueue.scala
new file mode 100644
index 0000000..e9c5110
--- /dev/null
+++ b/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/ReferenceQueue.scala
@@ -0,0 +1,3 @@
+package java.lang.ref
+
+class ReferenceQueue[T >: Null <: AnyRef]
diff --git a/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/SoftReference.scala b/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/SoftReference.scala
new file mode 100644
index 0000000..eb0fdf7
--- /dev/null
+++ b/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/SoftReference.scala
@@ -0,0 +1,9 @@
+package java.lang.ref
+
+class SoftReference[T >: Null <: AnyRef](referent: T,
+ queue: ReferenceQueue[_ >: T]) extends Reference[T](referent) {
+
+ def this(referent: T) = this(referent, null)
+
+ override def get(): T = super.get()
+}
diff --git a/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/WeakReference.scala b/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/WeakReference.scala
new file mode 100644
index 0000000..2a74aa1
--- /dev/null
+++ b/examples/scala-js/javalanglib/src/main/scala/java/lang/ref/WeakReference.scala
@@ -0,0 +1,7 @@
+package java.lang.ref
+
+class WeakReference[T >: Null <: AnyRef](referent: T,
+ queue: ReferenceQueue[_ >: T]) extends Reference[T](referent) {
+
+ def this(referent: T) = this(referent, null)
+}