/** * Add an intermediate result. */ public void addIntermediateResult(E result) { doAddIntermediateResult(result, false); resumeIntermediate(); startScheduledNotifications(); } /**
/** * Set the result. * Listener notifications occur on calling thread of this method. * @param result The result. * @return True if result was set. */ public boolean addIntermediateResultIfUndone(E result) { boolean ret = doAddIntermediateResult(result, true); if(ret) { resumeIntermediate(); startScheduledNotifications(); } return ret; }
/** * Overwritten to change result, if necessary. */ @Override protected boolean doAddIntermediateResult(Object result, boolean undone) { try { result = func.handleIntermediateResult(result); return DelegatingIntermediateFuture.super.doAddIntermediateResult(result, func.isUndone(undone)); } catch(Exception e) { return doSetException(e, func.isUndone(undone)); } }