4572ad50118663db4cd3f08a4f1a06b96beb5bdf
[jalviewjs.git] / site / swingjs / j2s / java / net / URLStreamHandler.js
1 Clazz.declarePackage ("java.net");\r
2 Clazz.load (null, "java.net.URLStreamHandler", ["java.lang.IllegalArgumentException", "$.SecurityException", "$.UnsupportedOperationException"], function () {\r
3 c$ = Clazz.declareType (java.net, "URLStreamHandler");\r
4 Clazz.defineMethod (c$, "openConnectionProxy", \r
5 function (u, p) {\r
6 throw  new UnsupportedOperationException ("Method not implemented.");\r
7 }, "java.net.URL,java.net.Proxy");\r
8 Clazz.defineMethod (c$, "parseURL", \r
9 function (u, spec, start, limit) {\r
10 var protocol = u.getProtocol ();\r
11 var authority = u.getAuthority ();\r
12 var userInfo = u.getUserInfo ();\r
13 var host = u.getHost ();\r
14 var port = u.getPort ();\r
15 var path = u.getPath ();\r
16 var query = u.getQuery ();\r
17 var ref = u.getRef ();\r
18 var isRelPath = false;\r
19 var queryOnly = false;\r
20 if (start < limit) {\r
21 var queryStart = spec.indexOf ('?');\r
22 queryOnly = queryStart == start;\r
23 if ((queryStart != -1) && (queryStart < limit)) {\r
24 query = spec.substring (queryStart + 1, limit);\r
25 if (limit > queryStart) limit = queryStart;\r
26 spec = spec.substring (0, queryStart);\r
27 }}var i = 0;\r
28 var isUNCName = (start <= limit - 4) && (spec.charAt (start) == '/') && (spec.charAt (start + 1) == '/') && (spec.charAt (start + 2) == '/') && (spec.charAt (start + 3) == '/');\r
29 if (!isUNCName && (start <= limit - 2) && (spec.charAt (start) == '/') && (spec.charAt (start + 1) == '/')) {\r
30 start += 2;\r
31 i = spec.indexOf ('/', start);\r
32 if (i < 0) {\r
33 i = spec.indexOf ('?', start);\r
34 if (i < 0) i = limit;\r
35 }host = authority = spec.substring (start, i);\r
36 var ind = authority.indexOf ('@');\r
37 if (ind != -1) {\r
38 userInfo = authority.substring (0, ind);\r
39 host = authority.substring (ind + 1);\r
40 } else {\r
41 userInfo = null;\r
42 }if (host != null) {\r
43 if (host.length > 0 && (host.charAt (0) == '[')) {\r
44 throw  new IllegalArgumentException ("Invalid host: " + host);\r
45 }ind = host.indexOf (':');\r
46 port = -1;\r
47 if (ind >= 0) {\r
48 if (host.length > (ind + 1)) {\r
49 port = Integer.parseInt (host.substring (ind + 1));\r
50 }host = host.substring (0, ind);\r
51 }} else {\r
52 host = "";\r
53 }if (port < -1) throw  new IllegalArgumentException ("Invalid port number :" + port);\r
54 start = i;\r
55 if (authority.length > 0) path = "";\r
56 }if (host == null) {\r
57 host = "";\r
58 }if (start < limit) {\r
59 if (spec.charAt (start) == '/') {\r
60 path = spec.substring (start, limit);\r
61 } else if (path != null && path.length > 0) {\r
62 isRelPath = true;\r
63 var ind = path.lastIndexOf ('/');\r
64 var seperator = "";\r
65 if (ind == -1 && authority != null) seperator = "/";\r
66 path = path.substring (0, ind + 1) + seperator + spec.substring (start, limit);\r
67 } else {\r
68 var seperator = (authority != null) ? "/" : "";\r
69 path = seperator + spec.substring (start, limit);\r
70 }} else if (queryOnly && path != null) {\r
71 var ind = path.lastIndexOf ('/');\r
72 if (ind < 0) ind = 0;\r
73 path = path.substring (0, ind) + "/";\r
74 }if (path == null) path = "";\r
75 if (isRelPath) {\r
76 while ((i = path.indexOf ("/./")) >= 0) {\r
77 path = path.substring (0, i) + path.substring (i + 2);\r
78 }\r
79 i = 0;\r
80 while ((i = path.indexOf ("/../", i)) >= 0) {\r
81 if (i > 0 && (limit = path.lastIndexOf ('/', i - 1)) >= 0 && (path.indexOf ("/../", limit) != 0)) {\r
82 path = path.substring (0, limit) + path.substring (i + 3);\r
83 i = 0;\r
84 } else {\r
85 i = i + 3;\r
86 }}\r
87 while (path.endsWith ("/..")) {\r
88 i = path.indexOf ("/..");\r
89 if ((limit = path.lastIndexOf ('/', i - 1)) >= 0) {\r
90 path = path.substring (0, limit + 1);\r
91 } else {\r
92 break;\r
93 }}\r
94 if (path.startsWith ("./") && path.length > 2) path = path.substring (2);\r
95 if (path.endsWith ("/.")) path = path.substring (0, path.length - 1);\r
96 }this.setURL (u, protocol, host, port, authority, userInfo, path, query, ref);\r
97 }, "java.net.URL,~S,~N,~N");\r
98 Clazz.defineMethod (c$, "getDefaultPort", \r
99 function () {\r
100 return -1;\r
101 });\r
102 Clazz.defineMethod (c$, "equals2", \r
103 function (u1, u2) {\r
104 var ref1 = u1.getRef ();\r
105 var ref2 = u2.getRef ();\r
106 return (ref1 === ref2 || (ref1 != null && ref1.equals (ref2))) && this.sameFile (u1, u2);\r
107 }, "java.net.URL,java.net.URL");\r
108 Clazz.defineMethod (c$, "hashCode", \r
109 function (u) {\r
110 var h = 0;\r
111 var protocol = u.getProtocol ();\r
112 if (protocol != null) h += protocol.hashCode ();\r
113 h += u.toString ().hashCode ();\r
114 var file = u.getFile ();\r
115 if (file != null) h += file.hashCode ();\r
116 if (u.getPort () == -1) h += this.getDefaultPort ();\r
117  else h += u.getPort ();\r
118 var ref = u.getRef ();\r
119 if (ref != null) h += ref.hashCode ();\r
120 return h;\r
121 }, "java.net.URL");\r
122 Clazz.defineMethod (c$, "sameFile", \r
123 function (u1, u2) {\r
124 if (!((u1.getProtocol () === u2.getProtocol ()) || (u1.getProtocol () != null && u1.getProtocol ().equalsIgnoreCase (u2.getProtocol ())))) return false;\r
125 if (!(u1.getFile () === u2.getFile () || (u1.getFile () != null && u1.getFile ().equals (u2.getFile ())))) return false;\r
126 var port1;\r
127 var port2;\r
128 port1 = (u1.getPort () != -1) ? u1.getPort () : u1.handler.getDefaultPort ();\r
129 port2 = (u2.getPort () != -1) ? u2.getPort () : u2.handler.getDefaultPort ();\r
130 if (port1 != port2) return false;\r
131 if (!this.hostsEqual (u1, u2)) return false;\r
132 return true;\r
133 }, "java.net.URL,java.net.URL");\r
134 Clazz.defineMethod (c$, "hostsEqual", \r
135 function (u1, u2) {\r
136 if (u1.getHost () != null && u2.getHost () != null) return u1.getHost ().equalsIgnoreCase (u2.getHost ());\r
137 return u1.getHost () == null && u2.getHost () == null;\r
138 }, "java.net.URL,java.net.URL");\r
139 Clazz.defineMethod (c$, "toExternalForm", \r
140 function (u) {\r
141 return "";\r
142 }, "java.net.URL");\r
143 Clazz.defineMethod (c$, "setURL", \r
144 function (u, protocol, host, port, authority, userInfo, path, query, ref) {\r
145 if (this !== u.handler) {\r
146 throw  new SecurityException ("handler for url different from this handler");\r
147 }u.set (u.getProtocol (), host, port, authority, userInfo, path, query, ref);\r
148 }, "java.net.URL,~S,~S,~N,~S,~S,~S,~S,~S");\r
149 Clazz.defineMethod (c$, "setURLDeprecated", \r
150 function (u, protocol, host, port, file, ref) {\r
151 var authority = null;\r
152 var userInfo = null;\r
153 if (host != null && host.length != 0) {\r
154 authority = (port == -1) ? host : host + ":" + port;\r
155 var at = host.lastIndexOf ('@');\r
156 if (at != -1) {\r
157 userInfo = host.substring (0, at);\r
158 host = host.substring (at + 1);\r
159 }}var path = null;\r
160 var query = null;\r
161 if (file != null) {\r
162 var q = file.lastIndexOf ('?');\r
163 if (q != -1) {\r
164 query = file.substring (q + 1);\r
165 path = file.substring (0, q);\r
166 } else path = file;\r
167 }this.setURL (u, protocol, host, port, authority, userInfo, path, query, ref);\r
168 }, "java.net.URL,~S,~S,~N,~S,~S");\r
169 });\r