Hi,

On 6 févr. 2011, at 20:57, Gunnar Morling wrote:

> 
> one other issue we might/should deliver for Beta2 is 
> http://opensource.atlassian.com/projects/hibernate/browse/HV-371 ("Support 
> method-level constraints in meta-data API"), at least API-wise. I pushed a 
> first draft to 
> https://github.com/gunnarmorling/hibernate-validator/tree/HV-371 and would be 
> happy on your feedback.
> 
> With some exceptions this is pretty similar to what is suggested in Appendix 
> C. As we can't alter the BeanDescriptor type, I created a new type 
> TypeDescriptor (I think the name is better anyways, as constraints are no 
> longer restricted to bean-style types with the advent of method validation). 
> This type resembles BeanDescriptor (it doesn't inherit for the naming reason 
> but I would let me convince if you think it should) and is returned by 
> MethodValidator#getConstraintsForType(). 

It seems that in the grand scheme of BV 1.1, we would put all your methods back 
on BeanDescription without necessarily adding a new type. I initially thought 
of adding TypeDescriptor as a superclass of BeanDescriptor but the idea of 
having the noting of properties on TypeDescriptor felt wrong (in Java).
WDYT?
If we all agree then that means TypeDescriptor is really a (temporary) subclass 
of BeanDescriptor

> 
> Anything else is pretty much straight forward. Currently it is not possible 
> to determine from which exact method version in a hierarchy a certain 
> constraint originates (using the ConstraintFinder API one can only find out, 
> whether a constraint is defined locally or *somewhere* up in the hierarchy). 
> Do you think this would be needed? I think, the same restriction holds for 
> the existing property descriptor API.

I've always envisioned that one in need to find where a constraint was exactly 
would use a combination of lookingAt(LOCAL_ELEMENT) and clazz.getSuperclass().
What would be the use case for reaching the exact method straight?

> 
> The existing methods (getElementClass(), getConstraintDescriptors() etc.) on 
> ElementDescriptor all seem to make sense for the new descriptor types. For 
> MethodDescriptor they should relate to the return value type/constraints, for 
> ParameterDescriptor to the parameter type/constraints.

yep.

> 
> WDYT, should we ship this as API in Beta2 for public review and implement it 
> with the next milestone? I'm also CC-ing Emmanuel as I think he originally 
> wrote Appendix C.

Fine by me, it's up to you guys. The design is very much inline with the 
original design of Bean Validation.

BTW
MethodDescriptor#getMethod
why is it required? I think we've discussed that but I forgot.
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to