/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wps.validator; import org.geoserver.wps.WPSException; import org.springframework.validation.Errors; import org.springframework.validation.FieldError; import org.springframework.validation.ObjectError; /** * A WPS exception occurring when validation on a certain input fails * * @author Andrea Aime - GeoSolutions */ public class ValidationException extends WPSException { private static final long serialVersionUID = 1888292623044848453L; private Errors errors; public ValidationException(Errors errors, String locator) { super(buildMessage(errors)); this.locator = locator; this.errors = errors; } private static String buildMessage(Errors errors) { StringBuilder sb = new StringBuilder("Validation failed for input '").append( errors.getObjectName()).append("': "); for (ObjectError error : errors.getGlobalErrors()) { sb.append(error.getDefaultMessage()); sb.append("\n"); } for (FieldError error : errors.getFieldErrors()) { sb.append(error.getField()).append("[").append(error.getDefaultMessage()).append("]"); sb.append("\n"); } sb.setLength(sb.length() - 1); return sb.toString(); } public Errors getErrors() { return errors; } }