7b5fe82f42f916548bca383e62f348e5de803eac
[jalviewjs.git] / site / swingjs / j2s / jssun / net / www / ParseUtil.js
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
5 function (path) {\r
6 return jssun.net.www.ParseUtil.encodePath (path, true);\r
7 }, "~S");\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
11 var retLen = 0;\r
12 var pathCC = path.toCharArray ();\r
13 var n = path.length;\r
14 for (var i = 0; i < n; i++) {\r
15 var c = pathCC[i];\r
16 if ((!flag && c == '/') || (flag && c == java.io.File.separatorChar)) retCC[retLen++] = '/';\r
17  else {\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
27 } else {\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
32 if (newLen < 0) {\r
33 newLen = 2147483647;\r
34 }var buf =  Clazz.newCharArray (newLen, '\0');\r
35 System.arraycopy (retCC, 0, buf, 0, retLen);\r
36 retCC = buf;\r
37 }}\r
38 return  String.instantialize (retCC, 0, retLen);\r
39 }, "~S,~B");\r
40 c$.escape = Clazz.defineMethod (c$, "escape", \r
41  function (cc, c, index) {\r
42 cc[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
45 return index;\r
46 }, "~A,~S,~N");\r
47 c$.fileToEncodedURL = Clazz.defineMethod (c$, "fileToEncodedURL", \r
48 function (file) {\r
49 var path = file.getAbsolutePath ();\r
50 path = jssun.net.www.ParseUtil.encodePath (path);\r
51 if (!path.startsWith ("/")) {\r
52 path = "/" + path;\r
53 }if (!path.endsWith ("/") && file.isDirectory ()) {\r
54 path = path + "/";\r
55 }return  new java.net.URL ("file", "", path);\r
56 }, "java.io.File");\r
57 Clazz.defineStatics (c$,\r
58 "encodedInPath", null);\r
59 {\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
80 \r
81 jssun.net.www.ParseUtil.encodedInPath.set (127);\r
82 }});\r