package com.tresorit.zerokit.call;
public abstract class CallAsyncBase<T, S> implements CallAsync<T, S> {
@Override
public final void enqueue() {
enqueue(new Callback<T, S>() {
@Override
public void onError(S e) {
}
@Override
public void onSuccess(T result) {
}
});
}
@Override
public final void enqueue(final Action<? super T> onSuccess) {
if (onSuccess == null) {
throw new IllegalArgumentException("onSuccess can not be null");
}
enqueue(new Callback<T, S>() {
@Override
public void onError(S e) {
}
@Override
public void onSuccess(T result) {
onSuccess.call(result);
}
});
}
@Override
public final void enqueue(final Action<? super T> onSuccess, final Action<? super S> onFail) {
if (onSuccess == null) {
throw new IllegalArgumentException("onNext can not be null");
}
if (onFail == null) {
throw new IllegalArgumentException("onError can not be null");
}
enqueue(new Callback<T, S>() {
@Override
public void onError(S e) {
onFail.call(e);
}
@Override
public void onSuccess(T result) {
onSuccess.call(result);
}
});
}
}