support for parameters on actions.
[utils] / crawler / basic / src / org / wamblee / crawler / AbstractPageRequest.java
index 28482d7fbd096fb8641db821cfcbaab339841726..2e598005ff3a453150a50884cccfd649889ee3c6 100644 (file)
@@ -18,6 +18,9 @@ package org.wamblee.crawler;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 import javax.xml.transform.OutputKeys;
 import javax.xml.transform.Transformer;
@@ -108,10 +111,15 @@ public abstract class AbstractPageRequest implements PageRequest {
     /**
      * Gets the parameters for the request.
      * 
+     * @param aParams Additional parameters to use, obtained from another page, most likely as
+     *    hidden form fields. 
      * @return Request parameters.
      */
-    protected NameValuePair[] getParameters() {
-        return _params;
+    protected NameValuePair[] getParameters(NameValuePair[] aParams) {
+        List<NameValuePair> params = new ArrayList<NameValuePair>(); 
+        params.addAll(Arrays.asList(_params));
+        params.addAll(Arrays.asList(aParams));
+        return params.toArray(new NameValuePair[0]);
     }
     
     /**
@@ -176,6 +184,7 @@ public abstract class AbstractPageRequest implements PageRequest {
         try {
             aMethod = executeWithRedirects(aClient, aMethod);
             byte[] xhtmlData = getXhtml(aMethod);
+            
      
             Document transformed = _transformer.transform(xhtmlData,
                     _transformer.resolve(_xslt));