home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2004 May / DPPCPRO0504.ISO / May / Seatools / SeaTools.iso / tools / en / webhelp / webhelp.jar / hhapplet / URLFileHandler.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-04-17  |  2.4 KB  |  143 lines

  1. package hhapplet;
  2.  
  3. import java.io.File;
  4. import java.net.MalformedURLException;
  5. import java.net.URL;
  6.  
  7. public class URLFileHandler {
  8.    public static String GetNormalizedLocal2(String var0) {
  9.       String var1 = var0;
  10.  
  11.       for(int var2 = 0; var2 < var1.length(); ++var2) {
  12.          if (var1.charAt(var2) > 127) {
  13.             String var3 = Integer.toString(var1.charAt(var2), 16);
  14.             if (var3.length() > 2) {
  15.                if (var3.compareTo("152") == 0) {
  16.                   var3 = "8C";
  17.                } else {
  18.                   var3 = var3.substring(2);
  19.                }
  20.             }
  21.  
  22.             var1 = var1.substring(0, var2) + "%" + var3 + var1.substring(var2 + 1, var1.length());
  23.          }
  24.       }
  25.  
  26.       return var1;
  27.    }
  28.  
  29.    public static String GetNormalizedLocal(String var0) {
  30.       String var1 = var0;
  31.       if (System.getProperty("java.vendor").indexOf("Netscape") != -1 || System.getProperty("java.vendor").indexOf("Sun Microsystems") != -1 || var0.startsWith("http://")) {
  32.          var1 = GetNormalizedLocal2(var0);
  33.       }
  34.  
  35.       return var1;
  36.    }
  37.  
  38.    public static String TruncURLtoQuestionMark(String var0) {
  39.       String var1 = var0;
  40.       int var2 = var0.indexOf(63);
  41.       if (var2 != -1) {
  42.          var1 = var0.substring(0, var2);
  43.       }
  44.  
  45.       return var1;
  46.    }
  47.  
  48.    public static URL makeURL(URL var0, String var1, String var2) throws MalformedURLException {
  49.       try {
  50.          String var3 = var0.getProtocol();
  51.          String var14 = var0.getHost();
  52.          String var5 = var0.getFile();
  53.          int var6 = var0.getPort();
  54.          String var7 = tuHtmlToText(var5);
  55.          String var8 = GetNormalizedLocal(var7);
  56.          String var9 = TruncURLtoQuestionMark(var8);
  57.          URL var10 = new URL(var3, var14, var6, var9);
  58.          String var11 = tuHtmlToText(var1);
  59.          String var12 = GetNormalizedLocal(var11);
  60.          return new URL(var10, var12);
  61.       } catch (MalformedURLException var13) {
  62.          ((Throwable)var13).printStackTrace();
  63.          File var4 = new File(var1);
  64.          return var4.exists() ? new URL("file:/" + var1) : new URL(var0, var2);
  65.       }
  66.    }
  67.  
  68.    static String tuHtmlToText(String var0) {
  69.       if (var0 == null) {
  70.          return null;
  71.       } else {
  72.          int var1 = var0.indexOf(38);
  73.          if (var1 < 0) {
  74.             return var0;
  75.          } else {
  76.             String var2 = "";
  77.  
  78.             while(var1 > -1 && var1 < var0.length() - 2) {
  79.                var2 = var2 + var0.substring(0, var1);
  80.                String var3 = var0.substring(var1);
  81.                int var4 = var3.indexOf(59);
  82.                if (var4 < 0) {
  83.                   var2 = var2 + var3;
  84.                   break;
  85.                }
  86.  
  87.                if (var4 < var3.length() - 1) {
  88.                   var0 = var3.substring(var4 + 1);
  89.                } else {
  90.                   var0 = "";
  91.                }
  92.  
  93.                var3 = var3.substring(1, var4);
  94.                switch (Character.toUpperCase(var3.charAt(0))) {
  95.                   case 'A':
  96.                      if (var3.equalsIgnoreCase("amp")) {
  97.                         var3 = "&";
  98.                      }
  99.                      break;
  100.                   case 'C':
  101.                      if (var3.equalsIgnoreCase("copy")) {
  102.                         var3 = "(c)";
  103.                      }
  104.                      break;
  105.                   case 'G':
  106.                      if (var3.equalsIgnoreCase("gt")) {
  107.                         var3 = ">";
  108.                      }
  109.                      break;
  110.                   case 'L':
  111.                      if (var3.equalsIgnoreCase("lt")) {
  112.                         var3 = "<";
  113.                      }
  114.                      break;
  115.                   case 'N':
  116.                      if (var3.equalsIgnoreCase("nbsp")) {
  117.                         var3 = " ";
  118.                      }
  119.                      break;
  120.                   case 'Q':
  121.                      if (var3.equalsIgnoreCase("quot")) {
  122.                         var3 = "\"";
  123.                      }
  124.                      break;
  125.                   case 'R':
  126.                      if (var3.equalsIgnoreCase("reg")) {
  127.                         var3 = "(R)";
  128.                      }
  129.                }
  130.  
  131.                var2 = var2 + var3;
  132.                var1 = var0.indexOf(38);
  133.                if (var1 < 0) {
  134.                   var2 = var2 + var0;
  135.                }
  136.             }
  137.  
  138.             return var2;
  139.          }
  140.       }
  141.    }
  142. }
  143.