I'd put it at the same place as the boolean parameter in Emmanuel's prototype: when creating the ValidatorFactor/Validator (e.g. inHibernateValidatorConfiguration). So "parameter" was not meant as in "method parameter" but more as in "configuration attribute" :-)
2010/10/5 Hardy Ferentschik <hibern...@ferentschik.de> > 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