You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Niall Pemberton (JIRA)" <ji...@apache.org> on 2006/07/19 15:42:14 UTC

[jira] Resolved: (VALIDATOR-177) Indexed field validation patch

     [ http://issues.apache.org/jira/browse/VALIDATOR-177?page=all ]

Niall Pemberton resolved VALIDATOR-177.
---------------------------------------

    Resolution: Invalid

Re-openned and the set to "Resolved Invalid" again to correct "resolution" which was lost in Bugzilla --> JIRA conversion

> Indexed field validation patch
> ------------------------------
>
>                 Key: VALIDATOR-177
>                 URL: http://issues.apache.org/jira/browse/VALIDATOR-177
>             Project: Commons Validator
>          Issue Type: Improvement
>    Affects Versions: Nightly Builds
>         Environment: Operating System: All
> Platform: All
>            Reporter: Jose Quinteiro
>            Priority: Minor
>
> I need indexed field validation for my application.  I've started to work on it
> and realized it's quite a large project.  This is what I've got so far.  I still
> need to change validation-rules.xml to work with these changes, but this code
> generates field names for indexed properties.
> Comments? Suggestions?  Am I even on the right path?
> ? validator/validator.patch
> ? validator/src/share/validator.patch
> Index: validator/src/share/org/apache/commons/validator/Field.java
> ===================================================================
> RCS file:
> /home/cvspublic/jakarta-commons/validator/src/share/org/apache/commons/validator/Field.java,v
> retrieving revision 1.5
> diff -u -3 -p -r1.5 Field.java
> --- validator/src/share/org/apache/commons/validator/Field.java	30 Mar 2002 04:33:17 -0000	1.5
> +++ validator/src/share/org/apache/commons/validator/Field.java	3 May 2002 16:56:26 -0000
> @@ -68,11 +68,11 @@ import java.util.Collections;
>  import java.util.Iterator;
>  import java.util.Map;
>  import java.util.StringTokenizer;
> -import org.apache.commons.collections.FastHashMap; 
> +import org.apache.commons.collections.FastHashMap;
>  
>  
>  /**
> - * <p>This contains the list of pluggable validators to 
> + * <p>This contains the list of pluggable validators to
>   * run on a field and any message information and variables
>   * to perform the validations and generate error messages.</p>
>   *
> @@ -83,7 +83,7 @@ import org.apache.commons.collections.Fa
>  public class Field implements Cloneable, Serializable {
>  
>      /**
> -     * This is the value that will be used as a key if the <code>Arg</code> 
> +     * This is the value that will be used as a key if the <code>Arg</code>
>       * name field has no value.
>      */
>      public final static String ARG_DEFAULT =
> "org.apache.commons.validator.Field.DEFAULT";
> @@ -100,6 +100,7 @@ public class Field implements Cloneable,
>      protected String property = null;
>      protected String indexedProperty = null;
>      protected String indexedListProperty = null;
> +
> protected String iteratorName = null;
>      protected String key = null;
>      protected String depends = null;
>      protected int page = 0;
> @@ -115,26 +116,26 @@ public class Field implements Cloneable,
>  
>  
>      /**
> -     * Gets the page value that the Field is associated with for 
> +     * Gets the page value that the Field is associated with for
>       * validation.
>      */
>      public int getPage() {
> -       return page;	
> +       return page;
>      }
>  
>      /**
> -     * Sets the page value that the Field is associated with for 
> +     * Sets the page value that the Field is associated with for
>       * validation.
>      */
>      public void setPage(int page) {
> -       this.page = page;	
> +       this.page = page;
>      }
>  
>      /**
>       * Gets the position of the <code>Field</code> in the validation list.
>      */
>      public int getFieldOrder() {
> -       return fieldOrder;	
> +       return fieldOrder;
>      }
>  
>  
> @@ -142,7 +143,7 @@ public class Field implements Cloneable,
>       * Sets the position of the <code>Field</code> in the validation list.
>      */
>      public void setFieldOrder(int fieldOrder) {
> -       this.fieldOrder = fieldOrder;	
> +       this.fieldOrder = fieldOrder;
>      }
>      
>     
> @@ -150,7 +151,7 @@ public class Field implements Cloneable,
>       * Gets the property name of the field.
>      */
>      public String getProperty() {
> -       return property;	
> +       return property;
>      }
>  
>  
> @@ -158,16 +159,16 @@ public class Field implements Cloneable,
>       * Sets the property name of the field.
>      */
>      public void setProperty(String property) {
> -       this.property = property;	
> +       this.property = property;
>      }
>      
>      /**
> -     * Gets the indexed property name of the field.  This 
> -     * is the method name that can take an <code>int</code> as 
> +     * Gets the indexed property name of the field.  This
> +     * is the method name that can take an <code>int</code> as
>       * a parameter for indexed property value retrieval.
>      */
>      public String getIndexedProperty() {
> -       return indexedProperty;	
> +       return indexedProperty;
>      }
>  
>  
> @@ -175,18 +176,18 @@ public class Field implements Cloneable,
>       * Sets the indexed property name of the field.
>      */
>      public void setIndexedProperty(String indexedProperty) {
> -       this.indexedProperty = indexedProperty;	
> +       this.indexedProperty = indexedProperty;
>      }
>  
>      /**
> -     * Gets the indexed property name of the field.  This 
> -     * is the method name that will return an array or a 
> -     * <code>Collection</code> used to retrieve the 
> -     * list and then loop through the list performing the specified 
> +     * Gets the indexed property name of the field.  This
> +     * is the method name that will return an array or a
> +     * <code>Collection</code> used to retrieve the
> +     * list and then loop through the list performing the specified
>       * validations.
>      */
>      public String getIndexedListProperty() {
> -       return indexedListProperty;	
> +       return indexedListProperty;
>      }
>  
>  
> @@ -194,21 +195,39 @@ public class Field implements Cloneable,
>       * Sets the indexed property name of the field.
>      */
>      public void setIndexedListProperty(String indexedListProperty) {
> -       this.indexedListProperty = indexedListProperty;	
> +       this.indexedListProperty = indexedListProperty;
>      }
>      
> +
> /**
> +     * For indexed properties, the name of the JSP bean containing the
> +
>  * <code>Collection</code> that was iterated (if indexedListProperty is not
> +
>  * specified), or the JSP bean whose property getter returns the collection
> +
>  * that was iterated (if indexedListProperty is specified).
> +    */
> +    public String getIteratorName() {
> +       return iteratorName;
> +    }
> +
> +
> +    /**
> +     * For indexed properties, sets the name of the JSP bean containing the
> +
>  * <code>Collection</code> that was iterated.
> +    */
> +    public void setIteratorName(String iteratorName) {
> +       this.iteratorName = iteratorName;
> +    }
>      /**
>       * Gets the validation rules for this field.
>      */
>      public String getDepends() {
> -       return depends;	
> +       return depends;
>      }
>  
>      /**
>       * Sets the validation rules for this field.
>      */
>      public void setDepends(String depends) {
> -       this.depends = depends;	
> +       this.depends = depends;
>      }
>  
>      /**
> @@ -245,11 +264,11 @@ public class Field implements Cloneable,
>       * Gets the default arg0 <code>Arg</code> object.
>      */
>      public Arg getArg0() {
> -       return (Arg)hArg0.get(ARG_DEFAULT);	
> +       return (Arg)hArg0.get(ARG_DEFAULT);
>      }
>  
>      /**
> -     * Gets the arg0 <code>Arg</code> object based on the key passed in.  If
> the key 
> +     * Gets the arg0 <code>Arg</code> object based on the key passed in.  If
> the key
>       * finds a <code>null</code> value then the default value will try to be
> retrieved.
>      */
>      public Arg getArg0(String key) {
> @@ -275,11 +294,11 @@ public class Field implements Cloneable,
>       * Gets the default arg1 <code>Arg</code> object.
>      */
>      public Arg getArg1() {
> -       return (Arg)hArg1.get(ARG_DEFAULT);	
> +       return (Arg)hArg1.get(ARG_DEFAULT);
>      }
>  
>      /**
> -     * Gets the arg1 <code>Arg</code> object based on the key passed in.  If
> the key 
> +     * Gets the arg1 <code>Arg</code> object based on the key passed in.  If
> the key
>       * finds a <code>null</code> value then the default value will try to be
> retrieved.
>      */
>      public Arg getArg1(String key) {
> @@ -305,11 +324,11 @@ public class Field implements Cloneable,
>       * Gets the default arg2 <code>Arg</code> object.
>      */
>      public Arg getArg2() {
> -       return (Arg)hArg2.get(ARG_DEFAULT);	
> +       return (Arg)hArg2.get(ARG_DEFAULT);
>      }
>  
>      /**
> -     * Gets the arg2 <code>Arg</code> object based on the key passed in.  If
> the key 
> +     * Gets the arg2 <code>Arg</code> object based on the key passed in.  If
> the key
>       * finds a <code>null</code> value then the default value will try to be
> retrieved.
>      */
>      public Arg getArg2(String key) {
> @@ -335,11 +354,11 @@ public class Field implements Cloneable,
>       * Gets the default arg3 <code>Arg</code> object.
>      */
>      public Arg getArg3() {
> -       return (Arg)hArg3.get(ARG_DEFAULT);	
> +       return (Arg)hArg3.get(ARG_DEFAULT);
>      }
>  
>      /**
> -     * Gets the arg3 <code>Arg</code> object based on the key passed in.  If
> the key 
> +     * Gets the arg3 <code>Arg</code> object based on the key passed in.  If
> the key
>       * finds a <code>null</code> value then the default value will try to be
> retrieved.
>      */
>      public Arg getArg3(String key) {
> @@ -389,7 +408,7 @@ public class Field implements Cloneable,
>      }
>  
>      /**
> -     * The <code>Field</code>'s variables are returned as an 
> +     * The <code>Field</code>'s variables are returned as an
>       * unmodifiable <code>Map</code>.
>      */
>      public Map getVars() {
> @@ -401,14 +420,13 @@ public class Field implements Cloneable,
>      */
>      public String getKey() {
>         if (key == null) {
> -          generateKey();
> +          key = property;
>         }
> -          
>         return key;
>      }
>  
>      /**
> -     * Sets a unique key for the field.  This can be used to change 
> +     * Sets a unique key for the field.  This can be used to change
>       * the key temporarily to have a unique key for an indexed field.
>      */
>      public void setKey(String key) {
> @@ -416,26 +434,22 @@ public class Field implements Cloneable,
>      }
>      
>      /**
> -     * If there is a value specified for the indexedProperty field then 
> -     * <code>true</code> will be returned.  Otherwise it will be
> <code>false</code>.
> +     * If there is a value specified for the indexedProperty field and either
> +
>  * iteratorName or indexedListProperty then <code>true</code> will be
> +
>  * returned.  Otherwise it will be <code>false</code>.
>      */
>      public boolean isIndexed() {
> -       return ((indexedListProperty != null && indexedListProperty.length() > 0));
> -    }
> -
> -    /**
> -     * Generate correct <code>key</code> value.
> -    */    
> -    public void generateKey() {
> -       if (isIndexed()) {
> -          key = indexedListProperty + TOKEN_INDEXED + "." + property;
> -       } else {
> -          key = property;
> -       }
> +       return (
> +
> 			(indexedProperty != null && indexedProperty.length() > 0) &&
> +
> 			(
> +
> 				(iteratorName != null && iteratorName.length() > 0) ||
> +
> 				(indexedListProperty != null && indexedListProperty.length() > 0)
> +
> 			)
> +
> 		);
>      }
>                  
>      /**
> -     * Replace constants with values in fields and process the depends field 
> +     * Replace constants with values in fields and process the depends field
>       * to create the dependency <code>Map</code>.
>      */
>      public void process(Map globalConstants, Map constants) {
> @@ -446,7 +460,7 @@ public class Field implements Cloneable,
>         hArg3.setFast(true);
>         hVars.setFast(true);
>  
> -       generateKey();
> +       getKey();
>                
>         // Process FormSet Constants
>         for (Iterator i = constants.keySet().iterator(); i.hasNext(); ) {
> @@ -556,7 +570,7 @@ public class Field implements Cloneable,
>      */
>      public boolean isDependency(String key) {
>         if (hDependencies != null) {
> -          return hDependencies.containsKey(key);	
> +          return hDependencies.containsKey(key);
>         } else {
>            return false;
>         }
> @@ -610,11 +624,11 @@ public class Field implements Cloneable,
>         } catch (CloneNotSupportedException e) {
>            throw new InternalError(e.toString());
>         }
> -    }    
> +    }
>  
>      /**
>       * Returns a string representation of the object.
> -    */       
> +    */
>      public String toString() {
>         StringBuffer results = new StringBuffer();
>         
> @@ -642,3 +656,4 @@ public class Field implements Cloneable,
>      }
>      
>  }
> +
> Index: validator/src/share/org/apache/commons/validator/Validator.java
> ===================================================================
> RCS file:
> /home/cvspublic/jakarta-commons/validator/src/share/org/apache/commons/validator/Validator.java,v
> retrieving revision 1.7
> diff -u -3 -p -r1.7 Validator.java
> --- validator/src/share/org/apache/commons/validator/Validator.java	30 Mar 2002 04:28:35 -0000	1.7
> +++ validator/src/share/org/apache/commons/validator/Validator.java	3 May 2002 16:56:26 -0000
> @@ -67,12 +67,14 @@ import java.util.ArrayList;
>  import java.util.Collection;
>  import java.util.Collections;
>  import java.util.Comparator;
> +import java.util.Enumeration;
>  import java.util.HashMap;
>  import java.util.Iterator;
>  import java.util.List;
>  import java.util.Locale;
>  import java.util.Map;
>  import java.util.StringTokenizer;
> +import java.lang.reflect.Array;
>  import java.lang.reflect.Method;
>  import java.lang.reflect.Modifier;
>  import org.apache.commons.beanutils.PropertyUtils;
> @@ -81,9 +83,9 @@ import org.apache.commons.logging.LogSou
>  
>  
>  /**
> - * <p>Validations are processed by the validate method.  
> - * An instance of <code>ValidatorResources</code> is 
> - * used to define the validators (validation methods) 
> + * <p>Validations are processed by the validate method.
> + * An instance of <code>ValidatorResources</code> is
> + * used to define the validators (validation methods)
>   * and the validation rules for a JavaBean.</p>
>   *
>   * @author David Winterfeldt
> @@ -102,25 +104,25 @@ public class Validator implements Serial
>     public static String BEAN_KEY = "java.lang.Object";
>  
>     /**
> -    * Resources key the <code>ValidatorAction</code> is stored under.  
> -    * This will be automatically passed into a validation method 
> -    * with the current <code>ValidatorAction</code> if it is 
> +    * Resources key the <code>ValidatorAction</code> is stored under.
> +    * This will be automatically passed into a validation method
> +    * with the current <code>ValidatorAction</code> if it is
>      * specified in the method signature.
>     */
>     public static String VALIDATOR_ACTION_KEY =
> "org.apache.commons.validator.ValidatorAction";
>  
>     /**
> -    * Resources key the <code>Field</code> is stored under.  
> -    * This will be automatically passed into a validation method 
> -    * with the current <code>Field</code> if it is 
> +    * Resources key the <code>Field</code> is stored under.
> +    * This will be automatically passed into a validation method
> +    * with the current <code>Field</code> if it is
>      * specified in the method signature.
>     */
>     public static String FIELD_KEY = "org.apache.commons.validator.Field";
>  
>     /**
>      * Resources key the <code>Locale</code> is stored.
> -    * This will be used to retrieve the appropriate 
> -    * <code>FormSet</code> and <code>Form</code> to be 
> +    * This will be used to retrieve the appropriate
> +    * <code>FormSet</code> and <code>Form</code> to be
>      * processed.
>     */
>     public static String LOCALE_KEY = "java.util.Locale";
> @@ -128,7 +130,7 @@ public class Validator implements Serial
>     protected ValidatorResources resources = null;
>     protected String formName = null;
>     protected HashMap hResources = new HashMap();
> -   protected int page = 0;   
> +   protected int page = 0;
>  
>     /**
>      * The class loader to use for instantiating application objects.
> @@ -145,12 +147,12 @@ public class Validator implements Serial
>     protected boolean useContextClassLoader = false;
>  
>     /**
> -    * Construct a <code>Validator</code> that will 
> -    * use the <code>ValidatorResources</code> 
> -    * passed in to retrieve pluggable validators 
> +    * Construct a <code>Validator</code> that will
> +    * use the <code>ValidatorResources</code>
> +    * passed in to retrieve pluggable validators
>      * the different sets of validation rules.
>      *
> -    * @param	resources	<code>ValidatorResources</code> 
> +    * @param	resources	<code>ValidatorResources</code>
>      *				to use during validation.
>     */
>     public Validator(ValidatorResources resources) {
> @@ -158,14 +160,14 @@ public class Validator implements Serial
>     }
>  
>     /**
> -    * Construct a <code>Validator</code> that will 
> -    * use the <code>ValidatorResources</code> 
> -    * passed in to retrieve pluggable validators 
> +    * Construct a <code>Validator</code> that will
> +    * use the <code>ValidatorResources</code>
> +    * passed in to retrieve pluggable validators
>      * the different sets of validation rules.
>      *
> -    * @param	resources	<code>ValidatorResources</code> 
> +    * @param	resources	<code>ValidatorResources</code>
>      *				to use during validation.
> -    * @param	formName	Key used for retrieving the set of 
> +    * @param	formName	Key used for retrieving the set of
>      *				validation rules.
>     */
>     public Validator(ValidatorResources resources, String formName) {
> @@ -174,14 +176,14 @@ public class Validator implements Serial
>     }
>     
>     /**
> -    * Add a resource to be used during the processing 
> +    * Add a resource to be used during the processing
>      * of validations.
>      *
> -    * @param	key		The full class name of the parameter 
> -    *				of the validation method that 
> -    *				corresponds to the value/instance 
> +    * @param	key		The full class name of the parameter
> +    *				of the validation method that
> +    *				corresponds to the value/instance
>      *				passed in with it.
> -    * @param	value		The instance that will be passed 
> +    * @param	value		The instance that will be passed
>      *				into the validation method.
>     */
>     public void addResource(String key, Object value) {
> @@ -189,58 +191,58 @@ public class Validator implements Serial
>     }
>  
>     /**
> -    * Gets the form name which is the key 
> +    * Gets the form name which is the key
>      * to a set of validation rules.
>     */
>     public String getFormName() {
> -      return formName;	
> +      return formName;
>     }
>     
>     /**
> -    * Sets the form name which is the key 
> +    * Sets the form name which is the key
>      * to a set of validation rules.
>     */
>     public void setFormName(String formName) {
> -      this.formName = formName;	
> +      this.formName = formName;
>     }
>  
>     /**
> -    * Gets the page.  This in conjunction with 
> -    * the page property of a <code>Field<code> 
> -    * can control the processing of fields.  
> -    * If the field's page is less than or equal 
> +    * Gets the page.  This in conjunction with
> +    * the page property of a <code>Field<code>
> +    * can control the processing of fields.
> +    * If the field's page is less than or equal
>      * to this page value, it will be processed.
>     */
>     public int getPage() {
> -      return page;	
> +      return page;
>     }
>     
>     /**
> -    * Sets the page.  This in conjunction with 
> -    * the page property of a <code>Field<code> 
> -    * can control the processing of fields.  
> -    * If the field's page is less than or equal 
> +    * Sets the page.  This in conjunction with
> +    * the page property of a <code>Field<code>
> +    * can control the processing of fields.
> +    * If the field's page is less than or equal
>      * to this page value, it will be processed.
>     */
>     public void setPage(int page) {
> -      this.page = page;	
> +      this.page = page;
>     }
>  
>     /**
> -    * Clears the form name, resources that were added, 
> -    * and the page that was set (if any).  This can 
> -    * be called to reinitialize the Validator instance 
> -    * so it can be reused.  The form name (key to 
> -    * set of validation rules) and any resources needed, 
> -    * like the JavaBean being validated, will need to 
> -    * set and/or added to this instance again.  The 
> -    * <code>ValidatorResources</code> will not be removed 
> +    * Clears the form name, resources that were added,
> +    * and the page that was set (if any).  This can
> +    * be called to reinitialize the Validator instance
> +    * so it can be reused.  The form name (key to
> +    * set of validation rules) and any resources needed,
> +    * like the JavaBean being validated, will need to
> +    * set and/or added to this instance again.  The
> +    * <code>ValidatorResources</code> will not be removed
>      * since it can be used again and is thread safe.
>     */
>     public void clear() {
>        formName = null;
>        hResources = new HashMap();
> -      page = 0;   
> +      page = 0;
>     }
>  
>     /**
> @@ -307,12 +309,12 @@ public class Validator implements Serial
>     }
>        
>     /**
> -    * Performs validations based on the configured resources.  
> -    * 
> -    * @return	The <code>Map</code> returned uses the property 
> -    *		of the <code>Field</code> for the key and the value 
> +    * Performs validations based on the configured resources.
> +    *
> +    * @return	The <code>Map</code> returned uses the property
> +    *		of the <code>Field</code> for the key and the value
>      *		is the number of error the field had.
> -   */ 
> +   */
>     public ValidatorResults validate() throws ValidatorException {
>        ValidatorResults results = new ValidatorResults();
>        Locale locale = null;
> @@ -326,7 +328,7 @@ public class Validator implements Serial
>        }
>           
>        Form form = null;
> -      if ((form = resources.get(locale, formName)) != null) {	    
> +      if ((form = resources.get(locale, formName)) != null) {
>           Map hActions = resources.getValidatorActions();
>           List lActions = new ArrayList();
>           Map hActionsRun = new HashMap();
> @@ -382,7 +384,7 @@ public class Validator implements Serial
>                 }
>              }
>              
> -            // For debug   
> +            // For debug
>  
>              if (log.isDebugEnabled()) {
>                 StringBuffer sbLog = new StringBuffer();
> @@ -398,11 +400,11 @@ public class Validator implements Serial
>              
>              if (va != null) {
>                 for (Iterator i = form.getFields().iterator(); i.hasNext(); ) {
> -                  Field field = (Field)i.next();         
> +                  Field field = (Field)i.next();
>        
>                    if (field.getPage() <= page && (field.getDepends() != null &&
> field.isDependency(va.getName()))) {
>                       try {
> -                     	  // Add these two Objects to the resources since they
> reference 
> +                     	  // Add these two Objects to the resources since they
> reference
>                       	  // the current validator action and field
>                       	  hResources.put(VALIDATOR_ACTION_KEY, va);
>                       	  hResources.put(FIELD_KEY, field);
> @@ -435,7 +437,7 @@ public class Validator implements Serial
>        
>                          Method m = c.getMethod(va.getMethod(), paramClass);
>        		  
> -      		        // If the method is static we don't need an instance of the class 
> +      		        // If the method is static we don't need an instance of the class
>        		        // to call the method.  If it isn't, we do.
>                          if (!Modifier.isStatic(m.getModifiers())) {
>                             try {
> @@ -451,20 +453,33 @@ public class Validator implements Serial
>                          Object result = null;
>                          
>                          if (field.isIndexed()) {
> -                           Object oIndexed =
> PropertyUtils.getProperty(hResources.get(BEAN_KEY), field.getIndexedListProperty());
> -                           Object indexedList[] = new Object[0];
> +                           Object oIndexed;
> +                           Iterator iterator = null;
> +
> 						
> +
> 						if( field.getIndexedListProperty() == null )
> +
> 							oIndexed = hResources.get(BEAN_KEY);
> +
> 						else
> +
> 							oIndexed = PropertyUtils.getProperty(hResources.get(BEAN_KEY),
> field.getIndexedListProperty());
>                             
> -                           if (oIndexed instanceof Collection) {
> -                              indexedList = ((Collection)oIndexed).toArray();
> -                           } else if(oIndexed.getClass().isArray()) {
> -                              indexedList = (Object[])oIndexed;
> -                           }
> +                           if (oIndexed.getClass().isArray()) {
> +
> 						   int length = Array.getLength(oIndexed);
> +
> 						   ArrayList cList = new ArrayList(length);
> +
> 						   for (int pos = 0; pos < length; pos++) {
> +
> 							   cList.add(Array.get(oIndexed, pos));
> +
> 							}
> +
> 						iterator = cList.iterator();
> +
> 						} else if (oIndexed instanceof Collection)
> +
> 							iterator = ((Collection) oIndexed).iterator();
> +
> 						else if (oIndexed instanceof Iterator)
> +
> 							iterator = (Iterator) oIndexed;
> +
> 						else if (oIndexed instanceof Map)
> +
> 							iterator = ((Map) oIndexed).entrySet().iterator();
>                             
> -                           for (int pos = 0; pos < indexedList.length; pos++) {
> +                           for (int pos = 0; (iterator != null) &&
> iterator.hasNext(); pos++) {
>                                // Set current iteration object to the parameter
> array
> -                              paramValue[beanIndexPos] = indexedList[pos];
> +                              paramValue[beanIndexPos] = iterator.next();
>                                
> -                              // Set field clone with the key modified to
> represent 
> +                              // Set field clone with the key modified to represent
>                                // the current field
>                                Field indexedField = (Field)field.clone();
>                               
> indexedField.setKey(ValidatorUtil.replace(indexedField.getKey(),
> Field.TOKEN_INDEXED, "[" + pos + "]"));
> @@ -524,11 +539,11 @@ public class Validator implements Serial
>     }
>  
>     /**
> -    * Returns if the result if valid.  If the 
> -    * result object is <code>Boolean</code>, then it will 
> -    * the value.  If the result object isn't <code>Boolean</code>, 
> -    * then it will return <code>false</code> if the result 
> -    * object is <code>null</code> and <code>true</code> if it 
> +    * Returns if the result if valid.  If the
> +    * result object is <code>Boolean</code>, then it will
> +    * the value.  If the result object isn't <code>Boolean</code>,
> +    * then it will return <code>false</code> if the result
> +    * object is <code>null</code> and <code>true</code> if it
>      * isn't.
>     */
>     private boolean isValid(Object result) {
> @@ -553,13 +568,13 @@ public class Validator implements Serial
>           ValidatorAction va1 = (ValidatorAction)o1;
>           ValidatorAction va2 = (ValidatorAction)o2;
>        
> -         if ((va1.getDepends() == null || va1.getDepends().length() == 0) && 
> +         if ((va1.getDepends() == null || va1.getDepends().length() == 0) &&
>                (va2.getDepends() == null || va2.getDepends().length() == 0)) {
>              return 0;
>           } else if ((va1.getDepends() != null && va1.getDepends().length() > 0) &&
>                      (va2.getDepends() == null || va2.getDepends().length() == 0)) {
>              return 1;
> -         } else if ((va1.getDepends() == null || va1.getDepends().length() ==
> 0) && 
> +         } else if ((va1.getDepends() == null || va1.getDepends().length() == 0) &&
>                    (va2.getDepends() != null && va2.getDepends().length() > 0)) {
>              return -1;
>           } else {
> @@ -583,13 +598,13 @@ public class Validator implements Serial
>           ValidatorAction va1 = (ValidatorAction)o1;
>           ValidatorAction va2 = (ValidatorAction)o2;
>        
> -         if ((va1.getDepends() == null || va1.getDepends().length() == 0) && 
> +         if ((va1.getDepends() == null || va1.getDepends().length() == 0) &&
>                (va2.getDepends() == null || va2.getDepends().length() == 0)) {
>              return 0;
>           } else if ((va1.getDepends() != null && va1.getDepends().length() > 0) &&
>                      (va2.getDepends() == null || va2.getDepends().length() == 0)) {
>              return 1;
> -         } else if ((va1.getDepends() == null || va1.getDepends().length() ==
> 0) && 
> +         } else if ((va1.getDepends() == null || va1.getDepends().length() == 0) &&
>                    (va2.getDepends() != null && va2.getDepends().length() > 0)) {
>              return -1;
>           } else {
> @@ -613,7 +628,7 @@ public class Validator implements Serial
>                 if (o != null) {
>                    if (((Boolean)o).booleanValue())
>                      iVA2++;
> -               }	
> +               }
>              }
>              
>              return iVA1 - iVA2;

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org