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
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
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
31 i = spec.indexOf ('/', start);
\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
38 userInfo = authority.substring (0, ind);
\r
39 host = authority.substring (ind + 1);
\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
48 if (host.length > (ind + 1)) {
\r
49 port = Integer.parseInt (host.substring (ind + 1));
\r
50 }host = host.substring (0, ind);
\r
53 }if (port < -1) throw new IllegalArgumentException ("Invalid port number :" + port);
\r
55 if (authority.length > 0) path = "";
\r
56 }if (host == null) {
\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
63 var ind = path.lastIndexOf ('/');
\r
65 if (ind == -1 && authority != null) seperator = "/";
\r
66 path = path.substring (0, ind + 1) + seperator + spec.substring (start, limit);
\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
76 while ((i = path.indexOf ("/./")) >= 0) {
\r
77 path = path.substring (0, i) + path.substring (i + 2);
\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
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
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
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
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
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
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
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
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
157 userInfo = host.substring (0, at);
\r
158 host = host.substring (at + 1);
\r
161 if (file != null) {
\r
162 var q = file.lastIndexOf ('?');
\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