diff --git a/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java b/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java index 0a6f661259..5cb502cbf9 100644 --- a/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java +++ b/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java @@ -148,8 +148,8 @@ public class JavaFutureTests { final CountDownLatch latch = new CountDownLatch(1); Promise cf = Futures.promise(system.dispatcher()); Future f = cf; - Future r = f.filter(Filter.create(new Filter() { - public boolean filter(String r) { + Future r = f.filter(Filter.filterOf(new Function() { + public Boolean apply(String r) { latch.countDown(); return r.equals("foo"); } diff --git a/akka-actor/src/main/scala/akka/dispatch/Future.scala b/akka-actor/src/main/scala/akka/dispatch/Future.scala index 8bc9f3cfaf..f7adfc72bb 100644 --- a/akka-actor/src/main/scala/akka/dispatch/Future.scala +++ b/akka-actor/src/main/scala/akka/dispatch/Future.scala @@ -1047,10 +1047,11 @@ abstract class Recover[+T] extends japi.RecoverBridge[T] { * possible to use `Future.filter` by constructing such a function indirectly: * * {{{ + * import static akka.dispatch.Filter.filterOf; * Future f = ...; - * f.filter(Filter.create(new Filter() { + * f.filter(filterOf(new Function() { * @Override - * public boolean filter(String s) { + * public Boolean apply(String s) { * ... * } * })); @@ -1060,20 +1061,9 @@ abstract class Recover[+T] extends japi.RecoverBridge[T] { * thus Java users should prefer `Future.map`, translating non-matching values * to failure cases. */ -abstract class Filter[-T] { - /** - * This method will be invoked once when/if a Future that this callback is registered on - * becomes completed with a success. - * - * @return true if the successful value should be propagated to the new Future or not - */ - def filter(result: T): Boolean -} - object Filter { - def create[T](f: Filter[T]): (T ⇒ Boolean) = new Function1[T, Boolean] { - def apply(result: T): Boolean = f.filter(result) - } + def filterOf[T](f: akka.japi.Function[T, java.lang.Boolean]): (T ⇒ Boolean) = + new Function1[T, Boolean] { def apply(result: T): Boolean = f(result).booleanValue() } } /** diff --git a/akka-docs/java/code/akka/docs/future/FutureDocTestBase.java b/akka-docs/java/code/akka/docs/future/FutureDocTestBase.java index d8c7b04eb7..d8e59f5d30 100644 --- a/akka-docs/java/code/akka/docs/future/FutureDocTestBase.java +++ b/akka-docs/java/code/akka/docs/future/FutureDocTestBase.java @@ -317,14 +317,14 @@ public class FutureDocTestBase { public void useFilter() throws Exception { //#filter Future future1 = Futures.successful(4, system.dispatcher()); - Future successfulFilter = future1.filter(Filter.create(new Filter() { - public boolean filter(Integer i) { + Future successfulFilter = future1.filter(Filter.filterOf(new Function() { + public Boolean apply(Integer i) { return i % 2 == 0; } })); - Future failedFilter = future1.filter(Filter.create(new Filter() { - public boolean filter(Integer i) { + Future failedFilter = future1.filter(Filter.filterOf(new Function() { + public Boolean apply(Integer i) { return i % 2 != 0; } }));