ovidiu 02/04/09 17:44:54
Modified:
src/scratchpad/schecoon/src/org/apache/cocoon/components/treeprocessor/sitemap
ContinueNode.java
Log:
Allow passing parameters in <map:continue>.
Revision Changes Path
1.3 +23 -2
xml-cocoon2/src/scratchpad/schecoon/src/org/apache/cocoon/components/treeprocessor/sitemap/ContinueNode.java
Index: ContinueNode.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/scratchpad/schecoon/src/org/apache/cocoon/components/treeprocessor/sitemap/ContinueNode.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ContinueNode.java 9 Apr 2002 05:36:57 -0000 1.2
+++ ContinueNode.java 10 Apr 2002 00:44:54 -0000 1.3
@@ -1,5 +1,7 @@
package org.apache.cocoon.components.treeprocessor.sitemap;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.avalon.framework.component.Component;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.Composable;
@@ -20,6 +22,7 @@
implements Configurable, Composable
{
protected String continuationId;
+ protected List parameters;
protected MapStackResolver continuationIdResolver;
protected ComponentManager manager;
@@ -31,9 +34,20 @@
public void configure(Configuration config)
throws ConfigurationException
{
+ parameters = new ArrayList();
+
+ Configuration[] params = config.getChildren("parameter");
+ for (int i = 0; i < params.length; i++) {
+ Configuration param = params[i];
+ String name = param.getAttribute("name", null);
+ String value = param.getAttribute("value", null);
+ parameters.add(new Interpreter.Argument(name, value));
+ }
+
try {
+ // The continuation id should would need to be resolved at all
+ // times, but who knows...
if (MapStackResolver.needsResolve(continuationId)) {
- // This should happen all the time, but who knows...
this.continuationIdResolver
= MapStackResolver.getResolver(continuationId);
}
@@ -51,6 +65,13 @@
public boolean invoke(Environment env, InvokeContext context)
throws Exception
{
+ List params = null;
+
+ // Resolve parameters
+ if (this.parameters != null)
+ params = CallFunctionNode.resolveList(this.parameters,
+ context.getMapStack());
+
String contId = continuationId;
if (continuationIdResolver != null) {
@@ -69,7 +90,7 @@
Interpreter interpreter = (Interpreter)selector.select(language);
try {
- interpreter.handleContinuation(contId, env, context);
+ interpreter.handleContinuation(contId, params, env, context);
}
finally {
selector.release((Component)interpreter);
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]