home *** CD-ROM | disk | FTP | other *** search
- package java.net;
-
- import java.io.IOException;
-
- public abstract class URLStreamHandler {
- protected abstract URLConnection openConnection(URL var1) throws IOException;
-
- protected void parseURL(URL var1, String var2, int var3, int var4) {
- String var5 = var1.getProtocol();
- String var6 = var1.getAuthority();
- String var7 = var1.getUserInfo();
- String var8 = var1.getHost();
- int var9 = var1.getPort();
- String var10 = var1.getFile();
- String var11 = var1.getRef();
- String var12 = null;
- boolean var13 = false;
- boolean var14 = false;
- if (var3 < var4) {
- int var15 = var2.indexOf(63);
- var14 = var15 == var3;
- if (var15 != -1) {
- var12 = var2.substring(var15 + 1, var4);
- if (var4 > var15) {
- var4 = var15;
- }
-
- var2 = var2.substring(0, var15);
- }
- }
-
- int var21 = 0;
- if (var3 <= var4 - 2 && var2.charAt(var3) == '/' && var2.charAt(var3 + 1) == '/') {
- var3 += 2;
- var21 = var2.indexOf(47, var3);
- if (var21 < 0) {
- var21 = var2.indexOf(63, var3);
- if (var21 < 0) {
- var21 = var4;
- }
- }
-
- var8 = var6 = var2.substring(var3, var21);
- int var16 = var6.indexOf(64);
- if (var16 != -1) {
- var7 = var6.substring(0, var16);
- var8 = var6.substring(var16 + 1);
- }
-
- var16 = var8.indexOf(58);
- var9 = -1;
- if (var16 >= 0) {
- if (var8.length() > var16 + 1) {
- var9 = Integer.parseInt(var8.substring(var16 + 1));
- }
-
- var8 = var8.substring(0, var16);
- }
-
- var3 = var21;
- if (var6 != null && var6.length() > 0) {
- var10 = "";
- }
- }
-
- if (var8 == null) {
- var8 = "";
- }
-
- if (var3 < var4) {
- if (var2.charAt(var3) == '/') {
- var10 = var2.substring(var3, var4);
- } else if (var10 != null && var10.length() > 0) {
- var13 = true;
- int var28 = var10.lastIndexOf(47);
- String var17 = "";
- if (var28 == -1 && var6 != null) {
- var17 = "/";
- }
-
- var10 = var10.substring(0, var28 + 1) + var17 + var2.substring(var3, var4);
- } else {
- String var27 = var6 != null ? "/" : "";
- var10 = var27 + var2.substring(var3, var4);
- }
- } else if (var14 && var10 != null) {
- int var29 = var10.lastIndexOf(47);
- if (var29 < 0) {
- var29 = 0;
- }
-
- var10 = var10.substring(0, var29) + "/";
- }
-
- if (var10 == null) {
- var10 = "";
- }
-
- if (var13) {
- while((var21 = var10.indexOf("/./")) >= 0) {
- var10 = var10.substring(0, var21) + var10.substring(var21 + 2);
- }
-
- while((var21 = var10.indexOf("/../")) >= 0) {
- if ((var4 = var10.lastIndexOf(47, var21 - 1)) >= 0) {
- var10 = var10.substring(0, var4) + var10.substring(var21 + 3);
- } else {
- var10 = var10.substring(var21 + 3);
- }
- }
-
- while(var10.endsWith("/..")) {
- var21 = var10.indexOf("/..");
- if ((var4 = var10.lastIndexOf(47, var21 - 1)) >= 0) {
- var10 = var10.substring(0, var4 + 1);
- } else {
- var10 = var10.substring(0, var21);
- }
- }
-
- if (var10.endsWith("/.")) {
- var10 = var10.substring(0, var10.length() - 1);
- }
- }
-
- this.setURL(var1, var5, var8, var9, var6, var7, var10, var12, var11);
- }
-
- protected int getDefaultPort() {
- return -1;
- }
-
- protected boolean equals(URL var1, URL var2) {
- String var3 = var1.getRef();
- String var4 = var2.getRef();
- return this.sameFile(var1, var2) && (var3 == var4 || var3 != null && var3.equals(var4));
- }
-
- protected int hashCode(URL var1) {
- int var2 = 0;
- String var3 = var1.getProtocol();
- if (var3 != null) {
- var2 += var3.hashCode();
- }
-
- InetAddress var4 = this.getHostAddress(var1);
- if (var4 != null) {
- var2 += var4.hashCode();
- } else {
- String var5 = var1.getHost();
- if (var5 != null) {
- var2 += var5.toLowerCase().hashCode();
- }
- }
-
- String var8 = var1.getFile();
- if (var8 != null) {
- var2 += var8.hashCode();
- }
-
- if (var1.getPort() == -1) {
- var2 += this.getDefaultPort();
- } else {
- var2 += var1.getPort();
- }
-
- String var6 = var1.getRef();
- if (var6 != null) {
- var2 += var6.hashCode();
- }
-
- return var2;
- }
-
- protected boolean sameFile(URL var1, URL var2) {
- if (var1.getProtocol() == var2.getProtocol() || var1.getProtocol() != null && var1.getProtocol().equalsIgnoreCase(var2.getProtocol())) {
- if (!this.hostsEqual(var1, var2)) {
- return false;
- } else if (var1.getFile() == var2.getFile() || var1.getFile() != null && var1.getFile().equals(var2.getFile())) {
- int var3 = var1.getPort() != -1 ? var1.getPort() : var1.handler.getDefaultPort();
- int var4 = var2.getPort() != -1 ? var2.getPort() : var2.handler.getDefaultPort();
- return var3 == var4;
- } else {
- return false;
- }
- } else {
- return false;
- }
- }
-
- protected synchronized InetAddress getHostAddress(URL var1) {
- if (var1.hostAddress != null) {
- return var1.hostAddress;
- } else {
- String var2 = var1.getHost();
- if (var2 != null && !var2.equals("")) {
- try {
- var1.hostAddress = InetAddress.getByName(var2);
- } catch (UnknownHostException var5) {
- return null;
- } catch (SecurityException var6) {
- return null;
- }
-
- return var1.hostAddress;
- } else {
- return null;
- }
- }
- }
-
- protected boolean hostsEqual(URL var1, URL var2) {
- InetAddress var3 = this.getHostAddress(var1);
- InetAddress var4 = this.getHostAddress(var2);
- if (var3 != null && var4 != null) {
- return var3.equals(var4);
- } else if (var1.getHost() != null && var2.getHost() != null) {
- return var1.getHost().equalsIgnoreCase(var2.getHost());
- } else {
- return var1.getHost() == null && var2.getHost() == null;
- }
- }
-
- protected String toExternalForm(URL var1) {
- StringBuffer var2 = new StringBuffer(var1.getProtocol());
- var2.append(":");
- if (var1.getAuthority() != null && var1.getAuthority().length() > 0) {
- var2.append("//");
- var2.append(var1.getAuthority());
- }
-
- if (var1.getFile() != null) {
- var2.append(var1.getFile());
- }
-
- if (var1.getRef() != null) {
- var2.append("#");
- var2.append(var1.getRef());
- }
-
- return var2.toString();
- }
-
- protected void setURL(URL var1, String var2, String var3, int var4, String var5, String var6, String var7, String var8, String var9) {
- if (this != var1.handler) {
- throw new SecurityException("handler for url different from this handler");
- } else {
- var1.set(var1.getProtocol(), var3, var4, var5, var6, var7, var8, var9);
- }
- }
-
- protected void setURL(URL var1, String var2, String var3, int var4, String var5, String var6) {
- String var7 = null;
- String var8 = null;
- if (var3 != null && var3.length() != 0) {
- var7 = var4 == -1 ? var3 : var3 + ":" + var4;
- int var9 = var3.lastIndexOf(64);
- if (var9 != -1) {
- var8 = var3.substring(0, var9);
- var3 = var3.substring(var9 + 1);
- }
- }
-
- String var12 = null;
- String var10 = null;
- if (var5 != null) {
- int var11 = var5.lastIndexOf(63);
- if (var11 != -1) {
- var10 = var5.substring(var11 + 1);
- var12 = var5.substring(0, var11);
- } else {
- var12 = var5;
- }
- }
-
- this.setURL(var1, var2, var3, var4, var7, var8, var12, var10, var6);
- }
- }
-