package com.linkedin.parseq.function;
import java.util.NoSuchElementException;
import java.util.Objects;
public class Failure<T> implements Try<T> {
private final Throwable _error;
private Failure(Throwable error) {
_error = error;
}
@Override
public T get() {
throw (NoSuchElementException) new NoSuchElementException().initCause(_error);
}
@Override
public boolean isFailed() {
return true;
}
@Override
public Throwable getError() {
return _error;
}
@Override
public ResultType resultType() {
return ResultType.failure;
}
public static <R> Try<R> of(Throwable t) {
return new Failure<R>(t);
}
@Override
public int hashCode() {
return Objects.hash(_error);
}
@Override
public boolean equals(Object other) {
if (other instanceof Failure) {
Failure<?> that = (Failure<?>) other;
return Objects.equals(this._error, that._error);
} else {
return false;
}
}
@Override
public String toString() {
return "failure(" + _error + ")";
}
}