class SimpleFutureListener<V> implements FutureListener<V> {

    @Override
    public final void operationComplete(Future<V> future) throws Exception {<FILL_FUNCTION_BODY>}

    protected abstract void onSuccess(V value) throws Exception;

    protected abstract void onFailure(Throwable t) throws Exception;
}

        if (future.isSuccess()) {
            onSuccess(future.getNow());
        } else {
            onFailure(future.cause());
        }
    
<no_super_class>