mirror of https://github.com/sbt/sbt.git
use extension in OptionSyntax
This commit is contained in:
parent
fc18a7e4fe
commit
7ecae27b3d
|
|
@ -12,38 +12,28 @@ import java.util.Optional
|
||||||
|
|
||||||
// Todo: port this back to Zinc in place of JavaInterfaceUtil.
|
// Todo: port this back to Zinc in place of JavaInterfaceUtil.
|
||||||
trait OptionSyntax {
|
trait OptionSyntax {
|
||||||
import OptionSyntax._
|
|
||||||
implicit def sbtOptionSyntaxRichOptional[A](optional: Optional[A]): RichOptional[A] =
|
|
||||||
new RichOptional[A](optional)
|
|
||||||
|
|
||||||
implicit def sbtOptionSyntaxRichOption[A](option: Option[A]): RichOption[A] =
|
|
||||||
new RichOption[A](option)
|
|
||||||
|
|
||||||
implicit def sbtOptionSyntaxOptionIdOps[A](a: A): OptionIdOps[A] =
|
|
||||||
new OptionIdOps[A](a)
|
|
||||||
|
|
||||||
final def none[A]: Option[A] = None
|
|
||||||
}
|
|
||||||
|
|
||||||
object OptionSyntax extends OptionSyntax {
|
|
||||||
|
|
||||||
/** Injects some method. */
|
/** Injects some method. */
|
||||||
final class OptionIdOps[A](val a: A) extends AnyVal {
|
extension [A](a: A) {
|
||||||
def some: Option[A] = Some(a)
|
def some: Option[A] = Some(a)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Injects asScala method. */
|
/** Injects asScala method. */
|
||||||
final class RichOptional[A](val optional: Optional[A]) extends AnyVal {
|
extension [A](optional: Optional[A]) {
|
||||||
def asScala: Option[A] =
|
def asScala: Option[A] =
|
||||||
if (!optional.isPresent) None
|
if (!optional.isPresent) None
|
||||||
else Some(optional.get())
|
else Some(optional.get())
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Injects asJava method. */
|
/** Injects asJava method. */
|
||||||
final class RichOption[A](val option: Option[A]) extends AnyVal {
|
extension [A](option: Option[A]) {
|
||||||
def asJava: Optional[A] = option match {
|
def asJava: Optional[A] = option match {
|
||||||
case Some(value) => Optional.of(value)
|
case Some(value) => Optional.of(value)
|
||||||
case None => Optional.empty[A]
|
case None => Optional.empty[A]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final def none[A]: Option[A] = None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object OptionSyntax extends OptionSyntax
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue