oops reading Gunnar's answer, I'm probably answer the wrong question :) On 5 oct. 2010, at 17:23, Emmanuel Bernard wrote:
> public doStuff(@Param("name") String name, @Param("command") Object command) { > ... > } > > On 5 oct. 2010, at 16:07, Hardy Ferentschik wrote: > >> Where exactly do you want to add the parameter? To the >> Validator.validateXYZ() methods? >> >> >> On Tue, 05 Oct 2010 15:54:10 +0200, Gunnar Morling >> <gunnar.morl...@googlemail.com> wrote: >> >>> Hi, >>> >>> a use case might be a data-centric application, where you for performance >>> reasons don't want to validate graphs completely once a failure occured, but >>> don't want to face the user with single validation errors one after the >>> other either. >>> >>> Specifying the validation order would surely be useful. But I wouldn't tie >>> these things together. I suggest to introduce a numeric parameter and for a >>> start either make clear that the validation order is not specified or only >>> support values 0 (don't stop on first error) and 1 (= failFast). Later on, >>> if validation order is spec'd, other values than these could easily be >>> supported. If we now introduce a boolean parameter, the API would be >>> somewhat "polluted" if we come up with a numeric parameter later on. Then we >>> either had two parameters (leaving space for inconsistent configurations) or >>> had to remove the boolean parameter again. >>> >>> Gunnar >>> >>> >>> 2010/10/4 Emmanuel Bernard <emman...@hibernate.org> >>> >>>> Ive been toying with the number idea while talking with Max. >>>> Im not sure what use case that solves provided the highly unpredictable >>>> nature of what's get returned. >>>> >>>> It might be more useful and get a usecase if we spec what gets returned >>>> roughly. Like deep-last algorithm etc. >>>> >>>> >>>> >>>> On 4 oct. 2010, at 22:17, Gunnar Morling <gunnar.morl...@googlemail.com> >>>> wrote: >>>> >>>> Hi, >>>> >>>> I like the idea. Emmanuel's performance test showed an execution time per >>>> validation of 11 vs. 74 ms on my system, so there seems to be some >>>> potential. Instead of having a "failFast" flag one could also introduce a >>>> numeric parameter to control, when validation should stop. A value of "1" >>>> would be equal to the flag being true, but one could also decide to stop >>>> just after 3 validation errors for instance. >>>> >>>> Gunnar >>>> >>>> >>>> 2010/10/4 Emmanuel Bernard < <emman...@hibernate.org> >>>> emman...@hibernate.org> >>>> >>>>> That or slowish validations. >>>>> >>>>> One typical use case is that: >>>>> >>>>> if ( validator.validate(customer, StraightToValidationScreen.class).size() >>>>>> 0 ) { >>>>> //manual process >>>>> } >>>>> else { >>>>> //automatic process >>>>> } >>>>> >>>>> BTW, I've committed a non scientific perf test that shows an average of 5x >>>>> perf improvement on an object graph of 5 object (one master and 4 >>>>> children) >>>>> and 4 constraints on A and 3 on B. Around 22ms vs 120 ms. (log4j logs set >>>>> to >>>>> ERROR). The perf change is visible even on smallish graphs. >>>>> >>>>> It can be worthwhile. >>>>> >>>>> On 4 oct. 2010, at 16:20, Hardy Ferentschik wrote: >>>>> >>>>>> What would be the usecase? Saving time in large object graphs where I am >>>>> only interested in whether there is a >>>>>> failure at all? You really need LARGE object graphs to make this worth >>>>> while. >>>>>> >>>>>> >>>>>> On Mon, 04 Oct 2010 15:45:34 +0200, Emmanuel Bernard >>>>>> <<emman...@hibernate.org> >>>>> emman...@hibernate.org> wrote: >>>>>> >>>>>>> >>>>> <http://github.com/emmanuelbernard/hibernate-validator/commits/failFast> >>>>> http://github.com/emmanuelbernard/hibernate-validator/commits/failFast >>>>>>> >>>>>>> What do you guys think? >>>>>>> >>>>>>> The idea is to stop a the first failure. >>>>>>> You can enable that : >>>>>>> - by property >>>>>>> - at config time >>>>>>> - when the Validator is created >>>>>>> >>>>>>> Look at >>>>>>> >>>>> <http://github.com/emmanuelbernard/hibernate-validator/blob/failFast/hibernate-validator/src/test/java/org/hibernate/validator/test/engine/failFast/FailFastTest.java> >>>>> http://github.com/emmanuelbernard/hibernate-validator/blob/failFast/hibernate-validator/src/test/java/org/hibernate/validator/test/engine/failFast/FailFastTest.java >>>>>>> for code examples. >>>>>>> >>>>>>> Emmanuel >>>>>>> >>>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> hibernate-dev mailing list >>>>> <hibernate-dev@lists.jboss.org>hibernate-dev@lists.jboss.org >>>>> <https://lists.jboss.org/mailman/listinfo/hibernate-dev> >>>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev >>>>> >>>> >>>> >> > > > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev