diff --git a/akka-actor/src/main/scala/akka/dispatch/japi/Future.scala b/akka-actor/src/main/scala/akka/dispatch/japi/Future.scala index ca28099d8d..5f32ac1f35 100644 --- a/akka-actor/src/main/scala/akka/dispatch/japi/Future.scala +++ b/akka-actor/src/main/scala/akka/dispatch/japi/Future.scala @@ -6,6 +6,7 @@ package akka.dispatch.japi import akka.util.Timeout import akka.japi.{ Procedure2, Procedure, Function ⇒ JFunc, Option ⇒ JOption } +@deprecated("Do not use this directly, use subclasses of this", "2.0") class Callback[-T] extends PartialFunction[T, Unit] { override final def isDefinedAt(t: T): Boolean = true override final def apply(t: T): Unit = on(t) @@ -30,6 +31,18 @@ abstract class OnComplete[-T] extends Callback[Either[Throwable, T]] { def onComplete(failure: Throwable, success: T): Unit } +@deprecated("Do not use this directly, use 'Recover'", "2.0") +class RecoverBridge[+T] extends PartialFunction[Throwable, T] { + override final def isDefinedAt(t: Throwable): Boolean = true + override final def apply(t: Throwable): T = on(t) + protected def on(result: Throwable): T = null.asInstanceOf[T] +} + +abstract class Recover[+T] extends RecoverBridge[T] { + protected final override def on(result: Throwable): T = recover(result) + def recover(failure: Throwable): T +} + abstract class Filter[-T] extends (T ⇒ Boolean) { override final def apply(t: T): Boolean = filter(t) def filter(result: T): Boolean