jericho     2002/10/09 05:37:31

  Modified:    httpclient/src/java/org/apache/commons/httpclient/util
                        URIUtil.java
  Log:
  - Add the getName and getQuery methods of an URI string
  - Make code robust
  
  Revision  Changes    Path
  1.3       +45 -4     
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/util/URIUtil.java
  
  Index: URIUtil.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/util/URIUtil.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- URIUtil.java      29 Sep 2002 09:02:36 -0000      1.2
  +++ URIUtil.java      9 Oct 2002 12:37:31 -0000       1.3
  @@ -84,12 +84,51 @@
       // ---------------------------------------------------------- URI utilities
   
       /**
  +     * Get the basename of an URI.
  +     *
  +     * @param uri a string regarded an URI
  +     * @return the basename string
  +     */
  +    public static String getName(String uri) {
  +        if (uri == null || uri.length() == 0) return uri;
  +        int at = uri.lastIndexOf("/");
  +        return uri.substring(at + 1);
  +    }
  +
  +
  +    /**
  +     * Get the query of an URI.
  +     *
  +     * @param uri a string regarded an URI
  +     * @return the query string
  +     */
  +    public static String getQuery(String uri) {
  +        if (uri == null || uri.length() == 0) return uri;
  +        // consider of net_path
  +        int at = uri.indexOf("//");
  +        int from = uri.indexOf("/", at >= 0 ?
  +                (uri.lastIndexOf("/", at - 1) >= 0 ? 0 : at + 2) : 0);
  +        // the authority part of URI ignored
  +        int to = uri.length();
  +        // reuse the at and from variables to consider the query
  +        at = uri.indexOf("?", from);
  +        from = (at > from) ? at + 1 : -1; 
  +        // check the fragment
  +        if (uri.lastIndexOf("#") > from)
  +            to = uri.lastIndexOf("#");
  +        // get the path and query.
  +        return (from >= 0) ? uri.substring(from, to) : "/";
  +    }
  +
  +
  +    /**
        * Get the path of an URI.
        *
        * @param uri a string regarded an URI
        * @return the path string
        */
       public static String getPath(String uri) {
  +        if (uri == null || uri.length() == 0) return uri;
           // consider of net_path
           int at = uri.indexOf("//");
           int from = uri.indexOf("/", at >= 0 ?
  @@ -115,6 +154,7 @@
        * @return the path and query string
        */
       public static String getPathQuery(String uri) {
  +        if (uri == null || uri.length() == 0) return uri;
           // consider of net_path
           int at = uri.indexOf("//");
           int from = uri.indexOf("/", at >= 0 ?
  @@ -137,6 +177,7 @@
        * @return the string from the path part
        */
       public static String getFromPath(String uri) {
  +        if (uri == null || uri.length() == 0) return uri;
           // consider of net_path
           int at = uri.indexOf("//");
           int from = uri.indexOf("/", at >= 0 ?
  
  
  

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

Reply via email to