ValidationException.java

package no.nav.data.common.exceptions;

import no.nav.data.common.validator.ValidationError;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

@ResponseStatus(HttpStatus.BAD_REQUEST)
public class ValidationException extends RuntimeException {

    private final List<ValidationError> validationErrors;

    public ValidationException(String message) {
        this(Collections.emptyList(), message);
    }

    public ValidationException(List<ValidationError> validationErrors, String message) {
        super(message + (validationErrors.isEmpty() ? "" : " " + validationErrors));
        this.validationErrors = validationErrors;
    }

    public List<ValidationError> get() {
        return validationErrors;
    }

    public ValidationError get(String errorType) {
        return validationErrors.stream().filter(v -> v.getErrorType().equals(errorType)).findFirst().orElse(null);
    }

    public String toErrorString() {
        return validationErrors.stream().map(ValidationError::toString).collect(Collectors.joining(", "));
    }
}