2013/1/15 Emmanuel Bernard <emmanuel(a)hibernate.org>
I can live with that but we must make it crystal clear that in case
of
ambiguity, we raise an exception. Otherwise, someone changing the method
sig might have some nasty surprises.
And which of the options
@CrossParameterConstraint(validatedBy=MyCrossParameterValidator.class)
@Constraint(validatedBy=MyGenericValidator.class)
public @interface MyConstraint { ... }
vs.
@Constraint(
validatedBy=MyGenericValidator.class,
crossParameterValidatorType=MyCrossParameterValidator.class
)
public @interface MyConstraint { ... }
would you prefer?
Personally I'd lean towards the latter, since there would be exactly one
meta-annotation denoting an annotation as constraint annotation type, with
all attributes for the required configuration.
If following the 2nd approach, we should IMO add a default clause to
validatedBy() (set to the empty array), allowing for
the convenient definition of cross-parameter only constraints. According to
[1] this change would be binary-compatible.
But this is no strong preference, I could also live with the two separate
annotations.
--Gunnar
[1]
http://wiki.eclipse.org/Evolving_Java-based_APIs_2#Evolving_API_interface...