home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.util;
-
- import java.io.Writer;
- import java.util.Enumeration;
- import java.util.Vector;
-
- public class StringUtilities {
- public static String removeWhitespace(String var0, boolean var1) {
- StringBuffer var2 = new StringBuffer();
- char var3 = 0;
-
- for(int var4 = 0; var4 < var0.length(); ++var4) {
- char var5 = var0.charAt(var4);
- if (var1) {
- if ((var5 == '"' || var5 == '\'') && var3 == 0) {
- var3 = var5;
- } else if (var5 == var3) {
- var3 = 0;
- }
- }
-
- if (!isWhiteChar(var5) || var1 && var3 != 0) {
- var2.append(var5);
- }
- }
-
- return var2.toString();
- }
-
- public static Vector parseList(String var0, char var1) {
- Vector var2 = new Vector();
- int var3 = 0;
-
- for(int var4 = 0; var4 < var0.length(); ++var4) {
- if (var0.charAt(var4) == var1) {
- var2.addElement(var0.substring(var3, var4).trim());
- var3 = var4 + 1;
- }
- }
-
- var2.addElement(var0.substring(var3).trim());
- return var2;
- }
-
- public static String stripCommon(String var0, String var1) {
- int var2;
- for(var2 = 0; var2 < var0.length() && var2 < var1.length() && var0.charAt(var2) == var1.charAt(var2); ++var2) {
- }
-
- return var2 >= var0.length() ? "" : var0.substring(var2);
- }
-
- public static String stripCommonUpTo(String var0, String var1, char var2) {
- int var4 = -1;
-
- int var3;
- for(var3 = 0; var3 < var0.length() && var3 < var1.length(); ++var3) {
- if (var0.charAt(var3) == var1.charAt(var3) && var0.charAt(var3) == var2) {
- var4 = var3;
- }
-
- if (var0.charAt(var3) != var1.charAt(var3)) {
- break;
- }
- }
-
- return var3 >= var0.length() ? "" : var0.substring(var4 == -1 ? 0 : var4 + 1);
- }
-
- public static String concatWithWhitespace(String[] var0, boolean var1, boolean var2) {
- StringBuffer var3 = new StringBuffer();
- boolean var4 = true;
-
- for(int var5 = 0; var5 < var0.length; ++var5) {
- if (!var4) {
- var3.append(' ');
- } else {
- var4 = false;
- }
-
- var3.append(var1 ? removeWhitespace(var0[var5], var2) : var0[var5]);
- }
-
- return var3.toString();
- }
-
- public static String concat(Enumeration var0, String var1, String var2, String var3) {
- StringBuffer var4 = new StringBuffer(var1);
-
- for(boolean var5 = true; var0.hasMoreElements(); var4.append((String)var0.nextElement())) {
- if (!var5) {
- var4.append(var2);
- } else {
- var5 = false;
- }
- }
-
- var4.append(var3);
- return var4.toString();
- }
-
- public static String quoted(String var0, char var1) {
- 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("\""));
- }
-
- public static String doubleQuoted(String var0) {
- return String.valueOf(String.valueOf("\"").concat(String.valueOf(escapeDoubleQuotes(var0)))).concat(String.valueOf("\""));
- }
-
- public static String singleQuoted(String var0) {
- return String.valueOf(String.valueOf("'").concat(String.valueOf(escapeSingleQuotes(var0)))).concat(String.valueOf("'"));
- }
-
- public static String replace(String var0, String var1, String var2) {
- if (var0.indexOf(var1) < 0) {
- return var0;
- } else {
- int var3 = 0;
- StringBuffer var4 = new StringBuffer();
-
- while(true) {
- int var5 = var0.indexOf(var1, var3);
- if (var5 == -1) {
- var4.append(var0.substring(var3));
- return var4.toString();
- }
-
- var4.append(String.valueOf(var0.substring(var3, var5)).concat(String.valueOf(var2)));
- var3 = var5 + var1.length();
- }
- }
- }
-
- public static String escapeSingleQuotes(String var0) {
- if (var0 == null) {
- return "";
- } else {
- int var1 = 0;
- StringBuffer var2 = new StringBuffer();
-
- while(true) {
- int var3 = var0.indexOf(39, var1);
- if (var3 == -1) {
- var2.append(var0.substring(var1));
- return var2.toString();
- }
-
- var2.append(String.valueOf(var0.substring(var1, var3)).concat(String.valueOf("'")));
- var1 = var3 + 1;
- }
- }
- }
-
- public static String escapeDoubleQuotes(String var0) {
- if (var0 == null) {
- return "";
- } else {
- int var1 = 0;
- StringBuffer var2 = new StringBuffer();
-
- while(true) {
- int var3 = var0.indexOf(34, var1);
- if (var3 == -1) {
- var2.append(var0.substring(var1));
- return var2.toString();
- }
-
- var2.append(String.valueOf(var0.substring(var1, var3)).concat(String.valueOf(""")));
- var1 = var3 + 1;
- }
- }
- }
-
- public static String unescapeSingleQuotes(String var0) {
- int var1 = 0;
- StringBuffer var2 = new StringBuffer();
-
- while(true) {
- int var3 = var0.indexOf("'", var1);
- if (var3 == -1) {
- var2.append(var0.substring(var1));
- return var2.toString();
- }
-
- var2.append(String.valueOf(var0.substring(var1, var3)).concat(String.valueOf("'")));
- var1 = var3 + 6;
- }
- }
-
- public static Vector extract(String var0, char var1, char var2) {
- Vector var3 = new Vector();
- boolean var4 = false;
- int var5 = 0;
-
- for(int var6 = var0.indexOf(var1, var5); var6 >= 0 && var6 != var0.length() - 1; var6 = var0.indexOf(var1, var5)) {
- var5 = var0.indexOf(var2, var6 + 1);
- if (var5 < 0) {
- break;
- }
-
- var3.addElement(var0.substring(var6 + 1, var5));
- }
-
- return var3;
- }
-
- public static Vector extract(String var0, String var1) {
- Vector var2 = new Vector();
- if (var0.length() == 0) {
- return var2;
- } else {
- int var4 = 0;
-
- while(true) {
- int var3 = var4;
- var4 = var0.indexOf(var1, var4);
- if (var4 < 0) {
- var2.addElement(var0.substring(var3));
- return var2;
- }
-
- var2.addElement(var0.substring(var3, var4));
- var4 += var1.length();
- }
- }
- }
-
- public static Vector extractLine(String var0, String var1) {
- Vector var2 = new Vector();
- if (var0.length() == 0) {
- return var2;
- } else {
- int var3 = var1.length();
- int var4 = 0;
- int var5 = 0;
-
- while(true) {
- var5 = var0.indexOf(var1, var5);
- if (var5 < 0) {
- if (var4 < var0.length() - 1) {
- var2.addElement(var0.substring(var4));
- }
-
- return var2;
- }
-
- if (var5 > 0 && var0.charAt(var5 - 1) != '\r' && var0.charAt(var5 - 1) != '\n') {
- var5 += var3;
- } else if (var5 < var0.length() - var3 - 1 && var0.charAt(var5 + var3) != '\r' && var0.charAt(var5 + var3) != '\n') {
- var5 += var3;
- } else {
- int var6;
- for(var6 = var5; var6 > 1 && (var0.charAt(var6 - 1) == '\r' || var0.charAt(var6 - 1) == '\n'); --var6) {
- }
-
- var2.addElement(var0.substring(var4, var6));
-
- for(var4 = var5 + var3; var4 < var0.length() - 1 && (var0.charAt(var4) == '\r' || var0.charAt(var4) == '\n'); ++var4) {
- }
-
- var5 = var4;
- }
- }
- }
- }
-
- public static String[] extract(String var0) {
- char var1 = 0;
- Vector var2 = new Vector();
- int var3 = -1;
-
- for(int var4 = 0; var4 < var0.length(); ++var4) {
- char var5 = var0.charAt(var4);
- if (var5 == var1) {
- var1 = 0;
- } else if (var5 != '"' && var5 != '\'') {
- if (var1 == 0) {
- if (!isWhiteChar(var5)) {
- if (var3 == -1) {
- var3 = var4;
- }
- } else {
- if (var3 >= 0) {
- var2.addElement(var0.substring(var3, var4));
- }
-
- var3 = -1;
- }
- }
- } else {
- var1 = var5;
- if (var3 == -1) {
- var3 = var4;
- }
- }
- }
-
- if (var3 != -1) {
- var2.addElement(var0.substring(var3));
- }
-
- String[] var7 = new String[var2.size()];
-
- for(int var6 = 0; var6 < var2.size(); ++var6) {
- var7[var6] = (String)var2.elementAt(var6);
- }
-
- return var7;
- }
-
- public static String trimTrailingWhitespace(String var0) {
- for(int var1 = var0.length() - 1; var1 >= 0; --var1) {
- if (!isWhiteChar(var0.charAt(var1))) {
- return var0.substring(0, var1 + 1);
- }
- }
-
- return var0;
- }
-
- public static String firstWord(String var0) {
- for(int var1 = 0; var1 < var0.length(); ++var1) {
- if (isWhiteChar(var0.charAt(var1))) {
- return var0.substring(0, var1);
- }
- }
-
- return var0;
- }
-
- public static String firstWord(String var0, String var1) {
- for(int var2 = 0; var2 < var0.length(); ++var2) {
- char var3 = var0.charAt(var2);
- if (isWhiteChar(var3) || var1.indexOf(var3) >= 0) {
- return var0.substring(0, var2);
- }
- }
-
- return var0;
- }
-
- public static boolean isWhiteChar(char var0) {
- switch (var0) {
- case '\t':
- case '\n':
- case '\r':
- case ' ':
- return true;
- default:
- return false;
- }
- }
-
- public static boolean isWhitespace(String var0) {
- for(int var1 = 0; var1 < var0.length(); ++var1) {
- if (!isWhiteChar(var0.charAt(var1))) {
- return false;
- }
- }
-
- return true;
- }
-
- public static String normalizeWhitespace(String var0) {
- StringBuffer var1 = new StringBuffer();
- int var2 = 0;
-
- for(boolean var3 = true; var2 < var0.length(); ++var2) {
- char var4 = var0.charAt(var2);
- switch (var4) {
- case '\t':
- case '\n':
- case '\r':
- case ' ':
- if (!var3) {
- var1.append(' ');
- var3 = true;
- }
- break;
- default:
- var3 = false;
- var1.append(var4);
- }
- }
-
- return var1.toString();
- }
-
- public static String trimControlChars(String var0) {
- int var1 = 0;
-
- int var2;
- for(var2 = var0.length(); var1 < var2 && var0.charAt(var1) < ' '; ++var1) {
- }
-
- while(var1 < var2 && var0.charAt(var2 - 1) < ' ') {
- --var2;
- }
-
- return var0.substring(var1, var2);
- }
-
- public static void sortStrings(Vector var0, StringAccessor var1) {
- sortStrings(var0, var1, true);
- }
-
- public static void sortStrings(Vector var0, StringAccessor var1, boolean var2) {
- int var6 = var0.size();
- int var3 = 1;
-
- do {
- var3 = var3 * 3 + 1;
- } while(var3 <= var6);
-
- if (var2) {
- for(int var9 = var3 / 3; var9 > 0; var9 /= 3) {
- for(int var4 = var9; var4 < var6; ++var4) {
- Object var8 = var0.elementAt(var4);
- String var7 = var1.getString(var8);
-
- int var5;
- for(var5 = var4 - var9; var5 >= 0 && var1.getString(var0.elementAt(var5)).compareTo(var7) > 0; var5 -= var9) {
- var0.setElementAt(var0.elementAt(var5), var5 + var9);
- }
-
- var0.setElementAt(var8, var5 + var9);
- }
- }
- } else {
- for(int var10 = var3 / 3; var10 > 0; var10 /= 3) {
- for(int var11 = var10; var11 < var6; ++var11) {
- Object var14 = var0.elementAt(var11);
- String var13 = var1.getString(var14);
-
- int var12;
- for(var12 = var11 - var10; var12 >= 0 && var1.getString(var0.elementAt(var12)).compareTo(var13) < 0; var12 -= var10) {
- var0.setElementAt(var0.elementAt(var12), var12 + var10);
- }
-
- var0.setElementAt(var14, var12 + var10);
- }
- }
- }
-
- }
-
- public static int skipWhite(String var0, int var1) {
- while(var1 < var0.length() && isWhiteChar(var0.charAt(var1))) {
- ++var1;
- }
-
- return var1;
- }
-
- public static Vector parseNames(String var0) {
- Vector var1 = new Vector();
- boolean var2 = true;
- int var3 = 0;
-
- for(int var4 = 0; var4 < var0.length(); ++var4) {
- if (isWhiteChar(var0.charAt(var4))) {
- if (!var2) {
- var1.addElement(var0.substring(var3, var4));
- }
-
- var2 = true;
- } else {
- if (var2) {
- var3 = var4;
- }
-
- var2 = false;
- }
- }
-
- if (!var2) {
- var1.addElement(var0.substring(var3));
- }
-
- return var1;
- }
-
- public static String[] getSingleQuotedStrings(Vector var0) {
- if (var0 != null && var0.size() != 0) {
- String[] var1 = new String[var0.size()];
- Vector var2 = new Vector();
- int var3 = 0;
- boolean var4 = false;
-
- for(int var5 = 0; var5 < var0.size(); ++var5) {
- String var6 = (String)var0.elementAt(var5);
- if (var6 != null && var6.startsWith("'")) {
- var2.addElement(var6.substring(1));
- var4 = true;
- } else if (!var4) {
- var1[var3] = var6;
- ++var3;
- } else if (var6 != null && var6.endsWith("'")) {
- String var7 = "";
-
- for(int var8 = 0; var8 < var2.size(); ++var8) {
- if (var8 != 0) {
- var7 = String.valueOf(var7).concat(String.valueOf(" "));
- }
-
- var7 = String.valueOf(var7).concat(String.valueOf((String)var2.elementAt(var8)));
- }
-
- var7 = String.valueOf(String.valueOf(var7).concat(String.valueOf(" "))).concat(String.valueOf(var6.substring(0, var6.length() - 1)));
- var1[var3] = var7;
- ++var3;
- var2 = new Vector();
- var4 = false;
- } else {
- var2.addElement(var6);
- }
- }
-
- if (var4 && var2.size() > 0) {
- for(int var9 = 0; var9 < var2.size(); ++var9) {
- var1[var3] = (String)var2.elementAt(var9);
- ++var3;
- }
- }
-
- return var1;
- } else {
- return new String[0];
- }
- }
-
- public static String convertLineEndings(String var0, String var1) {
- if (var0 == null) {
- return null;
- } else {
- StringBuffer var2 = new StringBuffer();
- char[] var3 = var0.toCharArray();
- convertLineEndings(var3, 0, var3.length, var1, var2, '\u0000');
- return var2.toString();
- }
- }
-
- public static char convertLineEndings(char[] var0, int var1, int var2, String var3, StringBuffer var4, char var5) {
- int var6 = var1;
- int var7 = var1 + var2;
-
- for(int var8 = var1; var8 < var7; ++var8) {
- char var9 = var0[var8];
- if (var9 == '\r') {
- var4.append(var0, var6, var8 - var6);
- var4.append(var3);
- var6 = var8 + 1;
- } else if (var9 == '\n') {
- if (var5 == '\r') {
- ++var6;
- } else {
- var4.append(var0, var6, var8 - var6);
- var4.append(var3);
- var6 = var8 + 1;
- }
- }
-
- var5 = var9;
- }
-
- if (var6 < var7) {
- var4.append(var0, var6, var7 - var6);
- }
-
- return var5;
- }
-
- public static Writer getLineEndingFilterWriter(Writer var0, String var1) {
- return new LineEndingFilterWriter(var0, var1);
- }
- }
-