cziegeler    02/02/05 01:48:07

  Modified:    src/scratchpad/org/apache/avalon/excalibur/source
                        SourceParameters.java SourceUtil.java
  Log:
  Added new utility methods
  
  Revision  Changes    Path
  1.6       +2 -2      
jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/source/SourceParameters.java
  
  Index: SourceParameters.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/source/SourceParameters.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SourceParameters.java     5 Feb 2002 08:22:08 -0000       1.5
  +++ SourceParameters.java     5 Feb 2002 09:48:07 -0000       1.6
  @@ -19,7 +19,7 @@
    * more than one value for a parameter.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
  - * @version $Id: SourceParameters.java,v 1.5 2002/02/05 08:22:08 cziegeler 
Exp $
  + * @version $Id: SourceParameters.java,v 1.6 2002/02/05 09:48:07 cziegeler 
Exp $
    */
   public final class SourceParameters
   implements Serializable, Cloneable {
  @@ -88,7 +88,7 @@
       }
   
       /**
  -     * Standard Constructor
  +     * Standard Constructor creating an empty parameters object
        */
       public SourceParameters() {
       }
  
  
  
  1.5       +63 -3     
jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/source/SourceUtil.java
  
  Index: SourceUtil.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/source/SourceUtil.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SourceUtil.java   4 Jan 2002 13:25:36 -0000       1.4
  +++ SourceUtil.java   5 Feb 2002 09:48:07 -0000       1.5
  @@ -7,20 +7,20 @@
    */
   package org.apache.avalon.excalibur.source;
   
  +import org.apache.avalon.framework.parameters.Parameters;
   import org.xml.sax.InputSource;
  -
   import java.io.ByteArrayOutputStream;
   import java.io.IOException;
   import java.io.OutputStreamWriter;
   import java.util.BitSet;
  -
  +import java.util.Iterator;
   
   /**
    *
    * Utility class for source resolving.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
  - * @version CVS $Revision: 1.4 $ $Date: 2002/01/04 13:25:36 $
  + * @version CVS $Revision: 1.5 $ $Date: 2002/02/05 09:48:07 $
    */
   public final class SourceUtil
   {
  @@ -34,6 +34,66 @@
          'o', 'p', 'q', 'r', 's', 't', 'u', 'v', // 40 to 47
          'w', 'x', 'y', 'z', '0', '1', '2', '3', // 48 to 55
          '4', '5', '6', '7', '8', '9', '+', '/' }; // 56 to 63
  +
  +    /**
  +     * Append parameters to the uri.
  +     * Each parameter is appended to the uri with "parameter=value",
  +     * the parameters are separated by "&".
  +     */
  +    public static String appendParameters(String     uri,
  +                                          Parameters parameters) {
  +        if (parameters != null) {
  +            StringBuffer buffer = new StringBuffer(uri);
  +            String[] keys = parameters.getNames();
  +            String      current;
  +            char        separator = (uri.indexOf("?") == -1 ? '?' : '&');
  +
  +            if (keys != null) {
  +                for(int i=0;i<keys.length;i++) {
  +                    current = keys[i];
  +                    buffer.append(separator)
  +                          .append(current)
  +                          .append('=')
  +                          
.append(SourceUtil.encode(parameters.getParameter(current, null)));
  +                    separator = '&';
  +                }
  +            }
  +            return buffer.toString();
  +        }
  +
  +        return uri;
  +    }
  +
  +    /**
  +     * Append parameters to the uri
  +     * Each parameter is appended to the uri with "parameter=value",
  +     * the parameters are separated by "&".
  +     */
  +    public static String appendParameters(String           uri,
  +                                          SourceParameters parameters) {
  +        if (parameters != null) {
  +            StringBuffer buffer = new StringBuffer(uri);
  +            Iterator keys = parameters.getParameterNames();
  +            String      current;
  +            char        separator = (uri.indexOf("?") == -1 ? '?' : '&');
  +            Iterator    values;
  +
  +            while (keys.hasNext() == true) {
  +                current = (String)keys.next();
  +                values = parameters.getParameterValues(current);
  +                while (values.hasNext() == true) {
  +                    buffer.append(separator)
  +                          .append(current)
  +                          .append('=')
  +                          .append(SourceUtil.encode((String)values.next()));
  +                    separator = '&';
  +                }
  +            }
  +            return buffer.toString();
  +        }
  +
  +        return uri;
  +    }
   
       /**
        * BASE 64 encoding.
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to