You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2003/08/28 12:16:00 UTC

cvs commit: cocoon-lenya/src/java/org/apache/lenya/cms/task DefaultTaskWrapper.java

andreas     2003/08/28 03:16:00

  Modified:    src/java/org/apache/lenya/cms/task DefaultTaskWrapper.java
  Log:
  improved parameter handling
  
  Revision  Changes    Path
  1.3       +40 -8     cocoon-lenya/src/java/org/apache/lenya/cms/task/DefaultTaskWrapper.java
  
  Index: DefaultTaskWrapper.java
  ===================================================================
  RCS file: /home/cvs/cocoon-lenya/src/java/org/apache/lenya/cms/task/DefaultTaskWrapper.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DefaultTaskWrapper.java	25 Aug 2003 15:40:55 -0000	1.2
  +++ DefaultTaskWrapper.java	28 Aug 2003 10:16:00 -0000	1.3
  @@ -55,9 +55,12 @@
   */
   package org.apache.lenya.cms.task;
   
  +import java.util.ArrayList;
  +import java.util.Collections;
   import java.util.Enumeration;
   import java.util.HashMap;
   import java.util.Iterator;
  +import java.util.List;
   import java.util.Map;
   import java.util.Properties;
   
  @@ -94,19 +97,47 @@
   
       /**
        * Ctor to be called when all task wrapper parameters are known.
  +     * All keys and values must be strings or string arrays.
        * @param parameters The prefixed parameters.
        */
       public DefaultTaskWrapper(Map parameters) {
           log.debug("Creating");
  -        this.parameters.putAll(parameters);
           
  -        if (log.isDebugEnabled()) {
  -            for (Iterator i = parameters.keySet().iterator(); i.hasNext();) {
  -                String key = (String) i.next();
  -                String value = (String) parameters.get(key);
  +        List keys = new ArrayList();
  +        for (Iterator i = parameters.keySet().iterator(); i.hasNext(); ) {
  +            String key = (String) i.next();
  +            keys.add(key);
  +        }
  +        
  +        Collections.sort(keys);
  +        
  +        for (Iterator i = keys.iterator(); i.hasNext(); ) {
  +            String key = (String) i.next();
  +            String value = null;
  +            Object valueObject = parameters.get(key);
  +            if (valueObject instanceof String) {
  +                value = ((String) valueObject).trim();
  +            }
  +            else if (valueObject instanceof String[]) {
  +                String[] values = (String[]) valueObject;
  +                value = "";
  +                for (int j = 0; j < values.length; j++) {
  +                    if (j > 0 && !"".equals(value)) {
  +                        value += ",";
  +                    }
  +                    value += values[j].trim();
  +                }
  +            }
  +            else {
  +                log.debug("Not a string value: [" + key + "] = [" + valueObject + "]");
  +            }
  +            
  +            if (value != null) {
                   log.debug("Setting parameter: [" + key + "] = [" + value + "]");
  +                this.parameters.put(key, value);
               }
           }
  +        
       }
   
       /**
  @@ -260,7 +291,7 @@
        * Returns the task wrapper parameters.
        * @return A task wrapper parameters object.
        */
  -    protected TaskWrapperParameters getWrapperParameters() {
  +    public TaskWrapperParameters getWrapperParameters() {
           return wrapperParameters;
       }
       
  @@ -268,7 +299,7 @@
        * Returns the task parameters.
        * @return A task parameters object.
        */
  -    protected TaskParameters getTaskParameters() {
  +    public TaskParameters getTaskParameters() {
           return taskParameters;
       }
   
  @@ -293,6 +324,7 @@
               Element parameterElement = taskHelper.createElement(ELEMENT_PARAMETER);
               parameterElement.setAttribute(ATTRIBUTE_NAME, key);
               parameterElement.setAttribute(ATTRIBUTE_VALUE, (String) getParameterMap().get(key));
  +            element.appendChild(parameterElement);
           }
   
           return element;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: lenya-cvs-unsubscribe@cocoon.apache.org
For additional commands, e-mail: lenya-cvs-help@cocoon.apache.org