Add FunctionConverters, FutureConverters and ObjectConverters

This commit is contained in:
Matthew de Detrich 2023-04-04 16:22:58 +02:00 committed by Matthew de Detrich
parent dfa0b0ded1
commit 07df607192
70 changed files with 1041 additions and 339 deletions

View file

@ -17,8 +17,6 @@ import java.util.Optional
import java.util.concurrent.CompletionStage
import java.util.function.Consumer
import scala.compat.java8.FutureConverters._
import scala.compat.java8.OptionConverters._
import scala.concurrent.ExecutionContext
import scala.concurrent.Future
@ -27,6 +25,8 @@ import pekko.annotation.InternalApi
import pekko.coordination.lease.LeaseSettings
import pekko.coordination.lease.javadsl.{ Lease => JavaLease }
import pekko.coordination.lease.scaladsl.{ Lease => ScalaLease }
import pekko.util.FutureConverters._
import pekko.util.OptionConverters._
/**
* INTERNAL API
@ -34,13 +34,13 @@ import pekko.coordination.lease.scaladsl.{ Lease => ScalaLease }
@InternalApi
final private[pekko] class LeaseAdapter(delegate: ScalaLease)(implicit val ec: ExecutionContext) extends JavaLease {
override def acquire(): CompletionStage[java.lang.Boolean] = delegate.acquire().map(Boolean.box).toJava
override def acquire(): CompletionStage[java.lang.Boolean] = delegate.acquire().map(Boolean.box).asJava
override def acquire(leaseLostCallback: Consumer[Optional[Throwable]]): CompletionStage[java.lang.Boolean] = {
delegate.acquire(o => leaseLostCallback.accept(o.asJava)).map(Boolean.box).toJava
delegate.acquire(o => leaseLostCallback.accept(o.toJava)).map(Boolean.box).asJava
}
override def release(): CompletionStage[java.lang.Boolean] = delegate.release().map(Boolean.box).toJava
override def release(): CompletionStage[java.lang.Boolean] = delegate.release().map(Boolean.box).asJava
override def checkLease(): Boolean = delegate.checkLease()
override def getSettings(): LeaseSettings = delegate.settings
}
@ -53,13 +53,13 @@ final private[pekko] class LeaseAdapterToScala(val delegate: JavaLease)(implicit
extends ScalaLease(delegate.getSettings()) {
override def acquire(): Future[Boolean] =
delegate.acquire().toScala.map(Boolean.unbox)
delegate.acquire().asScala.map(Boolean.unbox)
override def acquire(leaseLostCallback: Option[Throwable] => Unit): Future[Boolean] =
delegate.acquire(o => leaseLostCallback(o.asScala)).toScala.map(Boolean.unbox)
delegate.acquire(o => leaseLostCallback(o.toScala)).asScala.map(Boolean.unbox)
override def release(): Future[Boolean] =
delegate.release().toScala.map(Boolean.unbox)
delegate.release().asScala.map(Boolean.unbox)
override def checkLease(): Boolean =
delegate.checkLease()