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