scala.ref.ReferenceWrapper.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scala-library Show documentation
Show all versions of scala-library Show documentation
Standard library for the Scala Programming Language
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2006-2013, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.ref
/**
* @author Sean McDirmid
*/
trait ReferenceWrapper[+T <: AnyRef] extends Reference[T] with Proxy {
val underlying: java.lang.ref.Reference[_ <: T]
override def get = Option(underlying.get)
def apply() = {
val ret = underlying.get
if (ret eq null) throw new NoSuchElementException
ret
}
def clear() = underlying.clear()
def enqueue = underlying.enqueue
def isEnqueued = underlying.isEnqueued
def self = underlying
}
/**
* @author Philipp Haller
*/
private trait ReferenceWithWrapper[T <: AnyRef] {
val wrapper: ReferenceWrapper[T]
}