Package org.forgerock.util
Interface Function<VIN,VOUT,E extends Exception>
-
- Type Parameters:
VIN
- The type of the function parameter, orVoid
if the function does not expect a parameter.VOUT
- The type of the function result, orVoid
if the function does not return anything (i.e. it only has side-effects).E
- The type of the exception thrown by the function, orNeverThrowsException
if no exception is thrown by the function.
- All Known Implementing Classes:
CloseSilentlyFunction
,JsonValueTraverseFunction
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public interface Function<VIN,VOUT,E extends Exception>
A synchronous function which returns a result immediately.Exception handling: implementations which do not throw any exceptions should declare that they throw an exception of type
NeverThrowsException
.Example usage:
public class IsPossiblePrime implements Function<String, Boolean, IllegalArgumentException> { public Boolean apply(String value) throws IllegalArgumentException { // Parse the parameter now and potentially immediately throw an // exception. final BigInteger possiblePrime = new BigInteger(value); // Determine if the parameter is a prime number. return possiblePrime.isProbablePrime(1000); } }
- See Also:
AsyncFunction
,NeverThrowsException
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default <V> Function<VIN,V,E>
andThen(Function<? super VOUT,? extends V,E> after)
Returns a composed function that first applies this function to its input, and then applies theafter
function to the result.VOUT
apply(VIN value)
Applies this function to the input parametervalue
and returns the result.default <V> Function<V,VOUT,E>
compose(Function<? super V,? extends VIN,E> before)
Returns a composed function that first applies thebefore
function to its input, and then applies this function to the result.static <V,E extends Exception>
Function<V,V,E>identity()
Returns an identity function that returns the input as output.
-
-
-
Method Detail
-
apply
VOUT apply(VIN value) throws E extends Exception
Applies this function to the input parametervalue
and returns the result.
-
compose
default <V> Function<V,VOUT,E> compose(Function<? super V,? extends VIN,E> before) throws E extends Exception
Returns a composed function that first applies thebefore
function to its input, and then applies this function to the result. If evaluation of either function throws an exception, it is relayed to the caller of the composed function.- Type Parameters:
V
- the type of input to thebefore
function, and to the composed function- Parameters:
before
- the function to apply before this function is applied- Returns:
- a composed function that first applies the
before
function and then applies this function - Throws:
NullPointerException
- if before is nullE extends Exception
- See Also:
andThen(Function)
-
andThen
default <V> Function<VIN,V,E> andThen(Function<? super VOUT,? extends V,E> after)
Returns a composed function that first applies this function to its input, and then applies theafter
function to the result. If evaluation of either function throws an exception, it is relayed to the caller of the composed function.- Type Parameters:
V
- the type of output of theafter
function, and of the composed function- Parameters:
after
- the function to apply after this function is applied- Returns:
- a composed function that first applies this function and then
applies the
after
function - Throws:
NullPointerException
- if after is null- See Also:
compose(Function)
-
identity
static <V,E extends Exception> Function<V,V,E> identity()
Returns an identity function that returns the input as output.- Type Parameters:
V
- the input/output typeE
- The type of the exception thrown by the function, orNeverThrowsException
if no exception is thrown by the function.- Returns:
- an identity function that will return a result promise of the input.
-
-