/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.utils.common.validation; /** * An Exception indicating a validation failure, usually during initialization of a component. Wraps * a {@link ValidationResult}; if no instance is provided, it is created internally. * * @author Robert Mischke * */ public class ValidationFailureException extends Exception { private static final long serialVersionUID = -6819580978134634141L; private final ValidationResult result; public ValidationFailureException() { result = new ValidationResult(); } public ValidationFailureException(String singleMessage) { result = new ValidationResult(singleMessage); } public ValidationFailureException(ValidationResult resultObject) { this.result = resultObject; } /** * Adds a validation feedback message; see {@link ValidationResult#addMessage(String)}. * * @param message the message text to add */ public void addMessage(String message) { result.addMessage(message); } /** * @return the internal object containing containing the stored messages * * TODO return a thread-safe copy instead? */ public ValidationResult getResultObject() { return result; } @Override public String getMessage() { StringBuilder sb = new StringBuilder(); sb.append("Validation Failure: "); boolean first = true; for (String msg : result.getMessages()) { if (first) { first = false; } else { sb.append(" / "); } sb.append(msg); } return sb.toString(); } }