org.dellroad.stuff.pobj.PersistentObjectValidationException Maven / Gradle / Ivy
/*
* Copyright (C) 2012 Archie L. Cobbs. All rights reserved.
*/
package org.dellroad.stuff.pobj;
import java.util.Set;
import javax.validation.ConstraintViolation;
/**
* Runtime exception thrown during {@link PersistentObject} operations.
*/
@SuppressWarnings("serial")
public class PersistentObjectValidationException extends PersistentObjectException {
private final Set> violations;
/**
* Constructor.
*
* @param root object type
* @param violations set of violations
* @throws IllegalArgumentException if {@code violations} is null
*/
@SuppressWarnings("unchecked")
public PersistentObjectValidationException(Set> violations) {
super(PersistentObjectValidationException.generateMessage(violations));
this.violations = (Set>)(Object)violations;
}
/**
* Get the set of constraint violations.
*
* @return the constraint violations that triggered this exception
*/
public Set> getViolations() {
return this.violations;
}
private static String generateMessage(Set> violations) {
if (violations == null)
throw new IllegalArgumentException("null violations");
StringBuilder buf = new StringBuilder("object failed to validate with " + violations.size() + " violation(s):\n");
for (ConstraintViolation violation : violations) {
buf.append(" [")
.append(violation.getPropertyPath())
.append("]: ")
.append(violation.getMessage())
.append('\n');
}
return buf.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy