Author: tchemit Date: 2010-08-29 08:57:46 +0200 (Sun, 29 Aug 2010) New Revision: 2044 Url: http://nuiton.org/repositories/revision/jaxx/2044 Log: Anomalie #826: Validators does not translate error message for none trim message + reformat and clean api Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidator.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorEvent.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorField.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorMessage.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorUtil.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/XWorkBeanValidator.java Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidator.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidator.java 2010-08-29 06:54:32 UTC (rev 2043) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidator.java 2010-08-29 06:57:46 UTC (rev 2044) @@ -31,9 +31,21 @@ import org.nuiton.util.converter.ConverterUtil; import javax.swing.event.EventListenerList; -import java.beans.*; -import java.util.*; +import java.beans.EventSetDescriptor; +import java.beans.Introspector; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import java.util.ArrayList; +import java.util.Collections; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; +import java.util.TreeMap; /** * A customized validator for a given bean. @@ -410,12 +422,12 @@ * programmation, ce qui est utile par exemple si le bean ne supporte pas * les {@link PropertyChangeListener} * <p/> - * TODO la methode devra repasser en protected et on utilise la methode - * {@link #doValidate()} car {@link #validate()} ne modifie pas les etats + * <b>Note:</b> la methode est protected et on utilise la methode + * {@link #doValidate()} car la méthode ne modifie pas les etats * internes et cela en rend son utilisation delicate (le validateur entre * dans un etat incoherent par rapport aux messages envoyés). */ - public void validate() { + protected void validate() { // on ne valide que si il y a un bean et que le resultat de la validation // pourra etre affiche quelque part @@ -441,7 +453,7 @@ errors.add(conversionError); } else { errors = Collections.singletonList(conversionError); - if (newMessages == XWorkBeanValidator.EMPTY_RESULT) { + if (XWorkBeanValidator.EMPTY_RESULT.equals(newMessages)) { newMessages = new HashMap<String, List<String>>(); } // add the concrete conversion error @@ -535,7 +547,7 @@ } } - protected synchronized void initFields() { + protected void initFields() { Set<String> detectedFieldNames = new HashSet<String>(); EnumMap<BeanValidatorScope, Set<String>> tmp; Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorEvent.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorEvent.java 2010-08-29 06:54:32 UTC (rev 2043) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorEvent.java 2010-08-29 06:57:46 UTC (rev 2044) @@ -38,14 +38,14 @@ private static final long serialVersionUID = 1L; /** the field impacted by the validator */ - BeanValidatorField<?> field; + protected BeanValidatorField<?> field; /** the scope impacted by the event */ - BeanValidatorScope scope; + protected BeanValidatorScope scope; - String[] messagestoAdd; + protected String[] messagestoAdd; - String[] messagestoDelete; + protected String[] messagestoDelete; public BeanValidatorEvent(BeanValidator<?> source, BeanValidatorField<?> field, Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorField.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorField.java 2010-08-29 06:54:32 UTC (rev 2043) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorField.java 2010-08-29 06:57:46 UTC (rev 2044) @@ -26,6 +26,7 @@ import com.opensymphony.xwork2.validator.FieldValidator; +import java.io.Serializable; import java.util.*; import static org.nuiton.i18n.I18n._; @@ -45,8 +46,10 @@ * validation. * @since 1.3 */ -public class BeanValidatorField<B> { +public class BeanValidatorField<B> implements Serializable{ + private static final long serialVersionUID = 1L; + /** the class of bean */ protected final Class<B> beanClass; @@ -201,7 +204,7 @@ } public String getI18nError(String error) { - String text; + String text; if (!error.contains("##")) { text = _(error); } else { Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorMessage.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorMessage.java 2010-08-29 06:54:32 UTC (rev 2043) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorMessage.java 2010-08-29 06:57:46 UTC (rev 2044) @@ -52,7 +52,7 @@ BeanValidatorScope scope) { this.field = field; this.validator = validator; - this.message = message; + this.message = message == null ? null : message.trim(); this.scope = scope; } Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorUtil.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorUtil.java 2010-08-29 06:54:32 UTC (rev 2043) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorUtil.java 2010-08-29 06:57:46 UTC (rev 2044) @@ -56,7 +56,7 @@ */ static private ValueStack sharedValueStack; - public static synchronized ValueStack getSharedValueStack() { + public static ValueStack getSharedValueStack() { if (sharedValueStack == null) { // init context Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/XWorkBeanValidator.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/XWorkBeanValidator.java 2010-08-29 06:54:32 UTC (rev 2043) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/XWorkBeanValidator.java 2010-08-29 06:57:46 UTC (rev 2044) @@ -232,6 +232,7 @@ validationContext.getFieldErrors()); } + // retreave errors by field if (validationContext.hasFieldErrors()) { Map<?, ?> messages = validationContext.getFieldErrors(); result = new HashMap<String, List<String>>(messages.size()); @@ -240,7 +241,10 @@ (Collection<?>) messages.get(fieldName); List<String> mm = new ArrayList<String>(c.size()); for (Object message : c) { - mm.add(message + ""); + // tchemit 2010-08-28 : trim the incoming message + // (I18n will not translate it otherwise) + String messageStr = message == null ? "" : message + ""; + mm.add(messageStr.trim()); } result.put(fieldName + "", mm); } @@ -266,7 +270,7 @@ } /** update the property {@link #fieldNames}, says search in XWorks */ - protected synchronized void initFields() { + protected void initFields() { if (fieldNames != null) { fieldNames = null;
participants (1)
-
tchemit@users.nuiton.org