Package org.apache.pekko.japi
Class JavaPartialFunction<A,B>
java.lang.Object
scala.runtime.AbstractPartialFunction<A,B>
org.apache.pekko.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 to
isCheck == true and the latter to isCheck == 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 Apache Pekko 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 throw noMatch() it will continue with calling
JavaPartialFunction.apply(x, false).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal Babstract Bfinal <A1 extends A,B1>
B1applyOrElse(A1 x, scala.Function1<A1, B1> default_) final booleanisDefinedAt(A x) static final RuntimeExceptionnoMatch()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
-
Constructor Details
-
JavaPartialFunction
public JavaPartialFunction()
-
-
Method Details
-
noMatch
-
apply
- Throws:
Exception
-
isDefinedAt
-
apply
-
applyOrElse
-