Clazz.declarePackage ("java.net"); Clazz.load (null, "java.net.URLStreamHandler", ["java.lang.IllegalArgumentException", "$.SecurityException", "$.UnsupportedOperationException"], function () { c$ = Clazz.declareType (java.net, "URLStreamHandler"); Clazz.defineMethod (c$, "openConnectionProxy", function (u, p) { throw new UnsupportedOperationException ("Method not implemented."); }, "java.net.URL,java.net.Proxy"); Clazz.defineMethod (c$, "parseURL", function (u, spec, start, limit) { var protocol = u.getProtocol (); var authority = u.getAuthority (); var userInfo = u.getUserInfo (); var host = u.getHost (); var port = u.getPort (); var path = u.getPath (); var query = u.getQuery (); var ref = u.getRef (); var isRelPath = false; var queryOnly = false; if (start < limit) { var queryStart = spec.indexOf ('?'); queryOnly = queryStart == start; if ((queryStart != -1) && (queryStart < limit)) { query = spec.substring (queryStart + 1, limit); if (limit > queryStart) limit = queryStart; spec = spec.substring (0, queryStart); }}var i = 0; var isUNCName = (start <= limit - 4) && (spec.charAt (start) == '/') && (spec.charAt (start + 1) == '/') && (spec.charAt (start + 2) == '/') && (spec.charAt (start + 3) == '/'); if (!isUNCName && (start <= limit - 2) && (spec.charAt (start) == '/') && (spec.charAt (start + 1) == '/')) { start += 2; i = spec.indexOf ('/', start); if (i < 0) { i = spec.indexOf ('?', start); if (i < 0) i = limit; }host = authority = spec.substring (start, i); var ind = authority.indexOf ('@'); if (ind != -1) { userInfo = authority.substring (0, ind); host = authority.substring (ind + 1); } else { userInfo = null; }if (host != null) { if (host.length > 0 && (host.charAt (0) == '[')) { throw new IllegalArgumentException ("Invalid host: " + host); }ind = host.indexOf (':'); port = -1; if (ind >= 0) { if (host.length > (ind + 1)) { port = Integer.parseInt (host.substring (ind + 1)); }host = host.substring (0, ind); }} else { host = ""; }if (port < -1) throw new IllegalArgumentException ("Invalid port number :" + port); start = i; if (authority.length > 0) path = ""; }if (host == null) { host = ""; }if (start < limit) { if (spec.charAt (start) == '/') { path = spec.substring (start, limit); } else if (path != null && path.length > 0) { isRelPath = true; var ind = path.lastIndexOf ('/'); var seperator = ""; if (ind == -1 && authority != null) seperator = "/"; path = path.substring (0, ind + 1) + seperator + spec.substring (start, limit); } else { var seperator = (authority != null) ? "/" : ""; path = seperator + spec.substring (start, limit); }} else if (queryOnly && path != null) { var ind = path.lastIndexOf ('/'); if (ind < 0) ind = 0; path = path.substring (0, ind) + "/"; }if (path == null) path = ""; if (isRelPath) { while ((i = path.indexOf ("/./")) >= 0) { path = path.substring (0, i) + path.substring (i + 2); } i = 0; while ((i = path.indexOf ("/../", i)) >= 0) { if (i > 0 && (limit = path.lastIndexOf ('/', i - 1)) >= 0 && (path.indexOf ("/../", limit) != 0)) { path = path.substring (0, limit) + path.substring (i + 3); i = 0; } else { i = i + 3; }} while (path.endsWith ("/..")) { i = path.indexOf ("/.."); if ((limit = path.lastIndexOf ('/', i - 1)) >= 0) { path = path.substring (0, limit + 1); } else { break; }} if (path.startsWith ("./") && path.length > 2) path = path.substring (2); if (path.endsWith ("/.")) path = path.substring (0, path.length - 1); }this.setURL (u, protocol, host, port, authority, userInfo, path, query, ref); }, "java.net.URL,~S,~N,~N"); Clazz.defineMethod (c$, "getDefaultPort", function () { return -1; }); Clazz.defineMethod (c$, "equals2", function (u1, u2) { var ref1 = u1.getRef (); var ref2 = u2.getRef (); return (ref1 === ref2 || (ref1 != null && ref1.equals (ref2))) && this.sameFile (u1, u2); }, "java.net.URL,java.net.URL"); Clazz.defineMethod (c$, "hashCode", function (u) { var h = 0; var protocol = u.getProtocol (); if (protocol != null) h += protocol.hashCode (); h += u.toString ().hashCode (); var file = u.getFile (); if (file != null) h += file.hashCode (); if (u.getPort () == -1) h += this.getDefaultPort (); else h += u.getPort (); var ref = u.getRef (); if (ref != null) h += ref.hashCode (); return h; }, "java.net.URL"); Clazz.defineMethod (c$, "sameFile", function (u1, u2) { if (!((u1.getProtocol () === u2.getProtocol ()) || (u1.getProtocol () != null && u1.getProtocol ().equalsIgnoreCase (u2.getProtocol ())))) return false; if (!(u1.getFile () === u2.getFile () || (u1.getFile () != null && u1.getFile ().equals (u2.getFile ())))) return false; var port1; var port2; port1 = (u1.getPort () != -1) ? u1.getPort () : u1.handler.getDefaultPort (); port2 = (u2.getPort () != -1) ? u2.getPort () : u2.handler.getDefaultPort (); if (port1 != port2) return false; if (!this.hostsEqual (u1, u2)) return false; return true; }, "java.net.URL,java.net.URL"); Clazz.defineMethod (c$, "hostsEqual", function (u1, u2) { if (u1.getHost () != null && u2.getHost () != null) return u1.getHost ().equalsIgnoreCase (u2.getHost ()); return u1.getHost () == null && u2.getHost () == null; }, "java.net.URL,java.net.URL"); Clazz.defineMethod (c$, "toExternalForm", function (u) { return ""; }, "java.net.URL"); Clazz.defineMethod (c$, "setURL", function (u, protocol, host, port, authority, userInfo, path, query, ref) { if (this !== u.handler) { throw new SecurityException ("handler for url different from this handler"); }u.set (u.getProtocol (), host, port, authority, userInfo, path, query, ref); }, "java.net.URL,~S,~S,~N,~S,~S,~S,~S,~S"); Clazz.defineMethod (c$, "setURLDeprecated", function (u, protocol, host, port, file, ref) { var authority = null; var userInfo = null; if (host != null && host.length != 0) { authority = (port == -1) ? host : host + ":" + port; var at = host.lastIndexOf ('@'); if (at != -1) { userInfo = host.substring (0, at); host = host.substring (at + 1); }}var path = null; var query = null; if (file != null) { var q = file.lastIndexOf ('?'); if (q != -1) { query = file.substring (q + 1); path = file.substring (0, q); } else path = file; }this.setURL (u, protocol, host, port, authority, userInfo, path, query, ref); }, "java.net.URL,~S,~S,~N,~S,~S"); });