jaxws/src/jdk.xml.bind/share/classes/com/sun/xml/internal/xsom/impl/util/Uri.java
changeset 43853 54c25a823b8e
parent 43851 cdced4472efb
parent 43852 93a527059d8a
child 43854 76c52ad1e6c7
child 43908 bf349346f662
--- a/jaxws/src/jdk.xml.bind/share/classes/com/sun/xml/internal/xsom/impl/util/Uri.java	Thu Feb 16 17:12:59 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +0,0 @@
-/*
-Copyright (c) 2001, 2002 Thai Open Source Software Center Ltd
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in
-    the documentation and/or other materials provided with the
-    distribution.
-
-    Neither the name of the Thai Open Source Software Center Ltd nor
-    the names of its contributors may be used to endorse or promote
-    products derived from this software without specific prior written
-    permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-// @@3RD PARTY CODE@@
-
-package com.sun.xml.internal.xsom.impl.util;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URL;
-
-public class Uri {
-  private static String utf8 = "UTF-8";
-
-  public static boolean isValid(String s) {
-    return isValidPercent(s) && isValidFragment(s) && isValidScheme(s);
-  }
-
-  private static final String HEX_DIGITS = "0123456789abcdef";
-
-  public static String escapeDisallowedChars(String s) {
-    StringBuffer buf = null;
-    int len = s.length();
-    int done = 0;
-    for (;;) {
-      int i = done;
-      for (;;) {
-        if (i == len) {
-          if (done == 0)
-            return s;
-          break;
-        }
-        if (isExcluded(s.charAt(i)))
-          break;
-        i++;
-      }
-      if (buf == null)
-        buf = new StringBuffer();
-      if (i > done) {
-        buf.append(s.substring(done, i));
-        done = i;
-      }
-      if (i == len)
-        break;
-      for (i++; i < len && isExcluded(s.charAt(i)); i++)
-        ;
-      String tem = s.substring(done, i);
-      byte[] bytes;
-      try {
-        bytes = tem.getBytes(utf8);
-      }
-      catch (UnsupportedEncodingException e) {
-        utf8 = "UTF8";
-        try {
-          bytes = tem.getBytes(utf8);
-        }
-        catch (UnsupportedEncodingException e2) {
-          // Give up
-          return s;
-        }
-      }
-      for (int j = 0; j < bytes.length; j++) {
-        buf.append('%');
-        buf.append(HEX_DIGITS.charAt((bytes[j] & 0xFF) >> 4));
-        buf.append(HEX_DIGITS.charAt(bytes[j] & 0xF));
-      }
-      done = i;
-    }
-    return buf.toString();
-  }
-
-  private static String excluded = "<>\"{}|\\^`";
-
-  private static boolean isExcluded(char c) {
-    return c <= 0x20 || c >= 0x7F || excluded.indexOf(c) >= 0;
-  }
-
-  private static boolean isAlpha(char c) {
-    return ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z');
-  }
-
-  private static boolean isHexDigit(char c) {
-    return ('a' <= c && c <= 'f') || ('A' <= c && c <= 'F') || isDigit(c);
-  }
-
-  private static boolean isDigit(char c) {
-    return '0' <= c && c <= '9';
-  }
-
-  private static boolean isSchemeChar(char c) {
-    return isAlpha(c) || isDigit(c) || c == '+' || c == '-' || c =='.';
-  }
-
-  private static boolean isValidPercent(String s) {
-    int len = s.length();
-    for (int i = 0; i < len; i++)
-      if (s.charAt(i) == '%') {
-        if (i + 2 >= len)
-          return false;
-        else if (!isHexDigit(s.charAt(i + 1))
-             || !isHexDigit(s.charAt(i + 2)))
-          return false;
-      }
-    return true;
-  }
-
-  private static boolean isValidFragment(String s) {
-    int i = s.indexOf('#');
-    return i < 0 || s.indexOf('#', i + 1) < 0;
-  }
-
-  private static boolean isValidScheme(String s) {
-    if (!isAbsolute(s))
-      return true;
-    int i = s.indexOf(':');
-    if (i == 0
-    || i + 1 == s.length()
-    || !isAlpha(s.charAt(0)))
-      return false;
-    while (--i > 0)
-      if (!isSchemeChar(s.charAt(i)))
-    return false;
-    return true;
-  }
-
-    public static String resolve(String baseUri, String uriReference) throws IOException {
-        if (isAbsolute(uriReference))
-            return uriReference;
-
-        if(baseUri==null)
-            throw new IOException("Unable to resolve relative URI "+uriReference+" without a base URI");
-
-        if(!isAbsolute(baseUri))
-            throw new IOException("Unable to resolve relative URI "+uriReference+" because base URI is not absolute: "+baseUri);
-
-        return new URL(new URL(baseUri), uriReference).toString();
-    }
-
-    public static boolean hasFragmentId(String uri) {
-    return uri.indexOf('#') >= 0;
-  }
-
-  public static boolean isAbsolute(String uri) {
-    int i = uri.indexOf(':');
-    if (i < 0)
-      return false;
-    while (--i >= 0) {
-      switch (uri.charAt(i)) {
-      case '#':
-      case '/':
-      case '?':
-    return false;
-      }
-    }
-    return true;
-  }
-}