@Override public void onComplete(Object result) { try { handler.onComplete(result); } finally { closeConnection(); } }
public void onComplete(T result) { handler.onComplete(result); }
public void forwardResults(ResultHandler<? super T> handler) { if (this.failure == null) { handler.onComplete(this.result); } else { handler.onFailure(this.failure); } } }
@Override @SuppressWarnings("unchecked") public void run(ResultHandler<? super T> handler) throws IllegalStateException { Object cachedValue = this.cacheKey.isInvalid() ? null : this.cache.getIfPresent(this.cacheKey); if (cachedValue != null) { handler.onComplete((T) cachedValue); } else { InspectableResultHandler<T> inspectableResultHandler = new InspectableResultHandler<>(); this.delegate.run(inspectableResultHandler); inspectableResultHandler.getResult().ifPresent(r -> this.cache.put(this.cacheKey, r)); inspectableResultHandler.forwardResults(handler); } } }
@Override @SuppressWarnings("unchecked") public void get(ResultHandler<? super T> handler) throws IllegalStateException { Object cachedValue = this.cacheKey.isInvalid() ? null : this.cache.getIfPresent(this.cacheKey); if (cachedValue != null) { handler.onComplete((T) cachedValue); } else { InspectableResultHandler<T> inspectableResultHandler = new InspectableResultHandler<>(); this.delegate.get(inspectableResultHandler); inspectableResultHandler.getResult().ifPresent(r -> this.cache.put(this.cacheKey, r)); inspectableResultHandler.forwardResults(handler); } } }