diff options
Diffstat (limited to 'examples/scala-js/javalanglib/src/main/scala/java/lang/ref')
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) +} |