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