1 Clazz.declarePackage ("jssun.net.www");
\r
2 Clazz.load (null, "jssun.net.www.ParseUtil", ["java.io.File", "java.lang.Character", "java.net.URL", "java.util.BitSet"], function () {
\r
3 c$ = Clazz.declareType (jssun.net.www, "ParseUtil");
\r
4 c$.encodePath = Clazz.defineMethod (c$, "encodePath",
\r
6 return jssun.net.www.ParseUtil.encodePath (path, true);
\r
8 c$.encodePath = Clazz.defineMethod (c$, "encodePath",
\r
9 function (path, flag) {
\r
10 var retCC = Clazz.newCharArray (path.length * 2 + 16, '\0');
\r
12 var pathCC = path.toCharArray ();
\r
13 var n = path.length;
\r
14 for (var i = 0; i < n; i++) {
\r
16 if ((!flag && c == '/') || (flag && c == java.io.File.separatorChar)) retCC[retLen++] = '/';
\r
18 if (c.charCodeAt (0) <= 0x007F) {
\r
19 if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' && c <= '9') {
\r
20 retCC[retLen++] = c;
\r
21 } else if (jssun.net.www.ParseUtil.encodedInPath.get (c.charCodeAt (0))) retLen = jssun.net.www.ParseUtil.escape (retCC, c, retLen);
\r
22 else retCC[retLen++] = c;
\r
23 } else if (c.charCodeAt (0) > 0x07FF) {
\r
24 retLen = jssun.net.www.ParseUtil.escape (retCC, String.fromCharCode (0xE0 | ((c.charCodeAt (0) >> 12) & 0x0F)), retLen);
\r
25 retLen = jssun.net.www.ParseUtil.escape (retCC, String.fromCharCode (0x80 | ((c.charCodeAt (0) >> 6) & 0x3F)), retLen);
\r
26 retLen = jssun.net.www.ParseUtil.escape (retCC, String.fromCharCode (0x80 | ((c.charCodeAt (0) >> 0) & 0x3F)), retLen);
\r
28 retLen = jssun.net.www.ParseUtil.escape (retCC, String.fromCharCode (0xC0 | ((c.charCodeAt (0) >> 6) & 0x1F)), retLen);
\r
29 retLen = jssun.net.www.ParseUtil.escape (retCC, String.fromCharCode (0x80 | ((c.charCodeAt (0) >> 0) & 0x3F)), retLen);
\r
30 }}if (retLen + 9 > retCC.length) {
\r
31 var newLen = retCC.length * 2 + 16;
\r
33 newLen = 2147483647;
\r
34 }var buf = Clazz.newCharArray (newLen, '\0');
\r
35 System.arraycopy (retCC, 0, buf, 0, retLen);
\r
38 return String.instantialize (retCC, 0, retLen);
\r
40 c$.escape = Clazz.defineMethod (c$, "escape",
\r
41 function (cc, c, index) {
\r
43 cc[index++] = Character.forDigit ((c.charCodeAt (0) >> 4) & 0xF, 16);
\r
44 cc[index++] = Character.forDigit (c.charCodeAt (0) & 0xF, 16);
\r
47 c$.fileToEncodedURL = Clazz.defineMethod (c$, "fileToEncodedURL",
\r
49 var path = file.getAbsolutePath ();
\r
50 path = jssun.net.www.ParseUtil.encodePath (path);
\r
51 if (!path.startsWith ("/")) {
\r
53 }if (!path.endsWith ("/") && file.isDirectory ()) {
\r
55 }return new java.net.URL ("file", "", path);
\r
57 Clazz.defineStatics (c$,
\r
58 "encodedInPath", null);
\r
60 jssun.net.www.ParseUtil.encodedInPath = new java.util.BitSet (256);
\r
61 jssun.net.www.ParseUtil.encodedInPath.set (61);
\r
62 jssun.net.www.ParseUtil.encodedInPath.set (59);
\r
63 jssun.net.www.ParseUtil.encodedInPath.set (63);
\r
64 jssun.net.www.ParseUtil.encodedInPath.set (47);
\r
65 jssun.net.www.ParseUtil.encodedInPath.set (35);
\r
66 jssun.net.www.ParseUtil.encodedInPath.set (32);
\r
67 jssun.net.www.ParseUtil.encodedInPath.set (60);
\r
68 jssun.net.www.ParseUtil.encodedInPath.set (62);
\r
69 jssun.net.www.ParseUtil.encodedInPath.set (37);
\r
70 jssun.net.www.ParseUtil.encodedInPath.set (34);
\r
71 jssun.net.www.ParseUtil.encodedInPath.set (123);
\r
72 jssun.net.www.ParseUtil.encodedInPath.set (125);
\r
73 jssun.net.www.ParseUtil.encodedInPath.set (124);
\r
74 jssun.net.www.ParseUtil.encodedInPath.set (92);
\r
75 jssun.net.www.ParseUtil.encodedInPath.set (94);
\r
76 jssun.net.www.ParseUtil.encodedInPath.set (91);
\r
77 jssun.net.www.ParseUtil.encodedInPath.set (93);
\r
78 jssun.net.www.ParseUtil.encodedInPath.set (96);
\r
79 for (var i = 0; i < 32; i++) jssun.net.www.ParseUtil.encodedInPath.set (i);
\r
81 jssun.net.www.ParseUtil.encodedInPath.set (127);
\r