home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / java / net / URLStreamHandler.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.9 KB  |  279 lines

  1. package java.net;
  2.  
  3. import java.io.IOException;
  4.  
  5. public abstract class URLStreamHandler {
  6.    protected abstract URLConnection openConnection(URL var1) throws IOException;
  7.  
  8.    protected void parseURL(URL var1, String var2, int var3, int var4) {
  9.       String var5 = var1.getProtocol();
  10.       String var6 = var1.getAuthority();
  11.       String var7 = var1.getUserInfo();
  12.       String var8 = var1.getHost();
  13.       int var9 = var1.getPort();
  14.       String var10 = var1.getFile();
  15.       String var11 = var1.getRef();
  16.       String var12 = null;
  17.       boolean var13 = false;
  18.       boolean var14 = false;
  19.       if (var3 < var4) {
  20.          int var15 = var2.indexOf(63);
  21.          var14 = var15 == var3;
  22.          if (var15 != -1) {
  23.             var12 = var2.substring(var15 + 1, var4);
  24.             if (var4 > var15) {
  25.                var4 = var15;
  26.             }
  27.  
  28.             var2 = var2.substring(0, var15);
  29.          }
  30.       }
  31.  
  32.       int var21 = 0;
  33.       if (var3 <= var4 - 2 && var2.charAt(var3) == '/' && var2.charAt(var3 + 1) == '/') {
  34.          var3 += 2;
  35.          var21 = var2.indexOf(47, var3);
  36.          if (var21 < 0) {
  37.             var21 = var2.indexOf(63, var3);
  38.             if (var21 < 0) {
  39.                var21 = var4;
  40.             }
  41.          }
  42.  
  43.          var8 = var6 = var2.substring(var3, var21);
  44.          int var16 = var6.indexOf(64);
  45.          if (var16 != -1) {
  46.             var7 = var6.substring(0, var16);
  47.             var8 = var6.substring(var16 + 1);
  48.          }
  49.  
  50.          var16 = var8.indexOf(58);
  51.          var9 = -1;
  52.          if (var16 >= 0) {
  53.             if (var8.length() > var16 + 1) {
  54.                var9 = Integer.parseInt(var8.substring(var16 + 1));
  55.             }
  56.  
  57.             var8 = var8.substring(0, var16);
  58.          }
  59.  
  60.          var3 = var21;
  61.          if (var6 != null && var6.length() > 0) {
  62.             var10 = "";
  63.          }
  64.       }
  65.  
  66.       if (var8 == null) {
  67.          var8 = "";
  68.       }
  69.  
  70.       if (var3 < var4) {
  71.          if (var2.charAt(var3) == '/') {
  72.             var10 = var2.substring(var3, var4);
  73.          } else if (var10 != null && var10.length() > 0) {
  74.             var13 = true;
  75.             int var28 = var10.lastIndexOf(47);
  76.             String var17 = "";
  77.             if (var28 == -1 && var6 != null) {
  78.                var17 = "/";
  79.             }
  80.  
  81.             var10 = var10.substring(0, var28 + 1) + var17 + var2.substring(var3, var4);
  82.          } else {
  83.             String var27 = var6 != null ? "/" : "";
  84.             var10 = var27 + var2.substring(var3, var4);
  85.          }
  86.       } else if (var14 && var10 != null) {
  87.          int var29 = var10.lastIndexOf(47);
  88.          if (var29 < 0) {
  89.             var29 = 0;
  90.          }
  91.  
  92.          var10 = var10.substring(0, var29) + "/";
  93.       }
  94.  
  95.       if (var10 == null) {
  96.          var10 = "";
  97.       }
  98.  
  99.       if (var13) {
  100.          while((var21 = var10.indexOf("/./")) >= 0) {
  101.             var10 = var10.substring(0, var21) + var10.substring(var21 + 2);
  102.          }
  103.  
  104.          while((var21 = var10.indexOf("/../")) >= 0) {
  105.             if ((var4 = var10.lastIndexOf(47, var21 - 1)) >= 0) {
  106.                var10 = var10.substring(0, var4) + var10.substring(var21 + 3);
  107.             } else {
  108.                var10 = var10.substring(var21 + 3);
  109.             }
  110.          }
  111.  
  112.          while(var10.endsWith("/..")) {
  113.             var21 = var10.indexOf("/..");
  114.             if ((var4 = var10.lastIndexOf(47, var21 - 1)) >= 0) {
  115.                var10 = var10.substring(0, var4 + 1);
  116.             } else {
  117.                var10 = var10.substring(0, var21);
  118.             }
  119.          }
  120.  
  121.          if (var10.endsWith("/.")) {
  122.             var10 = var10.substring(0, var10.length() - 1);
  123.          }
  124.       }
  125.  
  126.       this.setURL(var1, var5, var8, var9, var6, var7, var10, var12, var11);
  127.    }
  128.  
  129.    protected int getDefaultPort() {
  130.       return -1;
  131.    }
  132.  
  133.    protected boolean equals(URL var1, URL var2) {
  134.       String var3 = var1.getRef();
  135.       String var4 = var2.getRef();
  136.       return this.sameFile(var1, var2) && (var3 == var4 || var3 != null && var3.equals(var4));
  137.    }
  138.  
  139.    protected int hashCode(URL var1) {
  140.       int var2 = 0;
  141.       String var3 = var1.getProtocol();
  142.       if (var3 != null) {
  143.          var2 += var3.hashCode();
  144.       }
  145.  
  146.       InetAddress var4 = this.getHostAddress(var1);
  147.       if (var4 != null) {
  148.          var2 += var4.hashCode();
  149.       } else {
  150.          String var5 = var1.getHost();
  151.          if (var5 != null) {
  152.             var2 += var5.toLowerCase().hashCode();
  153.          }
  154.       }
  155.  
  156.       String var8 = var1.getFile();
  157.       if (var8 != null) {
  158.          var2 += var8.hashCode();
  159.       }
  160.  
  161.       if (var1.getPort() == -1) {
  162.          var2 += this.getDefaultPort();
  163.       } else {
  164.          var2 += var1.getPort();
  165.       }
  166.  
  167.       String var6 = var1.getRef();
  168.       if (var6 != null) {
  169.          var2 += var6.hashCode();
  170.       }
  171.  
  172.       return var2;
  173.    }
  174.  
  175.    protected boolean sameFile(URL var1, URL var2) {
  176.       if (var1.getProtocol() == var2.getProtocol() || var1.getProtocol() != null && var1.getProtocol().equalsIgnoreCase(var2.getProtocol())) {
  177.          if (!this.hostsEqual(var1, var2)) {
  178.             return false;
  179.          } else if (var1.getFile() == var2.getFile() || var1.getFile() != null && var1.getFile().equals(var2.getFile())) {
  180.             int var3 = var1.getPort() != -1 ? var1.getPort() : var1.handler.getDefaultPort();
  181.             int var4 = var2.getPort() != -1 ? var2.getPort() : var2.handler.getDefaultPort();
  182.             return var3 == var4;
  183.          } else {
  184.             return false;
  185.          }
  186.       } else {
  187.          return false;
  188.       }
  189.    }
  190.  
  191.    protected synchronized InetAddress getHostAddress(URL var1) {
  192.       if (var1.hostAddress != null) {
  193.          return var1.hostAddress;
  194.       } else {
  195.          String var2 = var1.getHost();
  196.          if (var2 != null && !var2.equals("")) {
  197.             try {
  198.                var1.hostAddress = InetAddress.getByName(var2);
  199.             } catch (UnknownHostException var5) {
  200.                return null;
  201.             } catch (SecurityException var6) {
  202.                return null;
  203.             }
  204.  
  205.             return var1.hostAddress;
  206.          } else {
  207.             return null;
  208.          }
  209.       }
  210.    }
  211.  
  212.    protected boolean hostsEqual(URL var1, URL var2) {
  213.       InetAddress var3 = this.getHostAddress(var1);
  214.       InetAddress var4 = this.getHostAddress(var2);
  215.       if (var3 != null && var4 != null) {
  216.          return var3.equals(var4);
  217.       } else if (var1.getHost() != null && var2.getHost() != null) {
  218.          return var1.getHost().equalsIgnoreCase(var2.getHost());
  219.       } else {
  220.          return var1.getHost() == null && var2.getHost() == null;
  221.       }
  222.    }
  223.  
  224.    protected String toExternalForm(URL var1) {
  225.       StringBuffer var2 = new StringBuffer(var1.getProtocol());
  226.       var2.append(":");
  227.       if (var1.getAuthority() != null && var1.getAuthority().length() > 0) {
  228.          var2.append("//");
  229.          var2.append(var1.getAuthority());
  230.       }
  231.  
  232.       if (var1.getFile() != null) {
  233.          var2.append(var1.getFile());
  234.       }
  235.  
  236.       if (var1.getRef() != null) {
  237.          var2.append("#");
  238.          var2.append(var1.getRef());
  239.       }
  240.  
  241.       return var2.toString();
  242.    }
  243.  
  244.    protected void setURL(URL var1, String var2, String var3, int var4, String var5, String var6, String var7, String var8, String var9) {
  245.       if (this != var1.handler) {
  246.          throw new SecurityException("handler for url different from this handler");
  247.       } else {
  248.          var1.set(var1.getProtocol(), var3, var4, var5, var6, var7, var8, var9);
  249.       }
  250.    }
  251.  
  252.    protected void setURL(URL var1, String var2, String var3, int var4, String var5, String var6) {
  253.       String var7 = null;
  254.       String var8 = null;
  255.       if (var3 != null && var3.length() != 0) {
  256.          var7 = var4 == -1 ? var3 : var3 + ":" + var4;
  257.          int var9 = var3.lastIndexOf(64);
  258.          if (var9 != -1) {
  259.             var8 = var3.substring(0, var9);
  260.             var3 = var3.substring(var9 + 1);
  261.          }
  262.       }
  263.  
  264.       String var12 = null;
  265.       String var10 = null;
  266.       if (var5 != null) {
  267.          int var11 = var5.lastIndexOf(63);
  268.          if (var11 != -1) {
  269.             var10 = var5.substring(var11 + 1);
  270.             var12 = var5.substring(0, var11);
  271.          } else {
  272.             var12 = var5;
  273.          }
  274.       }
  275.  
  276.       this.setURL(var1, var2, var3, var4, var7, var8, var12, var10, var6);
  277.    }
  278. }
  279.