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]

Reply via email to