Author: sebb
Date: Wed Jan 14 19:53:51 2015
New Revision: 1651790

URL: http://svn.apache.org/r1651790
Log:
Fix some generics

Modified:
    
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Field.java
    
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Form.java
    
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/ValidatorAction.java

Modified: 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Field.java
URL: 
http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Field.java?rev=1651790&r1=1651789&r2=1651790&view=diff
==============================================================================
--- 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Field.java
 (original)
+++ 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Field.java
 Wed Jan 14 19:53:51 2015
@@ -124,7 +124,7 @@ public class Field implements Cloneable,
      * synchronized so a call to setDepends() (which clears the List) won't
      * interfere with a call to isDependency().
      */
-    private final List dependencyList = Collections.synchronizedList(new 
ArrayList());
+    private final List<String> dependencyList = 
Collections.synchronizedList(new ArrayList<String>());
 
     /**
      * @deprecated Subclasses should use getVarMap() instead.
@@ -142,7 +142,8 @@ public class Field implements Cloneable,
      * only grow to the size of the highest argument position.
      * @since Validator 1.1
      */
-    protected Map[] args = new Map[0];
+    @SuppressWarnings("unchecked") // cannot instantiate generic array, so 
have to assume this is OK
+    protected Map<String, Arg>[] args = new Map[0];
 
     /**
      * Gets the page value that the Field is associated with for
@@ -333,9 +334,9 @@ public class Field implements Cloneable,
         determineArgPosition(arg);
         ensureArgsCapacity(arg);
 
-        Map argMap = this.args[arg.getPosition()];
+        Map<String, Arg> argMap = this.args[arg.getPosition()];
         if (argMap == null) {
-            argMap = new HashMap();
+            argMap = new HashMap<String, Arg>();
             this.args[arg.getPosition()] = argMap;
         }
 
@@ -396,7 +397,7 @@ public class Field implements Cloneable,
      */
     private void ensureArgsCapacity(Arg arg) {
         if (arg.getPosition() >= this.args.length) {
-            Map[] newArgs = new Map[arg.getPosition() + 1];
+            Map<String, Arg>[] newArgs = new Map[arg.getPosition() + 1];
             System.arraycopy(this.args, 0, newArgs, 0, this.args.length);
             this.args = newArgs;
         }
@@ -555,18 +556,18 @@ public class Field implements Cloneable,
      * Replace constants with values in fields and process the depends field
      * to create the dependency <code>Map</code>.
      */
-    void process(Map globalConstants, Map constants) {
+    void process(Map<String, String> globalConstants, Map<String, String> 
constants) {
         this.hMsgs.setFast(false);
         this.hVars.setFast(true);
 
         this.generateKey();
 
         // Process FormSet Constants
-        for (Iterator i = constants.entrySet().iterator(); i.hasNext();) {
-            Entry entry = (Entry) i.next();
-            String key = (String) entry.getKey();
+        for (Iterator<Entry<String, String>> i = 
constants.entrySet().iterator(); i.hasNext();) {
+            Entry<String, String> entry = i.next();
+            String key = entry.getKey();
             String key2 = TOKEN_START + key + TOKEN_END;
-            String replaceValue = (String) entry.getValue();
+            String replaceValue = entry.getValue();
 
             property = ValidatorUtils.replace(property, key2, replaceValue);
 
@@ -576,11 +577,11 @@ public class Field implements Cloneable,
         }
 
         // Process Global Constants
-        for (Iterator i = globalConstants.entrySet().iterator(); i.hasNext();) 
{
-            Entry entry = (Entry) i.next();
-            String key = (String) entry.getKey();
+        for (Iterator<Entry<String, String>> i = 
globalConstants.entrySet().iterator(); i.hasNext();) {
+            Entry<String, String> entry = i.next();
+            String key = entry.getKey();
             String key2 = TOKEN_START + key + TOKEN_END;
-            String replaceValue = (String) entry.getValue();
+            String replaceValue = entry.getValue();
 
             property = ValidatorUtils.replace(property, key2, replaceValue);
 
@@ -606,9 +607,9 @@ public class Field implements Cloneable,
      * Replace the vars value with the key/value pairs passed in.
      */
     private void processVars(String key, String replaceValue) {
-        Iterator i = this.hVars.keySet().iterator();
+        Iterator<String> i = this.hVars.keySet().iterator();
         while (i.hasNext()) {
-            String varKey = (String) i.next();
+            String varKey = i.next();
             Var var = this.getVar(varKey);
 
             var.setValue(ValidatorUtils.replace(var.getValue(), key, 
replaceValue));
@@ -623,8 +624,8 @@ public class Field implements Cloneable,
         String varKey = TOKEN_START + TOKEN_VAR;
         // Process Messages
         if (key != null && !key.startsWith(varKey)) {
-            for (Iterator i = hMsgs.values().iterator(); i.hasNext();) {
-                Msg msg = (Msg) i.next();
+            for (Iterator<Msg> i = hMsgs.values().iterator(); i.hasNext();) {
+                Msg msg = i.next();
                 msg.setKey(ValidatorUtils.replace(msg.getKey(), key, 
replaceValue));
             }
         }
@@ -639,14 +640,14 @@ public class Field implements Cloneable,
     private void processArg(String key, String replaceValue) {
         for (int i = 0; i < this.args.length; i++) {
 
-            Map argMap = this.args[i];
+            Map<String, Arg> argMap = this.args[i];
             if (argMap == null) {
                 continue;
             }
 
-            Iterator iter = argMap.values().iterator();
+            Iterator<Arg> iter = argMap.values().iterator();
             while (iter.hasNext()) {
-                Arg arg = (Arg) iter.next();
+                Arg arg = iter.next();
 
                 if (arg != null) {
                     arg.setKey(
@@ -670,7 +671,7 @@ public class Field implements Cloneable,
      * order they were defined in parameter passed to the setDepends() method.
      * @return A list of the Field's dependancies.
      */
-    public List getDependencyList() {
+    public List<String> getDependencyList() {
         return Collections.unmodifiableList(this.dependencyList);
     }
 
@@ -692,13 +693,13 @@ public class Field implements Cloneable,
                 continue;
             }
 
-            Map argMap = new HashMap(this.args[i]);
-            Iterator iter = argMap.entrySet().iterator();
+            Map<String, Arg> argMap = new HashMap<String, Arg>(this.args[i]);
+            Iterator<Entry<String, Arg>> iter = argMap.entrySet().iterator();
             while (iter.hasNext()) {
-                Entry entry = (Entry) iter.next();
-                String validatorName = (String) entry.getKey();
-                Arg arg = (Arg) entry.getValue();
-                argMap.put(validatorName, arg.clone());
+                Entry<String, Arg> entry = iter.next();
+                String validatorName = entry.getKey();
+                Arg arg = entry.getValue();
+                argMap.put(validatorName, (Arg) arg.clone());
             }
             field.args[i] = argMap;
         }
@@ -726,7 +727,7 @@ public class Field implements Cloneable,
 
         if (hVars != null) {
             results.append("\t\tVars:\n");
-            for (Iterator i = hVars.keySet().iterator(); i.hasNext();) {
+            for (Iterator<?> i = hVars.keySet().iterator(); i.hasNext();) {
                 Object key = i.next();
                 results.append("\t\t\t");
                 results.append(key);
@@ -844,22 +845,22 @@ public class Field implements Cloneable,
     private boolean runDependentValidators(
         ValidatorAction va,
         ValidatorResults results,
-        Map actions,
+        Map<String, ValidatorAction> actions,
         Map params,
         int pos)
         throws ValidatorException {
 
-        List dependentValidators = va.getDependencyList();
+        List<String> dependentValidators = va.getDependencyList();
 
         if (dependentValidators.isEmpty()) {
             return true;
         }
 
-        Iterator iter = dependentValidators.iterator();
+        Iterator<String> iter = dependentValidators.iterator();
         while (iter.hasNext()) {
-            String depend = (String) iter.next();
+            String depend = iter.next();
 
-            ValidatorAction action = (ValidatorAction) actions.get(depend);
+            ValidatorAction action = actions.get(depend);
             if (action == null) {
                 this.handleMissingAction(depend);
             }
@@ -898,10 +899,10 @@ public class Field implements Cloneable,
 
         for (int fieldNumber = 0; fieldNumber < numberOfFieldsToValidate; 
fieldNumber++) {
 
-            Iterator dependencies = this.dependencyList.iterator();
+            Iterator<String> dependencies = this.dependencyList.iterator();
             ValidatorResults results = new ValidatorResults();
             while (dependencies.hasNext()) {
-                String depend = (String) dependencies.next();
+                String depend = dependencies.next();
 
                 ValidatorAction action = (ValidatorAction) actions.get(depend);
                 if (action == null) {

Modified: 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Form.java
URL: 
http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Form.java?rev=1651790&r1=1651789&r2=1651790&view=diff
==============================================================================
--- 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Form.java
 (original)
+++ 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Form.java
 Wed Jan 14 19:53:51 2015
@@ -49,7 +49,7 @@ public class Form implements Serializabl
      * in although individual <code>Field</code>s can be retrieved using 
<code>Map</code>
      * of <code>Field</code>s.
      */
-    protected List lFields = new ArrayList();
+    protected List<Field> lFields = new ArrayList<Field>();
 
     /**
      * Map of <code>Field</code>s keyed on their property value.
@@ -105,7 +105,7 @@ public class Form implements Serializabl
      *
      * @return   The fields value
      */
-    public List getFields() {
+    public List<Field> getFields() {
         return Collections.unmodifiableList(lFields);
     }
 
@@ -142,9 +142,9 @@ public class Form implements Serializabl
      */
     protected void merge(Form depends) {
 
-        List templFields = new ArrayList();
-        Map temphFields = new FastHashMap();
-        Iterator dependsIt = depends.getFields().iterator();
+        List<Field> templFields = new ArrayList<Field>();
+        Map<String, Field> temphFields = new FastHashMap();
+        Iterator<Field> dependsIt = depends.getFields().iterator();
         while (dependsIt.hasNext()) {
             Field defaultField = (Field) dependsIt.next();
             if (defaultField != null) {
@@ -187,8 +187,8 @@ public class Form implements Serializabl
                     //we want to go all the way up the tree
                     parent.process(constants, globalConstants, forms);
                 }
-                for (Iterator i = parent.getFields().iterator(); i.hasNext(); 
) {
-                    Field f = (Field) i.next();
+                for (Iterator<Field> i = parent.getFields().iterator(); 
i.hasNext(); ) {
+                    Field f = i.next();
                     //we want to be able to override any fields we like
                     if (hFields.get(f.getKey()) == null) {
                         lFields.add(n, f);
@@ -200,8 +200,8 @@ public class Form implements Serializabl
         }
         hFields.setFast(true);
         //no need to reprocess parent's fields, we iterate from 'n'
-        for (Iterator i = lFields.listIterator(n); i.hasNext(); ) {
-            Field f = (Field) i.next();
+        for (Iterator<Field> i = lFields.listIterator(n); i.hasNext(); ) {
+            Field f = i.next();
             f.process(globalConstants, constants);
         }
 
@@ -220,7 +220,7 @@ public class Form implements Serializabl
         results.append(name);
         results.append("\n");
 
-        for (Iterator i = lFields.iterator(); i.hasNext(); ) {
+        for (Iterator<Field> i = lFields.iterator(); i.hasNext(); ) {
             results.append("\tField: \n");
             results.append(i.next());
             results.append("\n");
@@ -261,9 +261,9 @@ public class Form implements Serializabl
      * @throws ValidatorException
      * @since 1.2.0
      */
-    ValidatorResults validate(Map params, Map actions, int page, String 
fieldName)
+    ValidatorResults validate(Map<String, ? super Object> params, Map actions, 
int page, String fieldName)
         throws ValidatorException {
-
+// TODO the params map contains both ValidatorResults and Field entries
         ValidatorResults results = new ValidatorResults();
         params.put(Validator.VALIDATOR_RESULTS_PARAM, results);
 
@@ -280,9 +280,9 @@ public class Form implements Serializabl
                results.merge(field.validate(params, actions));
             }
         } else {
-            Iterator fields = this.lFields.iterator();
+            Iterator<Field> fields = this.lFields.iterator();
             while (fields.hasNext()) {
-                Field field = (Field) fields.next();
+                Field field = fields.next();
 
                 params.put(Validator.FIELD_PARAM, field);
 

Modified: 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/ValidatorAction.java
URL: 
http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/ValidatorAction.java?rev=1651790&r1=1651789&r2=1651790&view=diff
==============================================================================
--- 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/ValidatorAction.java
 (original)
+++ 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/ValidatorAction.java
 Wed Jan 14 19:53:51 2015
@@ -66,7 +66,7 @@ public class ValidatorAction implements
     /**
      * The Class object loaded from the classname.
      */
-    private Class validationClass = null;
+    private Class<?> validationClass = null;
 
     /**
      * The full method name of the validation to be performed.  The method
@@ -103,7 +103,7 @@ public class ValidatorAction implements
     /**
      * The Class objects for each entry in methodParameterList.
      */
-    private Class[] parameterClasses = null;
+    private Class<?>[] parameterClasses = null;
 
     /**
      * The other <code>ValidatorAction</code>s that this one depends on.  If
@@ -149,13 +149,13 @@ public class ValidatorAction implements
      * setDepends() (which clears the List) won't interfere with a call to
      * isDependency().
      */
-    private final List dependencyList = Collections.synchronizedList(new 
ArrayList());
+    private final List<String> dependencyList = 
Collections.synchronizedList(new ArrayList<String>());
 
     /**
      * An internal List representation of all the validation method's
      * parameters defined in the methodParams String.
      */
-    private final List methodParameterList = new ArrayList();
+    private final List<String> methodParameterList = new ArrayList<String>();
 
     /**
      * Gets the name of the validator action.
@@ -491,7 +491,7 @@ public class ValidatorAction implements
      * <code>List</code>.
      * @return List of the validator action's depedents.
      */
-    public List getDependencyList() {
+    public List<String> getDependencyList() {
         return Collections.unmodifiableList(this.dependencyList);
     }
 
@@ -518,6 +518,8 @@ public class ValidatorAction implements
      */
     boolean executeValidationMethod(
         Field field,
+        // TODO What is this the correct value type?
+        // both ValidatorAction and Validator are added as parameters
         Map params,
         ValidatorResults results,
         int pos)
@@ -641,7 +643,7 @@ public class ValidatorAction implements
             return;
         }
 
-        Class[] parameterClasses = new Class[this.methodParameterList.size()];
+        Class<?>[] parameterClasses = new 
Class[this.methodParameterList.size()];
 
         for (int i = 0; i < this.methodParameterList.size(); i++) {
             String paramClassName = (String) this.methodParameterList.get(i);
@@ -665,12 +667,12 @@ public class ValidatorAction implements
      * array is in the same order as the given List and is suitable for passing
      * to the validation method.
      */
-    private Object[] getParameterValues(Map params) {
+    private Object[] getParameterValues(Map<String, ? super Object> params) {
 
         Object[] paramValue = new Object[this.methodParameterList.size()];
 
         for (int i = 0; i < this.methodParameterList.size(); i++) {
-            String paramClassName = (String) this.methodParameterList.get(i);
+            String paramClassName = this.methodParameterList.get(i);
             paramValue[i] = params.get(paramClassName);
         }
 
@@ -759,6 +761,7 @@ public class ValidatorAction implements
     /**
      * Returns the ClassLoader set in the Validator contained in the parameter
      * Map.
+     * TODO expects Map to contain <String, Validator>
      */
     private ClassLoader getClassLoader(Map params) {
         Validator v = (Validator) params.get(Validator.VALIDATOR_PARAM);
@@ -768,6 +771,7 @@ public class ValidatorAction implements
     /**
      * Returns the onlyReturnErrors setting in the Validator contained in the
      * parameter Map.
+     * TODO expects Map to contain <String, Validator>
      */
     private boolean onlyReturnErrors(Map params) {
         Validator v = (Validator) params.get(Validator.VALIDATOR_PARAM);


Reply via email to