Package jadex.commons.future
Interface IFuture<E>
-
- All Known Subinterfaces:
IIntermediateFuture<E>,IPullIntermediateFuture<E>,IPullSubscriptionIntermediateFuture<E>,ISubscriptionIntermediateFuture<E>,ITerminableFuture<E>,ITerminableIntermediateFuture<E>,ITuple2Future<E,F>
- All Known Implementing Classes:
Future,IntermediateFuture,PullIntermediateDelegationFuture,PullIntermediateFuture,PullSubscriptionIntermediateDelegationFuture,PullSubscriptionIntermediateFuture,SubscriptionIntermediateDelegationFuture,SubscriptionIntermediateFuture,TerminableDelegationFuture,TerminableFuture,TerminableIntermediateDelegationFuture,TerminableIntermediateFuture,Tuple2Future
public interface IFuture<E>Interface for futures. Similar to Java Future interface but adds a listener notification mechanism.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description voidaddResultListener(IResultListener<E> listener)Add a result listener.<T> IFuture<E>catchEx(Future<T> delegate)Called on exception.IFuture<E>catchEx(java.util.function.Consumer<? super java.lang.Exception> consumer)Called on exception.IFuture<E>catchEx(java.util.function.Consumer<? super java.lang.Exception> function, java.lang.Class<?> consumer)Called on exception.voiddelegate(Future<E> delegate)Delegate the result and exception to another future.Eget()Get the result - blocking call.Eget(boolean realtime)Get the result - blocking call.Eget(long timeout)Get the result - blocking call.Eget(long timeout, boolean realtime)Get the result - blocking call.Eget(ThreadSuspendable sus)Deprecated.- From 3.0.java.lang.ExceptiongetException()Get the exception, if any.booleanisDone()Test if done, i.e.IFuture<? extends E>then(java.util.function.Consumer<? super E> function)Applies a function after the result is available, using the result of this Future as input.<T> IFuture<T>thenApply(java.util.function.Function<? super E,? extends T> function)Applies a function after the result is available, using the result of this Future as input.<T> IFuture<T>thenApply(java.util.function.Function<? super E,? extends T> function, java.lang.Class<?> futuretype)Applies a function after the result is available, using the result of this Future as input.<T> IFuture<T>thenCompose(java.util.function.Function<? super E,IFuture<T>> function)The result of this future is delegated to the given (future-returning) function.<T> IFuture<T>thenCompose(java.util.function.Function<? super E,IFuture<T>> function, java.lang.Class<?> futuretype)The result of this future is delegated to the given (future-returning) function.
-
-
-
Field Detail
-
DONE
static final IFuture<java.lang.Void> DONE
A future representing a completed action. Can be used as direct return value of methods that do not perform asynchronous operations and do not return a result value.
-
TRUE
static final IFuture<java.lang.Boolean> TRUE
A future representing a true result.
-
FALSE
static final IFuture<java.lang.Boolean> FALSE
A future representing a false result.
-
-
Method Detail
-
isDone
boolean isDone()
Test if done, i.e. result is available.- Returns:
- True, if done.
-
getException
java.lang.Exception getException()
Get the exception, if any.- Returns:
- The exception, if any, or null if the future is not yet done or succeeded without exception.
-
get
E get()
Get the result - blocking call.- Returns:
- The future result.
-
get
E get(boolean realtime)
Get the result - blocking call.- Parameters:
realtime- Flag, if wait should be realtime (in constrast to simulation time).- Returns:
- The future result.
-
get
E get(long timeout)
Get the result - blocking call.- Parameters:
timeout- The timeout in millis.- Returns:
- The future result.
-
get
E get(long timeout, boolean realtime)
Get the result - blocking call.- Parameters:
timeout- The timeout in millis.realtime- Flag, if wait should be realtime (in constrast to simulation time).- Returns:
- The future result.
-
get
E get(ThreadSuspendable sus)
Deprecated.- From 3.0. Use the version without suspendable. Will NOT use the suspendable given as parameter. Get the result - blocking call.- Returns:
- The future result.
-
addResultListener
void addResultListener(IResultListener<E> listener)
Add a result listener.- Parameters:
listener- The listener.
-
then
IFuture<? extends E> then(java.util.function.Consumer<? super E> function)
Applies a function after the result is available, using the result of this Future as input.- Parameters:
function- Function that takes the result of this future as input and delivers t.- Returns:
- Future of the result after the function has been applied.
-
thenApply
<T> IFuture<T> thenApply(java.util.function.Function<? super E,? extends T> function)
Applies a function after the result is available, using the result of this Future as input.- Parameters:
function- Function that takes the result of this future as input and delivers t.- Returns:
- Future of the result after the function has been applied.
-
thenApply
<T> IFuture<T> thenApply(java.util.function.Function<? super E,? extends T> function, java.lang.Class<?> futuretype)
Applies a function after the result is available, using the result of this Future as input.- Parameters:
function- Function that takes the result of this future as input and delivers t.futuretype- The type of the return future.- Returns:
- Future of the result after the function has been applied.
-
thenCompose
<T> IFuture<T> thenCompose(java.util.function.Function<? super E,IFuture<T>> function)
The result of this future is delegated to the given (future-returning) function. The result of the function will be available in the returned future.- Parameters:
function- Function that takes the result of this future as input and delivers future(t).- Returns:
- Future of the result of the second async call.
-
thenCompose
<T> IFuture<T> thenCompose(java.util.function.Function<? super E,IFuture<T>> function, java.lang.Class<?> futuretype)
The result of this future is delegated to the given (future-returning) function. The result of the function will be available in the returned future.- Parameters:
function- Function that takes the result of this future as input and delivers future(t).futuretype- The type of the return future. If null, a default future is created.- Returns:
- Future of the result of the second async call.
-
catchEx
<T> IFuture<E> catchEx(Future<T> delegate)
Called on exception.- Parameters:
delegate- The future the exception will be delegated to.
-
catchEx
IFuture<E> catchEx(java.util.function.Consumer<? super java.lang.Exception> consumer)
Called on exception.- Parameters:
consumer- The function called with the exception.
-
catchEx
IFuture<E> catchEx(java.util.function.Consumer<? super java.lang.Exception> function, java.lang.Class<?> consumer)
Called on exception.- Parameters:
consumer- The function called with the exception.
-
-