Clazz.declarePackage ("java.net"); Clazz.load (["java.util.Hashtable"], "java.net.URL", ["java.lang.Character", "$.Error", "java.net.MalformedURLException"], function () { c$ = Clazz.decorateAsClass (function () { this.protocol = null; this.host = null; this.port = -1; this.file = null; this.query = null; this.authority = null; this.path = null; this.userInfo = null; this.ref = null; this.handler = null; this.$hashCode = -1; Clazz.instantialize (this, arguments); }, java.net, "URL"); Clazz.makeConstructor (c$, function (context, spec, handler) { { switch (arguments.length) { case 1: spec = context;context = handler = null; break; case 2: handler = null; break; case 3: if (context == null || Clazz.instanceOf(context, java.net.URL)) break; default: alert("java.net.URL constructor format not supported"); break; } context && context.valueOf && context.valueOf() == null && (context = null); }var original = spec; var i; var limit; var c; var start = 0; var newProtocol = null; var aRef = false; var isRelative = false; try { limit = spec.length; while ((limit > 0) && (spec.charAt (limit - 1) <= ' ')) { limit--; } while ((start < limit) && (spec.charAt (start) <= ' ')) { start++; } if (spec.regionMatches (true, start, "url:", 0, 4)) { start += 4; }if (start < spec.length && spec.charAt (start) == '#') { aRef = true; }for (i = start; !aRef && (i < limit) && ((c = spec.charCodeAt (i)) != 47); i++) { if (c == 58) { var s = spec.substring (start, i).toLowerCase (); if (this.isValidProtocol (s)) { newProtocol = s; start = i + 1; }break; }} this.protocol = newProtocol; if ((context != null) && ((newProtocol == null) || newProtocol.equalsIgnoreCase (context.protocol))) { if (handler == null) { handler = context.handler; }if (context.path != null && context.path.startsWith ("/")) newProtocol = null; if (newProtocol == null) { this.protocol = context.protocol; this.authority = context.authority; this.userInfo = context.userInfo; this.host = context.host; this.port = context.port; this.file = context.file; this.path = context.path; isRelative = true; }}if (this.protocol == null) { throw new java.net.MalformedURLException ("no protocol: " + original); }if (handler == null && (handler = java.net.URL.getURLStreamHandler (this.protocol)) == null) { throw new java.net.MalformedURLException ("unknown protocol: " + this.protocol); }this.handler = handler; i = spec.indexOf ('#', start); if (i >= 0) { this.ref = spec.substring (i + 1, limit); limit = i; }if (isRelative && start == limit) { this.query = context.query; if (this.ref == null) { this.ref = context.ref; }}handler.parseURL (this, spec, start, limit); } catch (e$$) { if (Clazz.exceptionOf (e$$, java.net.MalformedURLException)) { var e = e$$; { throw e; } } else if (Clazz.exceptionOf (e$$, Exception)) { var e = e$$; { var exception = new java.net.MalformedURLException (e.getMessage ()); exception.initCause (e); throw exception; } } else { throw e$$; } } }, "java.net.URL,~S,java.net.URLStreamHandler"); Clazz.defineMethod (c$, "isValidProtocol", function (protocol) { var len = protocol.length; if (len < 1) return false; var c = protocol.charAt (0); if (!Character.isLetter (c)) return false; for (var i = 1; i < len; i++) { c = protocol.charAt (i); if (!Character.isLetterOrDigit (c) && c != '.' && c != '+' && c != '-') { return false; }} return true; }, "~S"); Clazz.defineMethod (c$, "set5", function (protocol, host, port, file, ref) { { this.protocol = protocol; this.host = host; this.authority = port == -1 ? host : host + ":" + port; this.port = port; this.file = file; this.ref = ref; this.$hashCode = -1; var q = file.lastIndexOf ('?'); if (q != -1) { this.query = file.substring (q + 1); this.path = file.substring (0, q); } else this.path = file; }}, "~S,~S,~N,~S,~S"); Clazz.defineMethod (c$, "set", function (protocol, host, port, authority, userInfo, path, query, ref) { { this.protocol = protocol; this.host = host; this.port = port; this.file = query == null ? path : path + "?" + query; this.userInfo = userInfo; this.path = path; this.ref = ref; this.$hashCode = -1; this.query = query; this.authority = authority; }}, "~S,~S,~N,~S,~S,~S,~S,~S"); Clazz.defineMethod (c$, "getQuery", function () { return this.query; }); Clazz.defineMethod (c$, "getPath", function () { return this.path; }); Clazz.defineMethod (c$, "getUserInfo", function () { return this.userInfo; }); Clazz.defineMethod (c$, "getAuthority", function () { return this.authority; }); Clazz.defineMethod (c$, "getPort", function () { return this.port; }); Clazz.defineMethod (c$, "getDefaultPort", function () { return this.handler.getDefaultPort (); }); Clazz.defineMethod (c$, "getProtocol", function () { return this.protocol; }); Clazz.defineMethod (c$, "getHost", function () { return this.host; }); Clazz.defineMethod (c$, "getFile", function () { return this.file; }); Clazz.defineMethod (c$, "getRef", function () { return this.ref; }); Clazz.overrideMethod (c$, "equals", function (obj) { if (!(Clazz.instanceOf (obj, java.net.URL))) return false; var u2 = obj; return this.handler.equals2 (this, u2); }, "~O"); Clazz.overrideMethod (c$, "hashCode", function () { if (this.$hashCode != -1) return this.$hashCode; this.$hashCode = this.handler.hashCode (this); return this.$hashCode; }); Clazz.defineMethod (c$, "sameFile", function (other) { return this.handler.sameFile (this, other); }, "java.net.URL"); Clazz.overrideMethod (c$, "toString", function () { return this.toExternalForm (); }); Clazz.defineMethod (c$, "toExternalForm", function () { return this.handler.toExternalForm (this); }); Clazz.defineMethod (c$, "openConnection", function () { return this.handler.openConnection (this); }); Clazz.defineMethod (c$, "openStream", function () { return this.openConnection ().getInputStream (); }); Clazz.defineMethod (c$, "getContent", function () { return this.openConnection ().getInputStream (); }); c$.setURLStreamHandlerFactory = Clazz.defineMethod (c$, "setURLStreamHandlerFactory", function (fac) { { if (java.net.URL.factory != null) { throw new Error ("factory already defined"); }var security = System.getSecurityManager (); if (security != null) { security.checkSetFactory (); }java.net.URL.handlers.clear (); java.net.URL.factory = fac; }}, "java.net.URLStreamHandlerFactory"); c$.getURLStreamHandler = Clazz.defineMethod (c$, "getURLStreamHandler", function (protocol) { var handler = java.net.URL.handlers.get (protocol); if (handler == null) { if (java.net.URL.factory != null) { handler = java.net.URL.factory.createURLStreamHandler (protocol); }}return handler; }, "~S"); Clazz.defineStatics (c$, "factory", null); c$.handlers = c$.prototype.handlers = new java.util.Hashtable (); c$.streamHandlerLock = c$.prototype.streamHandlerLock = new Clazz._O (); });