remm        01/03/13 21:29:02

  Modified:    src/webdav/client/src/org/apache/webdav/lib/methods
                        WebdavMethod.java WebdavMethodBase.java
  Log:
  - Add new calls to allow specifying URL parameters.
    Use WebdavMethod.setParameter(String parameterName, String parameterValue)
    to set the parameters.
    Or use WebdavMethod.setQueryString(String queryString) to set the query string,
    in which case the parameters set using setParameter are ignored.
  
  Revision  Changes    Path
  1.9       +20 -3     
jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/WebdavMethod.java
  
  Index: WebdavMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/WebdavMethod.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- WebdavMethod.java 2001/02/26 06:35:57     1.8
  +++ WebdavMethod.java 2001/03/14 05:29:02     1.9
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/WebdavMethod.java,v
 1.8 2001/02/26 06:35:57 remm Exp $
  - * $Revision: 1.8 $
  - * $Date: 2001/02/26 06:35:57 $
  + * $Header: 
/home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/WebdavMethod.java,v
 1.9 2001/03/14 05:29:02 remm Exp $
  + * $Revision: 1.9 $
  + * $Date: 2001/03/14 05:29:02 $
    *
    * ====================================================================
    *
  @@ -209,6 +209,23 @@
        * Set the state token.
        */
       public void setState(State state);
  +
  +
  +    /**
  +     * Set URL parameter.
  +     * 
  +     * @param parameterName Parameter name
  +     * @param parameterValue Parameter value
  +     */
  +    public void setParameter(String parameterName, String parameterValue);
  +
  +
  +    /**
  +     * Set query string.
  +     * 
  +     * @param queryString Query string
  +     */
  +    public void setQueryString(String queryString);
   
   
       // ------------------------------------------------------ Interface Methods
  
  
  
  1.19      +62 -5     
jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/WebdavMethodBase.java
  
  Index: WebdavMethodBase.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/WebdavMethodBase.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- WebdavMethodBase.java     2001/03/12 09:01:18     1.18
  +++ WebdavMethodBase.java     2001/03/14 05:29:02     1.19
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/WebdavMethodBase.java,v
 1.18 2001/03/12 09:01:18 juergen Exp $
  - * $Revision: 1.18 $
  - * $Date: 2001/03/12 09:01:18 $
  + * $Header: 
/home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/WebdavMethodBase.java,v
 1.19 2001/03/14 05:29:02 remm Exp $
  + * $Revision: 1.19 $
  + * $Date: 2001/03/14 05:29:02 $
    *
    * ====================================================================
    *
  @@ -132,6 +132,12 @@
   
   
       /**
  +     * URL parameters.
  +     */
  +    protected Hashtable parameters = new Hashtable();
  +
  +
  +    /**
        * Global state.
        */
       protected State state;
  @@ -143,6 +149,12 @@
       protected String query = null;
   
   
  +    /*
  +     * Holds the query string.
  +     */
  +    protected String queryString = null;
  +
  +
       // ----------------------------------------------------------- Constructors
   
           
  @@ -315,6 +327,27 @@
       }
   
   
  +    /**
  +     * Set URL parameter.
  +     * 
  +     * @param parameterName Parameter name
  +     * @param parameterValue Parameter value
  +     */
  +    public void setParameter(String parameterName, String parameterValue) {
  +        parameters.put(parameterName, parameterValue);
  +    }
  +
  +
  +    /**
  +     * Set query string.
  +     * 
  +     * @param queryString Query string
  +     */
  +    public void setQueryString(String queryString) {
  +        this.queryString = queryString;
  +    }
  +
  +
       // --------------------------------------------------- WebdavMethod Methods
   
   
  @@ -347,9 +380,11 @@
           statusCode = WebdavStatus.SC_OK;
           statusText = "OK";
           headers.clear();
  +        parameters.clear();
           state = null;
           used = false;
           query = null;
  +        queryString = null;
       }
   
   
  @@ -491,9 +526,31 @@
        * @return String request line
        */
       public final String generateRequestLine() {
  +
  +        String requestString = state.URLEncode(path);
  +        if (queryString != null) {
  +            if (!queryString.startsWith("?")) {
  +                requestString += "?";
  +            }
  +            requestString += queryString;
  +        } else {
  +            // Parsing parameters list
  +            StringBuffer parametersString = new StringBuffer();
  +            Enumeration paramNames = parameters.keys();
  +            while (paramNames.hasMoreElements()) {
  +                String paramName = (String) paramNames.nextElement();
  +                String paramValue = (String) parameters.get(paramName);
  +                parametersString.append(state.URLEncode(paramName));
  +                parametersString.append("=");
  +                parametersString.append(state.URLEncode(paramValue));
  +                if (paramNames.hasMoreElements()) {
  +                    parametersString.append("&");
  +                }
  +            }
  +            requestString = requestString + "?" + parametersString.toString();
  +        }
   
  -        return (getName() + " " + state.URLEncode(path) + " "
  -                + PROTOCOL + "\r\n");
  +        return (getName() + " " + requestString + " " + PROTOCOL + "\r\n");
   
       }
   
  
  
  

Reply via email to