package com.framsticks.util.dispatching; public abstract class WrappedFuture extends Future { public abstract T process(T result); protected Future future; public WrappedFuture(Future future) { super(future); this.future = future; } @Override protected void result(T result) { T processed; processed = process(result); if (future != null) { future.pass(processed); } } public Future move() { assert future != null; Future result = future; future = null; return result; } }