home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / util / StringUtilities.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  8.2 KB  |  577 lines

  1. package com.extensibility.util;
  2.  
  3. import java.io.Writer;
  4. import java.util.Enumeration;
  5. import java.util.Vector;
  6.  
  7. public class StringUtilities {
  8.    public static String removeWhitespace(String var0, boolean var1) {
  9.       StringBuffer var2 = new StringBuffer();
  10.       char var3 = 0;
  11.  
  12.       for(int var4 = 0; var4 < var0.length(); ++var4) {
  13.          char var5 = var0.charAt(var4);
  14.          if (var1) {
  15.             if ((var5 == '"' || var5 == '\'') && var3 == 0) {
  16.                var3 = var5;
  17.             } else if (var5 == var3) {
  18.                var3 = 0;
  19.             }
  20.          }
  21.  
  22.          if (!isWhiteChar(var5) || var1 && var3 != 0) {
  23.             var2.append(var5);
  24.          }
  25.       }
  26.  
  27.       return var2.toString();
  28.    }
  29.  
  30.    public static Vector parseList(String var0, char var1) {
  31.       Vector var2 = new Vector();
  32.       int var3 = 0;
  33.  
  34.       for(int var4 = 0; var4 < var0.length(); ++var4) {
  35.          if (var0.charAt(var4) == var1) {
  36.             var2.addElement(var0.substring(var3, var4).trim());
  37.             var3 = var4 + 1;
  38.          }
  39.       }
  40.  
  41.       var2.addElement(var0.substring(var3).trim());
  42.       return var2;
  43.    }
  44.  
  45.    public static String stripCommon(String var0, String var1) {
  46.       int var2;
  47.       for(var2 = 0; var2 < var0.length() && var2 < var1.length() && var0.charAt(var2) == var1.charAt(var2); ++var2) {
  48.       }
  49.  
  50.       return var2 >= var0.length() ? "" : var0.substring(var2);
  51.    }
  52.  
  53.    public static String stripCommonUpTo(String var0, String var1, char var2) {
  54.       int var4 = -1;
  55.  
  56.       int var3;
  57.       for(var3 = 0; var3 < var0.length() && var3 < var1.length(); ++var3) {
  58.          if (var0.charAt(var3) == var1.charAt(var3) && var0.charAt(var3) == var2) {
  59.             var4 = var3;
  60.          }
  61.  
  62.          if (var0.charAt(var3) != var1.charAt(var3)) {
  63.             break;
  64.          }
  65.       }
  66.  
  67.       return var3 >= var0.length() ? "" : var0.substring(var4 == -1 ? 0 : var4 + 1);
  68.    }
  69.  
  70.    public static String concatWithWhitespace(String[] var0, boolean var1, boolean var2) {
  71.       StringBuffer var3 = new StringBuffer();
  72.       boolean var4 = true;
  73.  
  74.       for(int var5 = 0; var5 < var0.length; ++var5) {
  75.          if (!var4) {
  76.             var3.append(' ');
  77.          } else {
  78.             var4 = false;
  79.          }
  80.  
  81.          var3.append(var1 ? removeWhitespace(var0[var5], var2) : var0[var5]);
  82.       }
  83.  
  84.       return var3.toString();
  85.    }
  86.  
  87.    public static String concat(Enumeration var0, String var1, String var2, String var3) {
  88.       StringBuffer var4 = new StringBuffer(var1);
  89.  
  90.       for(boolean var5 = true; var0.hasMoreElements(); var4.append((String)var0.nextElement())) {
  91.          if (!var5) {
  92.             var4.append(var2);
  93.          } else {
  94.             var5 = false;
  95.          }
  96.       }
  97.  
  98.       var4.append(var3);
  99.       return var4.toString();
  100.    }
  101.  
  102.    public static String quoted(String var0, char var1) {
  103.       return var1 == '\'' ? String.valueOf(String.valueOf("'").concat(String.valueOf(escapeSingleQuotes(var0)))).concat(String.valueOf("'")) : String.valueOf(String.valueOf("\"").concat(String.valueOf(escapeDoubleQuotes(var0)))).concat(String.valueOf("\""));
  104.    }
  105.  
  106.    public static String doubleQuoted(String var0) {
  107.       return String.valueOf(String.valueOf("\"").concat(String.valueOf(escapeDoubleQuotes(var0)))).concat(String.valueOf("\""));
  108.    }
  109.  
  110.    public static String singleQuoted(String var0) {
  111.       return String.valueOf(String.valueOf("'").concat(String.valueOf(escapeSingleQuotes(var0)))).concat(String.valueOf("'"));
  112.    }
  113.  
  114.    public static String replace(String var0, String var1, String var2) {
  115.       if (var0.indexOf(var1) < 0) {
  116.          return var0;
  117.       } else {
  118.          int var3 = 0;
  119.          StringBuffer var4 = new StringBuffer();
  120.  
  121.          while(true) {
  122.             int var5 = var0.indexOf(var1, var3);
  123.             if (var5 == -1) {
  124.                var4.append(var0.substring(var3));
  125.                return var4.toString();
  126.             }
  127.  
  128.             var4.append(String.valueOf(var0.substring(var3, var5)).concat(String.valueOf(var2)));
  129.             var3 = var5 + var1.length();
  130.          }
  131.       }
  132.    }
  133.  
  134.    public static String escapeSingleQuotes(String var0) {
  135.       if (var0 == null) {
  136.          return "";
  137.       } else {
  138.          int var1 = 0;
  139.          StringBuffer var2 = new StringBuffer();
  140.  
  141.          while(true) {
  142.             int var3 = var0.indexOf(39, var1);
  143.             if (var3 == -1) {
  144.                var2.append(var0.substring(var1));
  145.                return var2.toString();
  146.             }
  147.  
  148.             var2.append(String.valueOf(var0.substring(var1, var3)).concat(String.valueOf("'")));
  149.             var1 = var3 + 1;
  150.          }
  151.       }
  152.    }
  153.  
  154.    public static String escapeDoubleQuotes(String var0) {
  155.       if (var0 == null) {
  156.          return "";
  157.       } else {
  158.          int var1 = 0;
  159.          StringBuffer var2 = new StringBuffer();
  160.  
  161.          while(true) {
  162.             int var3 = var0.indexOf(34, var1);
  163.             if (var3 == -1) {
  164.                var2.append(var0.substring(var1));
  165.                return var2.toString();
  166.             }
  167.  
  168.             var2.append(String.valueOf(var0.substring(var1, var3)).concat(String.valueOf(""")));
  169.             var1 = var3 + 1;
  170.          }
  171.       }
  172.    }
  173.  
  174.    public static String unescapeSingleQuotes(String var0) {
  175.       int var1 = 0;
  176.       StringBuffer var2 = new StringBuffer();
  177.  
  178.       while(true) {
  179.          int var3 = var0.indexOf("'", var1);
  180.          if (var3 == -1) {
  181.             var2.append(var0.substring(var1));
  182.             return var2.toString();
  183.          }
  184.  
  185.          var2.append(String.valueOf(var0.substring(var1, var3)).concat(String.valueOf("'")));
  186.          var1 = var3 + 6;
  187.       }
  188.    }
  189.  
  190.    public static Vector extract(String var0, char var1, char var2) {
  191.       Vector var3 = new Vector();
  192.       boolean var4 = false;
  193.       int var5 = 0;
  194.  
  195.       for(int var6 = var0.indexOf(var1, var5); var6 >= 0 && var6 != var0.length() - 1; var6 = var0.indexOf(var1, var5)) {
  196.          var5 = var0.indexOf(var2, var6 + 1);
  197.          if (var5 < 0) {
  198.             break;
  199.          }
  200.  
  201.          var3.addElement(var0.substring(var6 + 1, var5));
  202.       }
  203.  
  204.       return var3;
  205.    }
  206.  
  207.    public static Vector extract(String var0, String var1) {
  208.       Vector var2 = new Vector();
  209.       if (var0.length() == 0) {
  210.          return var2;
  211.       } else {
  212.          int var4 = 0;
  213.  
  214.          while(true) {
  215.             int var3 = var4;
  216.             var4 = var0.indexOf(var1, var4);
  217.             if (var4 < 0) {
  218.                var2.addElement(var0.substring(var3));
  219.                return var2;
  220.             }
  221.  
  222.             var2.addElement(var0.substring(var3, var4));
  223.             var4 += var1.length();
  224.          }
  225.       }
  226.    }
  227.  
  228.    public static Vector extractLine(String var0, String var1) {
  229.       Vector var2 = new Vector();
  230.       if (var0.length() == 0) {
  231.          return var2;
  232.       } else {
  233.          int var3 = var1.length();
  234.          int var4 = 0;
  235.          int var5 = 0;
  236.  
  237.          while(true) {
  238.             var5 = var0.indexOf(var1, var5);
  239.             if (var5 < 0) {
  240.                if (var4 < var0.length() - 1) {
  241.                   var2.addElement(var0.substring(var4));
  242.                }
  243.  
  244.                return var2;
  245.             }
  246.  
  247.             if (var5 > 0 && var0.charAt(var5 - 1) != '\r' && var0.charAt(var5 - 1) != '\n') {
  248.                var5 += var3;
  249.             } else if (var5 < var0.length() - var3 - 1 && var0.charAt(var5 + var3) != '\r' && var0.charAt(var5 + var3) != '\n') {
  250.                var5 += var3;
  251.             } else {
  252.                int var6;
  253.                for(var6 = var5; var6 > 1 && (var0.charAt(var6 - 1) == '\r' || var0.charAt(var6 - 1) == '\n'); --var6) {
  254.                }
  255.  
  256.                var2.addElement(var0.substring(var4, var6));
  257.  
  258.                for(var4 = var5 + var3; var4 < var0.length() - 1 && (var0.charAt(var4) == '\r' || var0.charAt(var4) == '\n'); ++var4) {
  259.                }
  260.  
  261.                var5 = var4;
  262.             }
  263.          }
  264.       }
  265.    }
  266.  
  267.    public static String[] extract(String var0) {
  268.       char var1 = 0;
  269.       Vector var2 = new Vector();
  270.       int var3 = -1;
  271.  
  272.       for(int var4 = 0; var4 < var0.length(); ++var4) {
  273.          char var5 = var0.charAt(var4);
  274.          if (var5 == var1) {
  275.             var1 = 0;
  276.          } else if (var5 != '"' && var5 != '\'') {
  277.             if (var1 == 0) {
  278.                if (!isWhiteChar(var5)) {
  279.                   if (var3 == -1) {
  280.                      var3 = var4;
  281.                   }
  282.                } else {
  283.                   if (var3 >= 0) {
  284.                      var2.addElement(var0.substring(var3, var4));
  285.                   }
  286.  
  287.                   var3 = -1;
  288.                }
  289.             }
  290.          } else {
  291.             var1 = var5;
  292.             if (var3 == -1) {
  293.                var3 = var4;
  294.             }
  295.          }
  296.       }
  297.  
  298.       if (var3 != -1) {
  299.          var2.addElement(var0.substring(var3));
  300.       }
  301.  
  302.       String[] var7 = new String[var2.size()];
  303.  
  304.       for(int var6 = 0; var6 < var2.size(); ++var6) {
  305.          var7[var6] = (String)var2.elementAt(var6);
  306.       }
  307.  
  308.       return var7;
  309.    }
  310.  
  311.    public static String trimTrailingWhitespace(String var0) {
  312.       for(int var1 = var0.length() - 1; var1 >= 0; --var1) {
  313.          if (!isWhiteChar(var0.charAt(var1))) {
  314.             return var0.substring(0, var1 + 1);
  315.          }
  316.       }
  317.  
  318.       return var0;
  319.    }
  320.  
  321.    public static String firstWord(String var0) {
  322.       for(int var1 = 0; var1 < var0.length(); ++var1) {
  323.          if (isWhiteChar(var0.charAt(var1))) {
  324.             return var0.substring(0, var1);
  325.          }
  326.       }
  327.  
  328.       return var0;
  329.    }
  330.  
  331.    public static String firstWord(String var0, String var1) {
  332.       for(int var2 = 0; var2 < var0.length(); ++var2) {
  333.          char var3 = var0.charAt(var2);
  334.          if (isWhiteChar(var3) || var1.indexOf(var3) >= 0) {
  335.             return var0.substring(0, var2);
  336.          }
  337.       }
  338.  
  339.       return var0;
  340.    }
  341.  
  342.    public static boolean isWhiteChar(char var0) {
  343.       switch (var0) {
  344.          case '\t':
  345.          case '\n':
  346.          case '\r':
  347.          case ' ':
  348.             return true;
  349.          default:
  350.             return false;
  351.       }
  352.    }
  353.  
  354.    public static boolean isWhitespace(String var0) {
  355.       for(int var1 = 0; var1 < var0.length(); ++var1) {
  356.          if (!isWhiteChar(var0.charAt(var1))) {
  357.             return false;
  358.          }
  359.       }
  360.  
  361.       return true;
  362.    }
  363.  
  364.    public static String normalizeWhitespace(String var0) {
  365.       StringBuffer var1 = new StringBuffer();
  366.       int var2 = 0;
  367.  
  368.       for(boolean var3 = true; var2 < var0.length(); ++var2) {
  369.          char var4 = var0.charAt(var2);
  370.          switch (var4) {
  371.             case '\t':
  372.             case '\n':
  373.             case '\r':
  374.             case ' ':
  375.                if (!var3) {
  376.                   var1.append(' ');
  377.                   var3 = true;
  378.                }
  379.                break;
  380.             default:
  381.                var3 = false;
  382.                var1.append(var4);
  383.          }
  384.       }
  385.  
  386.       return var1.toString();
  387.    }
  388.  
  389.    public static String trimControlChars(String var0) {
  390.       int var1 = 0;
  391.  
  392.       int var2;
  393.       for(var2 = var0.length(); var1 < var2 && var0.charAt(var1) < ' '; ++var1) {
  394.       }
  395.  
  396.       while(var1 < var2 && var0.charAt(var2 - 1) < ' ') {
  397.          --var2;
  398.       }
  399.  
  400.       return var0.substring(var1, var2);
  401.    }
  402.  
  403.    public static void sortStrings(Vector var0, StringAccessor var1) {
  404.       sortStrings(var0, var1, true);
  405.    }
  406.  
  407.    public static void sortStrings(Vector var0, StringAccessor var1, boolean var2) {
  408.       int var6 = var0.size();
  409.       int var3 = 1;
  410.  
  411.       do {
  412.          var3 = var3 * 3 + 1;
  413.       } while(var3 <= var6);
  414.  
  415.       if (var2) {
  416.          for(int var9 = var3 / 3; var9 > 0; var9 /= 3) {
  417.             for(int var4 = var9; var4 < var6; ++var4) {
  418.                Object var8 = var0.elementAt(var4);
  419.                String var7 = var1.getString(var8);
  420.  
  421.                int var5;
  422.                for(var5 = var4 - var9; var5 >= 0 && var1.getString(var0.elementAt(var5)).compareTo(var7) > 0; var5 -= var9) {
  423.                   var0.setElementAt(var0.elementAt(var5), var5 + var9);
  424.                }
  425.  
  426.                var0.setElementAt(var8, var5 + var9);
  427.             }
  428.          }
  429.       } else {
  430.          for(int var10 = var3 / 3; var10 > 0; var10 /= 3) {
  431.             for(int var11 = var10; var11 < var6; ++var11) {
  432.                Object var14 = var0.elementAt(var11);
  433.                String var13 = var1.getString(var14);
  434.  
  435.                int var12;
  436.                for(var12 = var11 - var10; var12 >= 0 && var1.getString(var0.elementAt(var12)).compareTo(var13) < 0; var12 -= var10) {
  437.                   var0.setElementAt(var0.elementAt(var12), var12 + var10);
  438.                }
  439.  
  440.                var0.setElementAt(var14, var12 + var10);
  441.             }
  442.          }
  443.       }
  444.  
  445.    }
  446.  
  447.    public static int skipWhite(String var0, int var1) {
  448.       while(var1 < var0.length() && isWhiteChar(var0.charAt(var1))) {
  449.          ++var1;
  450.       }
  451.  
  452.       return var1;
  453.    }
  454.  
  455.    public static Vector parseNames(String var0) {
  456.       Vector var1 = new Vector();
  457.       boolean var2 = true;
  458.       int var3 = 0;
  459.  
  460.       for(int var4 = 0; var4 < var0.length(); ++var4) {
  461.          if (isWhiteChar(var0.charAt(var4))) {
  462.             if (!var2) {
  463.                var1.addElement(var0.substring(var3, var4));
  464.             }
  465.  
  466.             var2 = true;
  467.          } else {
  468.             if (var2) {
  469.                var3 = var4;
  470.             }
  471.  
  472.             var2 = false;
  473.          }
  474.       }
  475.  
  476.       if (!var2) {
  477.          var1.addElement(var0.substring(var3));
  478.       }
  479.  
  480.       return var1;
  481.    }
  482.  
  483.    public static String[] getSingleQuotedStrings(Vector var0) {
  484.       if (var0 != null && var0.size() != 0) {
  485.          String[] var1 = new String[var0.size()];
  486.          Vector var2 = new Vector();
  487.          int var3 = 0;
  488.          boolean var4 = false;
  489.  
  490.          for(int var5 = 0; var5 < var0.size(); ++var5) {
  491.             String var6 = (String)var0.elementAt(var5);
  492.             if (var6 != null && var6.startsWith("'")) {
  493.                var2.addElement(var6.substring(1));
  494.                var4 = true;
  495.             } else if (!var4) {
  496.                var1[var3] = var6;
  497.                ++var3;
  498.             } else if (var6 != null && var6.endsWith("'")) {
  499.                String var7 = "";
  500.  
  501.                for(int var8 = 0; var8 < var2.size(); ++var8) {
  502.                   if (var8 != 0) {
  503.                      var7 = String.valueOf(var7).concat(String.valueOf(" "));
  504.                   }
  505.  
  506.                   var7 = String.valueOf(var7).concat(String.valueOf((String)var2.elementAt(var8)));
  507.                }
  508.  
  509.                var7 = String.valueOf(String.valueOf(var7).concat(String.valueOf(" "))).concat(String.valueOf(var6.substring(0, var6.length() - 1)));
  510.                var1[var3] = var7;
  511.                ++var3;
  512.                var2 = new Vector();
  513.                var4 = false;
  514.             } else {
  515.                var2.addElement(var6);
  516.             }
  517.          }
  518.  
  519.          if (var4 && var2.size() > 0) {
  520.             for(int var9 = 0; var9 < var2.size(); ++var9) {
  521.                var1[var3] = (String)var2.elementAt(var9);
  522.                ++var3;
  523.             }
  524.          }
  525.  
  526.          return var1;
  527.       } else {
  528.          return new String[0];
  529.       }
  530.    }
  531.  
  532.    public static String convertLineEndings(String var0, String var1) {
  533.       if (var0 == null) {
  534.          return null;
  535.       } else {
  536.          StringBuffer var2 = new StringBuffer();
  537.          char[] var3 = var0.toCharArray();
  538.          convertLineEndings(var3, 0, var3.length, var1, var2, '\u0000');
  539.          return var2.toString();
  540.       }
  541.    }
  542.  
  543.    public static char convertLineEndings(char[] var0, int var1, int var2, String var3, StringBuffer var4, char var5) {
  544.       int var6 = var1;
  545.       int var7 = var1 + var2;
  546.  
  547.       for(int var8 = var1; var8 < var7; ++var8) {
  548.          char var9 = var0[var8];
  549.          if (var9 == '\r') {
  550.             var4.append(var0, var6, var8 - var6);
  551.             var4.append(var3);
  552.             var6 = var8 + 1;
  553.          } else if (var9 == '\n') {
  554.             if (var5 == '\r') {
  555.                ++var6;
  556.             } else {
  557.                var4.append(var0, var6, var8 - var6);
  558.                var4.append(var3);
  559.                var6 = var8 + 1;
  560.             }
  561.          }
  562.  
  563.          var5 = var9;
  564.       }
  565.  
  566.       if (var6 < var7) {
  567.          var4.append(var0, var6, var7 - var6);
  568.       }
  569.  
  570.       return var5;
  571.    }
  572.  
  573.    public static Writer getLineEndingFilterWriter(Writer var0, String var1) {
  574.       return new LineEndingFilterWriter(var0, var1);
  575.    }
  576. }
  577.