ddf.catalog.validation.ValidationException.java Source code

Java tutorial

Introduction

Here is the source code for ddf.catalog.validation.ValidationException.java

Source

/**
 * Copyright (c) Codice Foundation
 *
 * <p>This is free software: you can redistribute it and/or modify it under the terms of the GNU
 * Lesser General Public License as published by the Free Software Foundation, either version 3 of
 * the License, or any later version.
 *
 * <p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public
 * License is distributed along with this program and can be found at
 * <http://www.gnu.org/licenses/lgpl.html>.
 */
package ddf.catalog.validation;

import java.util.List;
import org.apache.commons.collections.CollectionUtils;

/**
 * Thrown to indicate that a validation operation could not be completed. Provides information in
 * the form of a summary message, a list of error messages, and a list of warnings.
 *
 * @author Michael Menousek
 * @author Shaun Morris
 * @author Ashraf Barakat
 */
public abstract class ValidationException extends Exception {

    private static final long serialVersionUID = 1L;

    /** Constructs a {@code ValidationException} with no detailed message. */
    public ValidationException() {
        super();
    }

    /**
     * Constructs a {@code ValidationException} with a specified summary message of the failure.
     *
     * @param summaryMessage summarizes why the validation operation failed
     */
    public ValidationException(String summaryMessage) {
        super(summaryMessage);
    }

    /**
     * Constructs a {@code ValidationException} with a cause of the failure.
     *
     * @param cause the cause of why the validation operation failed
     */
    public ValidationException(Throwable cause) {
        super(cause);
    }

    /**
     * Constructs a {@code ValidationException} with a specified summary message and cause of the
     * failure.
     *
     * @param summaryMessage summarizes why the validation operation failed
     * @param cause the cause of why the validation operation failed
     */
    public ValidationException(String summaryMessage, Throwable cause) {
        super(summaryMessage, cause);
    }

    /**
     * @return a list of all error messages that have caused validation to fail. The error message
     *     should be human-readable plain text.
     */
    public abstract List<String> getErrors();

    /**
     * @return a list of warning messages. Warning messages are issues that arose during validation
     *     but did not cause validation to fail. A warning message should be human-readable plain
     *     text.
     */
    public abstract List<String> getWarnings();

    /**
     * Converts this exception into a String representation.
     *
     * @return a human-readable form of this exception
     */
    @Override
    public String toString() {
        StringBuilder messageBuilder = new StringBuilder(super.toString());

        List<String> errors = getErrors();
        if (CollectionUtils.isNotEmpty(errors)) {
            messageBuilder.append(":ERRORS");
            for (String error : errors) {
                messageBuilder.append(":");
                messageBuilder.append(error);
            }
        }

        List<String> warnings = getWarnings();
        if (CollectionUtils.isNotEmpty(warnings)) {
            messageBuilder.append(":WARNINGS");
            for (String warning : warnings) {
                messageBuilder.append(":");
                messageBuilder.append(warning);
            }
        }

        return messageBuilder.toString();
    }
}