[bv-dev] Container element validation for arrays

Emmanuel Bernard emmanuel at hibernate.org
Wed Apr 19 07:46:21 EDT 2017


What you are inferring is that the JLS made an incompatible move right?
Because before Java 8, @Size(max=5) String[] was meant to be applied on
the array right?

Anyways, I don't think that would be a massive loss to lose array
support but my background is biased toward preferring collections.

Emmanuel

On Wed 17-04-19 10:27, Gunnar Morling wrote:
>Hi,
>
>Guillaume made an important observation concerning the validation of
>array elements. So far we envisioned to support this:
>
>    String @Email [] emails;
>
>That looks nice (provided that @Email supports TYPE_USE), only that
>it's getting semantics of type annotations for arrays wrong.
>
>As per the JLS [1], the @Email annotation here applies to the array
>type String[], not the component type String. This example from the
>JLS clarifies the intent:
>
>    @C int @A [] @B [] f;
>
>    "@A applies to the array type int[][], @B applies to its component
>type int[],
>    and @C applies to the element type int."
>
>So according to that, our example would have to be:
>
>    @Email String[] emails;
>
>But obviously this conflicts with the existing semantics of applying
>constraints to arrays (not their elements) in BV 1.1.
>
>So based on that, I don't see a good way for supporting container
>element constraints for arrays. Hence my suggestion is to not support
>them in the BV 2.0 spec (the validation of container elements of
>generic containers - List<@Email String> - is not affected). Specific
>implementations may explore ways around it (e.g. specifying the target
>via payload()) and we may revisit it in 2.1.
>
>Any thoughts?
>
>--Gunnar
>
>[1] https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.7.4
>_______________________________________________
>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