[hibernate-issues] [Hibernate-JIRA] Updated: (BVAL-198) Simplify creation of ConstraintViolationExceptions
Emmanuel Bernard (JIRA)
noreply at atlassian.com
Tue Feb 2 04:18:36 EST 2010
[ http://opensource.atlassian.com/projects/hibernate/browse/BVAL-198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Emmanuel Bernard updated BVAL-198:
----------------------------------
Affects Version/s: (was: 1.1)
1.0 final
> Simplify creation of ConstraintViolationExceptions
> --------------------------------------------------
>
> Key: BVAL-198
> URL: http://opensource.atlassian.com/projects/hibernate/browse/BVAL-198
> Project: Bean Validation
> Issue Type: Improvement
> Components: spec-general
> Affects Versions: 1.0 final
> Reporter: Gunnar Morling
>
> javax.validation.ConstraintViolationException wraps a set of constraint violations, currently in the following form:
> Set<ConstraintViolation<?>> constraintViolations
> As the exception's constructors have a parameter of the same type, instantiating it is not as easy as expected:
> Validator validator = ...;
> DomainObject domainObject = new DomainObject();
> Set<ConstraintViolation<DomainObject>> constraintViolations = validator.validate(domainObject);
> //compiler error: ("The constructor ConstraintViolationException(Set<ConstraintViolation<DomainObject>>) is undefined")
> throw new ConstraintViolationException(constraintViolations);
> //this works
> throw new ConstraintViolationException(new HashSet<ConstraintViolation<?>>(constraintViolations));
> This problem can be solved by changing the collection type to
> Set<? extends ConstraintViolation<?>>
> The exception then would read as follows:
> public class ConstraintViolationException extends ValidationException {
> private final Set<? extends ConstraintViolation<?>> constraintViolations;
> public ConstraintViolationException(String message, Set<? extends ConstraintViolation<?>> constraintViolations) {
> super( message );
> this.constraintViolations = constraintViolations;
> }
> public ConstraintViolationException(Set<? extends ConstraintViolation<?>> constraintViolations) {
> super();
> this.constraintViolations = constraintViolations;
> }
> public Set<ConstraintViolation<?>> getConstraintViolations() {
> return new HashSet<ConstraintViolation<?>>(constraintViolations);
> }
> }
> This makes the exception easier to use for producers, while maintaining simplicity for clients (since getConstraintViolations() still returns a Set<ConstraintViolation<?>>, clients don't have to do deal with the bound wildcard expression).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list