package im.actor.runtime.promise; import com.google.j2objc.annotations.ObjectiveCName; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import im.actor.runtime.Log; /** * Object for completing promises * * @param <T> type of resolver */ public class PromiseResolver<T> { private Promise<T> promise; PromiseResolver(Promise<T> promise) { this.promise = promise; } /** * Get Resolver's promise * * @return promise */ @ObjectiveCName("getPromise") public Promise<T> getPromise() { return promise; } /** * Call this to complete promise * * @param res result of promise */ @ObjectiveCName("result:") public void result(@Nullable T res) { promise.result(res); } /** * Trying to complete promise * * @param res result of promise */ @ObjectiveCName("tryResult:") public void tryResult(@Nullable T res) { promise.tryResult(res); } /** * Call this to fail promise * * @param e reason */ @ObjectiveCName("error:") public void error(@NotNull Exception e) { promise.error(e); } /** * Trying to fail promise * * @param e reason */ @ObjectiveCName("tryError:") public void tryError(@NotNull Exception e) { promise.tryError(e); } }