home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / net / URLStreamHandler.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  2.3 KB  |  111 lines

  1. package java.net;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5.  
  6. public abstract class URLStreamHandler {
  7.    protected abstract URLConnection openConnection(URL var1) throws IOException;
  8.  
  9.    protected void parseURL(URL var1, String var2, int var3, int var4) {
  10.       String var5 = var1.getProtocol();
  11.       String var6 = var1.getHost();
  12.       int var7 = var1.getPort();
  13.       String var8 = var1.getFile();
  14.       String var9 = var1.getRef();
  15.       int var10;
  16.       if (var8 != null && (var10 = var8.indexOf(63)) >= 0) {
  17.          var8 = var8.substring(0, var10);
  18.       }
  19.  
  20.       if (var3 <= var4 - 2 && var2.charAt(var3) == '/' && var2.charAt(var3 + 1) == '/') {
  21.          var3 += 2;
  22.          var10 = var2.indexOf(47, var3);
  23.          if (var10 < 0) {
  24.             var10 = var4;
  25.          }
  26.  
  27.          int var11 = var2.indexOf(58, var3);
  28.          var7 = -1;
  29.          if (var11 < var10 && var11 >= 0) {
  30.             try {
  31.                var7 = Integer.parseInt(var2.substring(var11 + 1, var10));
  32.             } catch (Exception var12) {
  33.             }
  34.  
  35.             if (var11 > var3) {
  36.                var6 = var2.substring(var3, var11);
  37.             }
  38.          } else {
  39.             var6 = var2.substring(var3, var10);
  40.          }
  41.  
  42.          var3 = var10;
  43.          var8 = null;
  44.       } else if (var6 == null) {
  45.          var6 = "";
  46.       }
  47.  
  48.       if (var3 < var4) {
  49.          if (var2.charAt(var3) == '/') {
  50.             var8 = var2.substring(var3, var4);
  51.          } else if (var8 != null && var8.length() > 0) {
  52.             int var19 = Math.max(var8.lastIndexOf(47), var8.lastIndexOf(File.separatorChar));
  53.             var8 = var8.substring(0, var19) + "/" + var2.substring(var3, var4);
  54.          } else {
  55.             var8 = "/" + var2.substring(var3, var4);
  56.          }
  57.       }
  58.  
  59.       if (var8 == null || var8.length() == 0) {
  60.          var8 = "/";
  61.       }
  62.  
  63.       while((var10 = var8.indexOf("/./")) >= 0) {
  64.          var8 = var8.substring(0, var10) + var8.substring(var10 + 2);
  65.       }
  66.  
  67.       while((var10 = var8.indexOf("/../")) >= 0) {
  68.          if ((var4 = var8.lastIndexOf(47, var10 - 1)) >= 0) {
  69.             var8 = var8.substring(0, var4) + var8.substring(var10 + 3);
  70.          } else {
  71.             var8 = var8.substring(var10 + 3);
  72.          }
  73.       }
  74.  
  75.       if (var8.endsWith("/.")) {
  76.          var8 = var8.substring(0, var8.length() - 1);
  77.       }
  78.  
  79.       if (var8.endsWith("/..")) {
  80.          if ((var4 = var8.lastIndexOf(47, var8.length() - 4)) > 0) {
  81.             var8 = var8.substring(0, var4 + 1);
  82.          } else {
  83.             var8 = "/";
  84.          }
  85.       }
  86.  
  87.       var1.set(var5, var6, var7, var8, var9);
  88.    }
  89.  
  90.    protected String toExternalForm(URL var1) {
  91.       String var2 = var1.getProtocol() + ":";
  92.       if (var1.getHost() != null && var1.getHost().length() > 0) {
  93.          var2 = var2 + "//" + var1.getHost();
  94.          if (var1.getPort() != -1) {
  95.             var2 = var2 + ":" + var1.getPort();
  96.          }
  97.       }
  98.  
  99.       var2 = var2 + var1.getFile();
  100.       if (var1.getRef() != null) {
  101.          var2 = var2 + "#" + var1.getRef();
  102.       }
  103.  
  104.       return var2;
  105.    }
  106.  
  107.    protected void setURL(URL var1, String var2, String var3, int var4, String var5, String var6) {
  108.       var1.set(var2, var3, var4, var5, var6);
  109.    }
  110. }
  111.