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

net.optionfactory.problems.Failure Maven / Gradle / Ivy

Go to download

A library to model and collect failures and map them as REST APIs responses

There is a newer version: 2.1
Show newest version
package net.optionfactory.problems;

import java.util.Arrays;
import java.util.List;

public class Failure extends RuntimeException {

    public final List problems;

    public Failure(List problems, Throwable cause) {
        super("problems:" + problems, cause);
        this.problems = problems;
    }

    public Failure(List problems, String reason) {
        super("problems (" + reason + "):" + problems);
        this.problems = problems;
    }

    public Failure(Problem problem, Throwable cause) {
        super("problems:" + Arrays.asList(problem.toString()), cause);
        this.problems = Arrays.asList(problem);
    }

    public Failure(Problem problem, String reason) {
        super("problems (" + reason + "):" + Arrays.asList(problem.toString()));
        this.problems = Arrays.asList(problem);
    }

    public Failure(List problems) {
        super("problems:" + problems.toString());
        this.problems = problems;
    }

    public Failure(Problem problem) {
        super("problems:" + Arrays.asList(problem.toString()));
        this.problems = Arrays.asList(problem);
    }

    public static void enforce(List problems) {
        if (problems.isEmpty()) {
            return;
        }
        throw new Failure(problems);
    }

    public static void enforce(List problems, String reason) {
        if (problems.isEmpty()) {
            return;
        }
        throw new Failure(problems, reason);
    }

    public static void enforce(List problems, Throwable cause) {
        if (problems.isEmpty()) {
            return;
        }
        throw new Failure(problems, cause);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy