[hibernate-dev] Re: Groups are represented by interfaces

Emmanuel Bernard emmanuel at hibernate.org
Thu Jun 18 10:48:15 EDT 2009

On  Jun 18, 2009, at 09:36, Hardy Ferentschik wrote:

> Hi,
> another question. The spec says that groups are interfaces, but it  
> is not specific about what happens if non interface classes
> are passed to validate:
> 	/**
> 	 * Validates all constraints on object.
> 	 *
> 	 * @param object object to validate
> 	 * @param groups groups targeted for validation
> 	 * (default to {@link javax.validation.groups.Default})
> 	 *
> 	 * @return constraint violations or an empty Set if none
> 	 *
> 	 * @throws IllegalArgumentException if object is null
> 	 * @throws ValidationException	  if a non recoverable error happens
> 	 *                                  during the validation process
> 	 */
> 	<T> Set<ConstraintViolation<T>> validate(T object, Class<?>...  
> groups);
> Should an IllegalArgumentException be thrown if the class is not an  
> interface?

I don't want the spec to limit innovation, That's why the exception  
model is not specified. Some product can support Class groups.

> Related to this:
> "Since sequences cannot have circular dependencies, using Default in  
> the declaration of a sequence is not an op-
> tion. Constraints hosted on a class A and belonging to the Default  
> group (by default or explicitly) implicitly belong
> to the group A."
> Does this imply I should be able to call  
> Validator.validate(aInstance, A.class)? That would violate the  
> statement that
> groups are interfaces. Is group A just a "conceptual" group?

Yes A is a conceptual group.

PS: let's have these discussions on hibernate-dev. People can share  
that and that will be searchable.

> --Hardy

More information about the hibernate-dev mailing list