cziegeler 01/07/12 05:41:17
Modified: src/org/apache/cocoon/environment/wrapper
RequestWrapper.java
Log:
The cocoon: sources inherit the parameters from the calling source
Revision Changes Path
1.3 +38 -5
xml-cocoon2/src/org/apache/cocoon/environment/wrapper/RequestWrapper.java
Index: RequestWrapper.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/environment/wrapper/RequestWrapper.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- RequestWrapper.java 2001/07/10 10:10:58 1.2
+++ RequestWrapper.java 2001/07/12 12:41:12 1.3
@@ -23,7 +23,7 @@
* are different.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version $Id: RequestWrapper.java,v 1.2 2001/07/10 10:10:58 cziegeler Exp $
+ * @version $Id: RequestWrapper.java,v 1.3 2001/07/12 12:41:12 cziegeler Exp $
*/
public final class RequestWrapper implements Request {
@@ -76,15 +76,48 @@
}
public String getParameter(String name) {
- return this.parameters.getParameter(name);
+ String value = this.parameters.getParameter(name);
+ if (value == null)
+ return this.req.getParameter(name);
+ else
+ return value;
}
public Enumeration getParameterNames() {
- return this.parameters.getParameterNames();
+ // put all parameter names into a set
+ Set parameterNames = new HashSet();
+ Enumeration names = this.parameters.getParameterNames();
+ while (names.hasMoreElements() == true) {
+ parameterNames.add(names.nextElement());
+ }
+ names = this.req.getParameterNames();
+ while (names.hasMoreElements() == true) {
+ parameterNames.add(names.nextElement());
+ }
+ return new EnumerationFromIterator(parameterNames.iterator());
+ }
+
+ final class EnumerationFromIterator implements Enumeration {
+ private Iterator iter;
+ EnumerationFromIterator(Iterator iter) {
+ this.iter = iter;
+ }
+
+ public boolean hasMoreElements() {
+ return iter.hasNext();
+ }
+ public Object nextElement() { return iter.next(); }
}
public String[] getParameterValues(String name) {
- return this.parameters.getParameterValues(name);
+ String[] values = this.parameters.getParameterValues(name);
+ String[] inherited = this.req.getParameterValues(name);
+ if (inherited == null) return values;
+ if (values == null) return inherited;
+ String[] allValues = new String[values.length + inherited.length];
+ System.arraycopy(values, 0, allValues, 0, values.length);
+ System.arraycopy(inherited, 0, allValues, values.length, inherited.length);
+ return allValues;
}
public String getProtocol() {
@@ -226,4 +259,4 @@
return this.req.isUserInRole(role);
}
-}
\ No newline at end of file
+}
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]