home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / bsf.jar / com / ibm / cs / util / StringUtils.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-09-24  |  6.7 KB  |  332 lines

  1. package com.ibm.cs.util;
  2.  
  3. import java.beans.Introspector;
  4. import java.io.BufferedReader;
  5. import java.io.File;
  6. import java.io.FileNotFoundException;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.io.InputStreamReader;
  10. import java.io.Reader;
  11. import java.io.StringReader;
  12. import java.net.MalformedURLException;
  13. import java.net.URL;
  14. import java.util.StringTokenizer;
  15. import java.util.Vector;
  16.  
  17. public class StringUtils {
  18.    private static boolean debug;
  19.    public static String lineSeparator = System.getProperty("line.separator");
  20.    public static String lineSeparatorStr;
  21.  
  22.    public static String getSafeString(String var0) {
  23.       BufferedReader var1 = new BufferedReader(new StringReader(var0));
  24.       StringBuffer var2 = new StringBuffer();
  25.       String var4 = null;
  26.  
  27.       String var3;
  28.       try {
  29.          for(; (var3 = var1.readLine()) != null; var4 = cleanString(var3)) {
  30.             if (var4 != null) {
  31.                var2.append("\"" + var4 + lineSeparatorStr + "\" +" + lineSeparator);
  32.             }
  33.          }
  34.       } catch (IOException var5) {
  35.       }
  36.  
  37.       var2.append("\"" + (var4 != null ? var4 : "") + "\"" + lineSeparator);
  38.       return var2.toString();
  39.    }
  40.  
  41.    public static String cleanString(String var0) {
  42.       if (var0 == null) {
  43.          return null;
  44.       } else {
  45.          char[] var1 = var0.toCharArray();
  46.          StringBuffer var2 = new StringBuffer();
  47.  
  48.          for(int var3 = 0; var3 < var1.length; ++var3) {
  49.             switch (var1[var3]) {
  50.                case '\n':
  51.                   var2.append("\\n");
  52.                   break;
  53.                case '\r':
  54.                   var2.append("\\r");
  55.                   break;
  56.                case '"':
  57.                   var2.append("\\\"");
  58.                   break;
  59.                case '\\':
  60.                   var2.append("\\\\");
  61.                   break;
  62.                default:
  63.                   var2.append(var1[var3]);
  64.             }
  65.          }
  66.  
  67.          return var2.toString();
  68.       }
  69.    }
  70.  
  71.    public static String getClassName(Class var0) {
  72.       String var1 = var0.getName();
  73.       return var0.isArray() ? parseDescriptor(var1) : var1;
  74.    }
  75.  
  76.    private static String parseDescriptor(String var0) {
  77.       char[] var1 = var0.toCharArray();
  78.       int var2 = 0;
  79.  
  80.       int var3;
  81.       for(var3 = 0; var1[var3] == '['; ++var3) {
  82.          ++var2;
  83.       }
  84.  
  85.       StringBuffer var4 = new StringBuffer();
  86.       switch (var1[var3++]) {
  87.          case 'B':
  88.             var4.append("byte");
  89.             break;
  90.          case 'C':
  91.             var4.append("char");
  92.             break;
  93.          case 'D':
  94.             var4.append("double");
  95.             break;
  96.          case 'F':
  97.             var4.append("float");
  98.             break;
  99.          case 'I':
  100.             var4.append("int");
  101.             break;
  102.          case 'J':
  103.             var4.append("long");
  104.             break;
  105.          case 'L':
  106.             var4.append(var1, var3, var1.length - var3 - 1);
  107.             break;
  108.          case 'S':
  109.             var4.append("short");
  110.             break;
  111.          case 'Z':
  112.             var4.append("boolean");
  113.       }
  114.  
  115.       for(int var6 = 0; var6 < var2; ++var6) {
  116.          var4.append("[]");
  117.       }
  118.  
  119.       return var4.toString();
  120.    }
  121.  
  122.    public static String getCommaListFromVector(Vector var0) {
  123.       StringBuffer var1 = new StringBuffer();
  124.  
  125.       for(int var2 = 0; var2 < var0.size(); ++var2) {
  126.          var1.append((var2 > 0 ? ", " : "") + var0.elementAt(var2));
  127.       }
  128.  
  129.       return var1.toString();
  130.    }
  131.  
  132.    public static String getChars(int var0, char var1) {
  133.       if (var0 <= 0) {
  134.          return "";
  135.       } else {
  136.          StringBuffer var2 = new StringBuffer(var0);
  137.  
  138.          for(int var3 = 0; var3 < var0; ++var3) {
  139.             var2.append(var1);
  140.          }
  141.  
  142.          return var2.toString();
  143.       }
  144.    }
  145.  
  146.    public static boolean isValidIdentifierName(String var0) {
  147.       if (var0 != null && var0.length() != 0) {
  148.          char[] var1 = var0.toCharArray();
  149.          if (!Character.isJavaIdentifierStart(var1[0])) {
  150.             return false;
  151.          } else {
  152.             for(int var2 = 1; var2 < var1.length; ++var2) {
  153.                if (!Character.isJavaIdentifierPart(var1[var2])) {
  154.                   return false;
  155.                }
  156.             }
  157.  
  158.             return true;
  159.          }
  160.       } else {
  161.          return false;
  162.       }
  163.    }
  164.  
  165.    public static boolean isValidPackageName(String var0) {
  166.       if (var0 == null) {
  167.          return false;
  168.       } else if (var0.length() == 0) {
  169.          return true;
  170.       } else {
  171.          StringTokenizer var1 = new StringTokenizer(var0, ".", true);
  172.          if (var1.countTokens() % 2 != 1) {
  173.             return false;
  174.          } else if (!isValidIdentifierName(var1.nextToken())) {
  175.             return false;
  176.          } else {
  177.             while(var1.hasMoreTokens()) {
  178.                if (!var1.nextToken().equals(".")) {
  179.                   return false;
  180.                }
  181.  
  182.                if (!var1.hasMoreTokens()) {
  183.                   return false;
  184.                }
  185.  
  186.                if (!isValidIdentifierName(var1.nextToken())) {
  187.                   return false;
  188.                }
  189.             }
  190.  
  191.             return true;
  192.          }
  193.       }
  194.    }
  195.  
  196.    public static String classNameToVarName(String var0) {
  197.       int var1;
  198.       for(var1 = 0; var0.endsWith("[]"); ++var1) {
  199.          var0 = var0.substring(0, var0.length() - 2);
  200.       }
  201.  
  202.       int var2 = var0.lastIndexOf(46);
  203.       String var3 = Introspector.decapitalize(var2 != -1 ? var0.substring(var2 + 1) : var0);
  204.       if (var1 > 0) {
  205.          var3 = var3 + "_" + var1 + "D";
  206.       }
  207.  
  208.       return getValidIdentifierName(var3);
  209.    }
  210.  
  211.    public static String getValidIdentifierName(String var0) {
  212.       if (var0 != null && var0.length() != 0) {
  213.          StringBuffer var1 = new StringBuffer();
  214.          char[] var2 = var0.toCharArray();
  215.          var1.append(Character.isJavaIdentifierStart(var2[0]) ? var2[0] : '_');
  216.  
  217.          for(int var3 = 1; var3 < var2.length; ++var3) {
  218.             var1.append(Character.isJavaIdentifierPart(var2[var3]) ? var2[var3] : '_');
  219.          }
  220.  
  221.          return var1.toString();
  222.       } else {
  223.          return null;
  224.       }
  225.    }
  226.  
  227.    private static URL getURL(URL var0, String var1, int var2) throws MalformedURLException {
  228.       Vector var3 = null;
  229.       if (debug) {
  230.          var3 = new Vector();
  231.          System.err.println();
  232.          System.err.println("getURL(depth: " + var2 + "):");
  233.          System.err.println("contextURL=" + var0);
  234.          System.err.println("spec=" + var1);
  235.       }
  236.  
  237.       Object var4 = null;
  238.  
  239.       try {
  240.          var10 = new URL(var0, var1);
  241.  
  242.          try {
  243.             var10.openStream();
  244.          } catch (IOException var8) {
  245.             if (debug) {
  246.                var3.addElement("1st failed to open.");
  247.             }
  248.  
  249.             throw new MalformedURLException("This file was not found: " + var10);
  250.          }
  251.       } catch (MalformedURLException var9) {
  252.          if (debug) {
  253.             var3.addElement("1st failed.");
  254.          }
  255.  
  256.          var10 = new URL("file", "", var1);
  257.  
  258.          try {
  259.             var10.openStream();
  260.          } catch (IOException var7) {
  261.             if (debug) {
  262.                var3.addElement("2nd failed to open.");
  263.             }
  264.  
  265.             if (var0 != null) {
  266.                String var5 = var0.getFile();
  267.                String var6 = (new File(var5)).getParent();
  268.                if (var6 != null && var2 < 3) {
  269.                   if (debug) {
  270.                      System.err.println("failures: " + var3);
  271.                   }
  272.  
  273.                   return getURL(new URL("file", "", var6 + '/'), var1, var2 + 1);
  274.                }
  275.             }
  276.  
  277.             throw new MalformedURLException("This file was not found: " + var10);
  278.          }
  279.       }
  280.  
  281.       if (debug) {
  282.          System.err.println("failures: " + var3);
  283.          System.err.println("finalURL=" + var10);
  284.       }
  285.  
  286.       return var10;
  287.    }
  288.  
  289.    public static URL getURL(URL var0, String var1) throws MalformedURLException {
  290.       if (debug) {
  291.          System.err.println();
  292.          System.err.println("Loading " + var1 + "...");
  293.       }
  294.  
  295.       return getURL(var0, var1, 1);
  296.    }
  297.  
  298.    public static Reader getContentAsReader(URL var0) throws SecurityException, IllegalArgumentException, IOException {
  299.       if (var0 == null) {
  300.          throw new IllegalArgumentException("URL cannot be null.");
  301.       } else {
  302.          try {
  303.             Object var1 = var0.getContent();
  304.             if (var1 == null) {
  305.                throw new IllegalArgumentException("No content.");
  306.             } else if (var1 instanceof InputStream) {
  307.                InputStreamReader var2 = new InputStreamReader((InputStream)var1);
  308.                if (((Reader)var2).ready()) {
  309.                   return var2;
  310.                } else {
  311.                   throw new FileNotFoundException();
  312.                }
  313.             } else {
  314.                throw new IllegalArgumentException(var1 instanceof String ? (String)var1 : "This URL points to a: " + getClassName(var1.getClass()));
  315.             }
  316.          } catch (SecurityException var3) {
  317.             throw new SecurityException("Your JVM's SecurityManager has disallowed this.");
  318.          } catch (FileNotFoundException var4) {
  319.             throw new FileNotFoundException("This file was not found: " + var0);
  320.          }
  321.       }
  322.    }
  323.  
  324.    public static String getContentAsString(URL var0) throws SecurityException, IllegalArgumentException, IOException {
  325.       return IOUtils.getStringFromReader(getContentAsReader(var0));
  326.    }
  327.  
  328.    static {
  329.       lineSeparatorStr = cleanString(lineSeparator);
  330.    }
  331. }
  332.