Author: tchemit Date: 2009-05-04 01:01:04 +0000 (Mon, 04 May 2009) New Revision: 1376 Modified: jaxx/trunk/jaxx-runtime-validator/changelog.txt jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java Log: add doRevalidate on BeanValidator to validate and update internal states (validate method does not update internal state and should be used in outside...) Modified: jaxx/trunk/jaxx-runtime-validator/changelog.txt =================================================================== --- jaxx/trunk/jaxx-runtime-validator/changelog.txt 2009-05-03 21:10:18 UTC (rev 1375) +++ jaxx/trunk/jaxx-runtime-validator/changelog.txt 2009-05-04 01:01:04 UTC (rev 1376) @@ -1,5 +1,6 @@ 1.5 * 20090503 [chemit] - add a new property collectionFieldName on CollectionFieldExpression validator to be able to validate a collection but not for a collection field + - add doRevalidate on BeanValidator to validate and update internal states (validate method does not update internal state and should be used in outside...) 1.3 chemit 20090409 * 20090404 [chemit] - can now use a shared instance of ValueStack (in BeanValidatorUtil) Modified: jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java =================================================================== --- jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java 2009-05-03 21:10:18 UTC (rev 1375) +++ jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java 2009-05-04 01:01:04 UTC (rev 1376) @@ -83,9 +83,7 @@ @Override public void propertyChange(PropertyChangeEvent evt) { - validate(); - setValid(!hasErrors()); - setChanged(true); + doValidate(); } }; } @@ -308,6 +306,21 @@ } /** + * Methode pour forcer la revalidation d'un bean en mettant a jour les etats + * internes. + * + * La méthode appelle {@link #validate()} puis met à jour les etats internes + * {@link #valid} et {@link #changed}. + * + * @since 1.5 + */ + public void doValidate() { + validate(); + setValid(!hasErrors()); + setChanged(true); + } + + /** * il faut eviter le code re-intrant (durant une validation, une autre est * demandee). Pour cela on fait la validation dans un thread, et tant * que la premiere validation n'est pas fini, on ne repond pas aux @@ -315,6 +328,11 @@ * Cette method est public pour permettre de force une validation par * programmation, ce qui est utile par exemple si le bean ne supporte * pas les {@link PropertyChangeListener} + * + * TODO la methode devra repasser en protected et on preperar utiliser la + * methode {@link #doRevalidate()} car {@link #validate()} ne modifie pas + * les etats internes et cela en rends son utilisation delicate (le + * validateur entre dans un etat incoherent par rapport aux messages envoyés). */ public void validate() {