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

org.openapitools.codegen.SpecValidationException Maven / Gradle / Ivy

There is a newer version: 7.7.0
Show newest version
package org.openapitools.codegen;

import java.util.Set;

public class SpecValidationException extends RuntimeException {

    private Set errors;
    private Set warnings;

    /**
     * Constructs a new runtime exception with {@code null} as its
     * detail message.  The cause is not initialized, and may subsequently be
     * initialized by a call to {@link #initCause}.
     */
    public SpecValidationException() {
    }

    /**
     * Constructs a new runtime exception with the specified detail message.
     * The cause is not initialized, and may subsequently be initialized by a
     * call to {@link #initCause}.
     *
     * @param message the detail message. The detail message is saved for
     *                later retrieval by the {@link #getMessage()} method.
     */
    public SpecValidationException(String message) {
        super(message);
    }

    /**
     * Constructs a new runtime exception with the specified detail message and
     * cause.  

Note that the detail message associated with * {@code cause} is not automatically incorporated in * this runtime exception's detail message. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the * {@link #getCause()} method). (A null value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.4 */ public SpecValidationException(String message, Throwable cause) { super(message, cause); } /** * Constructs a new runtime exception with the specified cause and a * detail message of (cause==null ? null : cause.toString()) * (which typically contains the class and detail message of * cause). This constructor is useful for runtime exceptions * that are little more than wrappers for other throwables. * * @param cause the cause (which is saved for later retrieval by the * {@link #getCause()} method). (A null value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.4 */ public SpecValidationException(Throwable cause) { super(cause); } /** * Constructs a new runtime exception with the specified detail * message, cause, suppression enabled or disabled, and writable * stack trace enabled or disabled. * * @param message the detail message. * @param cause the cause. (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @param enableSuppression whether or not suppression is enabled * or disabled * @param writableStackTrace whether or not the stack trace should * be writable * @since 1.7 */ public SpecValidationException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } public Set getErrors() { return errors; } public Set getWarnings() { return warnings; } public void setErrors(Set errors) { this.errors = errors; } public void setWarnings(Set warnings) { this.warnings = warnings; } /** * Returns the detail message string of this throwable. * * @return the detail message string of this {@code Throwable} instance * (which may be {@code null}). */ @Override public String getMessage() { int errorCount = 0; if (errors != null) { errorCount = errors.size(); } int warningCount = 0; if (warnings != null) { warningCount = warnings.size(); } StringBuilder sb = new StringBuilder(); sb.append(System.lineSeparator()) .append("Errors: ") .append(System.lineSeparator()); errors.forEach(msg -> sb.append("\t-").append(msg).append(System.lineSeparator()) ); if (!warnings.isEmpty()) { sb.append("Warnings: ").append(System.lineSeparator()); warnings.forEach(msg -> sb.append("\t-").append(msg).append(System.lineSeparator()) ); } return super.getMessage() + " | " + "Error count: " + errorCount + ", Warning count: " + warningCount + sb.toString(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy