diff options
author | Seth Tisue <seth@tisue.net> | 2015-10-27 08:56:21 -0400 |
---|---|---|
committer | Seth Tisue <seth@tisue.net> | 2015-10-27 08:56:21 -0400 |
commit | 7b40dc6550d4f8b5a4bc17820df8de5cc1411734 (patch) | |
tree | 3706d57dc1ebaf43bc420e3275862ad49dac9540 /src/library | |
parent | ed2d7a1f3f776a3e49f66f3f0c7a4a3eb49f1443 (diff) | |
parent | 168575d9f42e424bb138f05251a3a86eb01adf80 (diff) | |
download | scala-7b40dc6550d4f8b5a4bc17820df8de5cc1411734.tar.gz scala-7b40dc6550d4f8b5a4bc17820df8de5cc1411734.tar.bz2 scala-7b40dc6550d4f8b5a4bc17820df8de5cc1411734.zip |
Merge pull request #4813 from rcmurphy/topic/improved-softref
Add Extractor and apply Method for SoftReference
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/ref/SoftReference.scala | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/library/scala/ref/SoftReference.scala b/src/library/scala/ref/SoftReference.scala index e4ce667981..5e60f00788 100644 --- a/src/library/scala/ref/SoftReference.scala +++ b/src/library/scala/ref/SoftReference.scala @@ -20,6 +20,19 @@ class SoftReference[+T <: AnyRef](value : T, queue : ReferenceQueue[T]) extends } /** + * A companion object that implements an extractor for `SoftReference` values + * @author Rebecca Claire Murphy + */ +object SoftReference { + + /** Creates a `SoftReference` pointing to `value` */ + def apply[T <: AnyRef](value: T) = new SoftReference(value) + + /** Optionally returns the referenced value, or `None` if that value no longer exists */ + def unapply[T <: AnyRef](sr: SoftReference[T]): Option[T] = Option(sr.underlying.get) +} + +/** * @author Philipp Haller */ private class SoftReferenceWithWrapper[T <: AnyRef](value: T, queue: ReferenceQueue[T], val wrapper: SoftReference[T]) |