home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2004 December / PCpro_2004_12.ISO / files / webserver / xampp / xampp-tomcat-addon-1.4.9-installer.exe / xml-apis.jar / javax / xml / parsers / FilePathToURI.class (.txt) < prev    next >
Encoding:
Java Class File  |  2003-11-18  |  1.6 KB  |  92 lines

  1. package javax.xml.parsers;
  2.  
  3. import java.io.File;
  4. import java.io.UnsupportedEncodingException;
  5.  
  6. class FilePathToURI {
  7.    private static boolean[] gNeedEscaping = new boolean[128];
  8.    private static char[] gAfterEscaping1 = new char[128];
  9.    private static char[] gAfterEscaping2 = new char[128];
  10.    private static char[] gHexChs = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
  11.  
  12.    public static String filepath2URI(String var0) {
  13.       if (var0 == null) {
  14.          return null;
  15.       } else {
  16.          char var1 = File.separatorChar;
  17.          var0 = var0.replace(var1, '/');
  18.          int var2 = var0.length();
  19.          StringBuffer var4 = new StringBuffer(var2 * 3);
  20.          var4.append("file://");
  21.          if (var2 >= 2 && var0.charAt(1) == ':') {
  22.             char var3 = Character.toUpperCase(var0.charAt(0));
  23.             if (var3 >= 'A' && var3 <= 'Z') {
  24.                var4.append('/');
  25.             }
  26.          }
  27.  
  28.          int var5;
  29.          for(var5 = 0; var5 < var2; ++var5) {
  30.             char var12 = var0.charAt(var5);
  31.             if (var12 >= 128) {
  32.                break;
  33.             }
  34.  
  35.             if (gNeedEscaping[var12]) {
  36.                var4.append('%');
  37.                var4.append(gAfterEscaping1[var12]);
  38.                var4.append(gAfterEscaping2[var12]);
  39.             } else {
  40.                var4.append((char)var12);
  41.             }
  42.          }
  43.  
  44.          if (var5 < var2) {
  45.             Object var6 = null;
  46.  
  47.             try {
  48.                var15 = var0.substring(var5).getBytes("UTF-8");
  49.             } catch (UnsupportedEncodingException var9) {
  50.                return var0;
  51.             }
  52.  
  53.             for(byte var7 : var15) {
  54.                if (var7 < 0) {
  55.                   int var13 = var7 + 256;
  56.                   var4.append('%');
  57.                   var4.append(gHexChs[var13 >> 4]);
  58.                   var4.append(gHexChs[var13 & 15]);
  59.                } else if (gNeedEscaping[var7]) {
  60.                   var4.append('%');
  61.                   var4.append(gAfterEscaping1[var7]);
  62.                   var4.append(gAfterEscaping2[var7]);
  63.                } else {
  64.                   var4.append((char)var7);
  65.                }
  66.             }
  67.          }
  68.  
  69.          return var4.toString();
  70.       }
  71.    }
  72.  
  73.    static {
  74.       for(int var0 = 0; var0 <= 31; ++var0) {
  75.          gNeedEscaping[var0] = true;
  76.          gAfterEscaping1[var0] = gHexChs[var0 >> 4];
  77.          gAfterEscaping2[var0] = gHexChs[var0 & 15];
  78.       }
  79.  
  80.       gNeedEscaping[127] = true;
  81.       gAfterEscaping1[127] = '7';
  82.       gAfterEscaping2[127] = 'F';
  83.  
  84.       for(char var3 : new char[]{' ', '<', '>', '#', '%', '"', '{', '}', '|', '\\', '^', '~', '[', ']', '`'}) {
  85.          gNeedEscaping[var3] = true;
  86.          gAfterEscaping1[var3] = gHexChs[var3 >> 4];
  87.          gAfterEscaping2[var3] = gHexChs[var3 & 15];
  88.       }
  89.  
  90.    }
  91. }
  92.