
io.mstream.trader.commons.utils.Result Maven / Gradle / Ivy
package io.mstream.trader.commons.utils;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import static java.util.Collections.unmodifiableSet;
public class Result {
private final T value;
private final Set errors;
private Result(T value, Set errors) {
this.value = value;
this.errors = errors;
}
public static Result success(T value) {
return new Result<>(value, Collections.emptySet());
}
public static Result failure(Set errors) {
return new Result<>(null, unmodifiableSet(new HashSet<>(errors)));
}
public boolean isSuccessful() {
return errors.isEmpty();
}
public T getValue() {
Preconditions.checkTrue("successful", isSuccessful());
return value;
}
public Set getErrors() {
return errors;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy