Package akka.japi
Class JavaPartialFunction<A,B>
- java.lang.Object
-
- scala.runtime.AbstractPartialFunction<A,B>
-
- akka.japi.JavaPartialFunction<A,B>
-
- All Implemented Interfaces:
scala.Function1<A,B>
,scala.PartialFunction<A,B>
public abstract class JavaPartialFunction<A,B> extends scala.runtime.AbstractPartialFunction<A,B>
Helper for implementing a *pure* partial function: it will possibly be invoked multiple times for a single “application”, because its only abstract method is used for both isDefinedAt() and apply(); the former is mapped toisCheck == true
and the latter toisCheck == false
for those cases where this is important to know.Failure to match is signaled by throwing
noMatch()
, i.e. not returning normally (the exception used in this case is pre-allocated, hence not that expensive).new JavaPartialFunction<Object, String>() { public String apply(Object in, boolean isCheck) { if (in instanceof TheThing) { if (isCheck) return null; // to spare the expensive or side-effecting code return doSomethingWithTheThing((TheThing) in); } else { throw noMatch(); } } }
The typical use of partial functions from Akka looks like the following:
if (pf.isDefinedAt(x)) { pf.apply(x); }
i.e. it will first call
JavaPartialFunction.apply(x, true)
and if that does not thrownoMatch()
it will continue with callingJavaPartialFunction.apply(x, false)
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JavaPartialFunction.NoMatch$
static class
JavaPartialFunction.NoMatchException
-
Constructor Summary
Constructors Constructor Description JavaPartialFunction()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description B
apply(A x)
abstract B
apply(A x, boolean isCheck)
<A1 extends A,B1>
B1applyOrElse(A1 x, scala.Function1<A1,B1> default_)
boolean
isDefinedAt(A x)
static java.lang.RuntimeException
noMatch()
-
Methods inherited from class scala.runtime.AbstractPartialFunction
andThen, andThen, apply$mcDD$sp, apply$mcDF$sp, apply$mcDI$sp, apply$mcDJ$sp, apply$mcFD$sp, apply$mcFF$sp, apply$mcFI$sp, apply$mcFJ$sp, apply$mcID$sp, apply$mcIF$sp, apply$mcII$sp, apply$mcIJ$sp, apply$mcJD$sp, apply$mcJF$sp, apply$mcJI$sp, apply$mcJJ$sp, apply$mcVD$sp, apply$mcVF$sp, apply$mcVI$sp, apply$mcVJ$sp, apply$mcZD$sp, apply$mcZF$sp, apply$mcZI$sp, apply$mcZJ$sp, compose, compose, elementWise, lift, orElse, runWith, toString, unapply
-
-