All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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