Package jadex.commons.future
Class Tuple2Future<E,F>
- java.lang.Object
-
- jadex.commons.future.Future<java.util.Collection<E>>
-
- jadex.commons.future.IntermediateFuture<TupleResult>
-
- jadex.commons.future.Tuple2Future<E,F>
-
- All Implemented Interfaces:
IForwardCommandFuture,IFuture<java.util.Collection<TupleResult>>,IIntermediateFuture<TupleResult>,ITuple2Future<E,F>
public class Tuple2Future<E,F> extends IntermediateFuture<TupleResult> implements ITuple2Future<E,F>
Implementation of tuple2 future. The future is considered as finished when all tuple elements have been set.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jadex.commons.future.IForwardCommandFuture
IForwardCommandFuture.Type
-
-
Field Summary
-
Fields inherited from class jadex.commons.future.IntermediateFuture
icallers, indices, intermediate, maxresultcnt, notcommand, results
-
Fields inherited from class jadex.commons.future.Future
CALLER_QUEUED, CALLER_RESUMED, CALLER_SUSPENDED, callers, creation, DEBUG, exception, first, listeners, NO_STACK_COMPACTION, NONE, NOTIFICATIONS, notificount, notified, result, resultavailable, undone, UNSET
-
Fields inherited from interface jadex.commons.future.IIntermediateFuture
DONE
-
-
Constructor Summary
Constructors Constructor Description Tuple2Future()Create a future that is already done.Tuple2Future(E result1, F result2)Create a future that is already done.Tuple2Future(java.lang.Exception exception)Create a future that is already done (failed).
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected TupleResultfindResult(int idx)Find result in resultsEgetFirstResult()Get the first result.EgetFirstResult(long timeout)Get the first result.EgetFirstResult(long timeout, boolean realtime)Get the first result.EgetFirstResult(ThreadSuspendable sus)Deprecated.- From 3.0.protected intgetMax()Get the number of results of the type of future..FgetSecondResult()Get the second result.FgetSecondResult(long timeout)Get the second result.FgetSecondResult(long timeout, boolean realtime)Get the second result.protected java.lang.ObjectgetXResult(int idx, long timeout, boolean realtime)Get the x result.protected voidnotifyIntermediateResult(IIntermediateResultListener<TupleResult> listener, TupleResult result)Notify a result listener.voidsetFirstResult(E result)Set the result.voidsetFirstResultIfUndone(E result)Set the result.voidsetSecondResult(F result)Set the result.voidsetSecondResultIfUndone(F result)Set the result.protected voidsetXResult(int idx, java.lang.Object res)Set the xth result.protected voidsetXResultIfUndone(int idx, java.lang.Object res)Set the xth result.-
Methods inherited from class jadex.commons.future.IntermediateFuture
addIntermediateResult, addIntermediateResultIfUndone, addResultListener, asStream, asStream, catchEx, delegateEx, doAddIntermediateResult, doGetNextIntermediateResult, done, doSetException, doSetFinished, doSetResult, finished, getIntermediateResults, getNextIntermediateResult, getNextIntermediateResult, getNextIntermediateResult, getNotificationCommand, getResultCount, hasNextIntermediateResult, hasNextIntermediateResult, max, next, resume, resumeIntermediate, scheduleMaxNotification, setFinished, setFinishedIfUndone, setMaxResultCount, storeResult, then
-
Methods inherited from class jadex.commons.future.Future
abortGet, catchEx, catchEx, delegate, doAddResultListener, doStartScheduledNotifications, executeNotification, get, get, get, get, get, getEmptyFuture, getException, getFuture, hasResultListener, isDone, isNotified, scheduleNotification, scheduleNotification, sendForwardCommand, setException, setExceptionIfUndone, setResult, setResultIfUndone, startScheduledNotifications, thenAccept, thenAccept, thenApply, thenApply, thenCombine, thenCompose, thenCompose, throwException
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface jadex.commons.future.IFuture
addResultListener, catchEx, catchEx, catchEx, delegate, get, get, get, get, get, getException, isDone, then, thenApply, thenApply, thenCompose, thenCompose
-
Methods inherited from interface jadex.commons.future.IIntermediateFuture
asStream, asStream, done, finished, getIntermediateResults, getNextIntermediateResult, getNextIntermediateResult, hasNextIntermediateResult, hasNextIntermediateResult, max, next
-
-
-
-
Constructor Detail
-
Tuple2Future
public Tuple2Future()
Create a future that is already done.- Parameters:
result- The result, if any.
-
Tuple2Future
public Tuple2Future(E result1, F result2)
Create a future that is already done.- Parameters:
result- The result, if any.
-
Tuple2Future
public Tuple2Future(java.lang.Exception exception)
Create a future that is already done (failed).- Parameters:
exception- The exception.
-
-
Method Detail
-
getFirstResult
public E getFirstResult(ThreadSuspendable sus)
Deprecated.- From 3.0. Use method without suspendable. Will NOT use the suspendable that is supplied as parameter. Get the first result.- Specified by:
getFirstResultin interfaceITuple2Future<E,F>- Returns:
- The next intermediate result.
-
getFirstResult
public E getFirstResult()
Get the first result.- Specified by:
getFirstResultin interfaceITuple2Future<E,F>- Returns:
- The next intermediate result.
-
getSecondResult
public F getSecondResult()
Get the second result.- Specified by:
getSecondResultin interfaceITuple2Future<E,F>- Returns:
- The next intermediate result.
-
getFirstResult
public E getFirstResult(long timeout)
Get the first result.- Specified by:
getFirstResultin interfaceITuple2Future<E,F>- Parameters:
timeout- The timeout in millis.- Returns:
- The next intermediate result.
-
getSecondResult
public F getSecondResult(long timeout)
Get the second result.- Specified by:
getSecondResultin interfaceITuple2Future<E,F>- Parameters:
timeout- The timeout in millis.- Returns:
- The next intermediate result.
-
getFirstResult
public E getFirstResult(long timeout, boolean realtime)
Get the first result.- Specified by:
getFirstResultin interfaceITuple2Future<E,F>- Parameters:
timeout- The timeout in millis.realtime- Flag if wait should be realtime (in contrast to simulation time).- Returns:
- The next intermediate result.
-
getSecondResult
public F getSecondResult(long timeout, boolean realtime)
Get the second result.- Specified by:
getSecondResultin interfaceITuple2Future<E,F>- Parameters:
timeout- The timeout in millis.realtime- Flag if wait should be realtime (in contrast to simulation time).- Returns:
- The next intermediate result.
-
setFirstResult
public void setFirstResult(E result)
Set the result. Listener notifications occur on calling thread of this method.- Parameters:
result- The result.
-
setSecondResult
public void setSecondResult(F result)
Set the result. Listener notifications occur on calling thread of this method.- Parameters:
result- The result.
-
setFirstResultIfUndone
public void setFirstResultIfUndone(E result)
Set the result. Listener notifications occur on calling thread of this method.- Parameters:
result- The result.
-
setSecondResultIfUndone
public void setSecondResultIfUndone(F result)
Set the result. Listener notifications occur on calling thread of this method.- Parameters:
result- The result.
-
setXResult
protected void setXResult(int idx, java.lang.Object res)Set the xth result.
-
setXResultIfUndone
protected void setXResultIfUndone(int idx, java.lang.Object res)Set the xth result.
-
getXResult
protected java.lang.Object getXResult(int idx, long timeout, boolean realtime)Get the x result.- Returns:
- The next intermediate result.
-
findResult
protected TupleResult findResult(int idx)
Find result in results
-
getMax
protected int getMax()
Get the number of results of the type of future..
-
notifyIntermediateResult
protected void notifyIntermediateResult(IIntermediateResultListener<TupleResult> listener, TupleResult result)
Notify a result listener.- Overrides:
notifyIntermediateResultin classIntermediateFuture<TupleResult>- Parameters:
listener- The listener.
-
-