package com.netflix.schlep;
import rx.util.functions.Func2;
import com.netflix.schlep.consumer.IncomingMessage;
public class Completion<T> {
private final T value;
private Throwable error;
public static class SelectFirst implements Func2<Completion<IncomingMessage>, Completion<IncomingMessage>, Completion<IncomingMessage>> {
@Override
public Completion<IncomingMessage> call(Completion<IncomingMessage> reply1, Completion<IncomingMessage> reply2) {
return reply1;
}
public static SelectFirst instance = new SelectFirst();
public static SelectFirst get() {
return instance;
}
}
public static <T> Completion<T> from(T message) {
return new Completion<T>(message);
}
public Completion(T value) {
this.value = value;
}
public T getValue() {
return value;
}
public Throwable getError() {
return error;
}
public void setError(Throwable error) {
this.error = error;
}
public boolean hasError() {
return error != null;
}
public String toString() {
return new StringBuilder().append("Completion[").append(value).append("]").toString();
}
}