[bv-dev] @Valid and group translation
Emmanuel Bernard
emmanuel at hibernate.org
Thu Nov 22 12:11:48 EST 2012
I don't have any strong opinion. I slightly tend to like the existing
syntax which avoids some of the visual ugliness if one group rule is
defined but that's only a small advantage.
Emmanuel
On Thu 2012-11-22 16:45, Gunnar Morling wrote:
> Hi all,
>
> I'm looking for some input on an idea I got regarding group translation.
>
> When discussing the issue [1] we agreed that the groups to be converted
> should be specified with a new annotation instead of directly within
> @Valid. So that's what we have right now:
>
> public class User {
>
> @Valid
> @ConvertGroup(from = Default.class, to = BasicContact.class)
> private final Contact contact = new Contact();
> }
>
> IIRC the primary reason was that this new annotation could be re-used in
> other places. IMO having a separate annotation is the right way, but WDYT
> about specifying this annotation within instead of next to @Valid:
>
> @Valid(conversions=
> @ConvertGroup(from = Default.class, to = BasicContact.class
> )
> private final Contact contact = new Contact();
>
> This would still allow to reuse the annotation, but avoids situations where
> @ConvertGroup is given without @Valid. It also makes very clear what's
> subject of the conversion (which might not be that obvious if the given
> element hosts some more annotations).
>
> On the down-side the "inner" annotation syntax is not that elegant,
> although it's actually shorter when specifying multiple conversions:
>
> @Valid(conversions={
> @ConvertGroup(from = Default.class, to = BasicContact.class),
> @ConvertGroup(from = Full.class, to = FullContact.class)
> })
> private final Contact contact = new Contact();
>
> vs.
>
> @Valid
> @ConvertGroup.List({
> @ConvertGroup(from = Default.class, to = BasicContact.class),
> @ConvertGroup(from = Full.class, to = FullContact.class)
> })
> private final Contact contact = new Contact();
>
> This could be further mitigated by naming the attribute "value", although
> I'm a bit shy of allocating that default attribute.
>
> If we already discussed (and rejected) this particular approach, please
> ignore this mail, otherwise any feedback is appreciated :)
>
> --Gunnar
>
> [1] https://hibernate.onjira.com/browse/BVAL-208
> _______________________________________________
> beanvalidation-dev mailing list
> beanvalidation-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev
More information about the beanvalidation-dev
mailing list