Dictionary/src/java/org/thdl/lex/LexUtilities.java

171 lines
4.2 KiB
Java

package org.thdl.lex;
import java.util.HashMap;
import java.util.StringTokenizer;
/**
* Description of the Class
*
* @author travis
* @created October 6, 2003
*/
public class LexUtilities {
/**
* Gets the resultSetSize attribute of the LexUtilities class
*
* @param rs
* Description of the Parameter
* @return The resultSetSize value
* @exception java.sql.SQLException
* Description of the Exception
*/
public static int getResultSetSize(java.sql.ResultSet rs)
throws java.sql.SQLException {
rs.last();
int i = rs.getRow();
rs.beforeFirst();
return i;
}
/*
* public static String formatTimestamp( Timestamp time ) { SimpleDateFormat
* formatter = new SimpleDateFormat("yyyy.MM.dd 'at' hh:mm:ss a zzz"); Date
* coDate = new Date( getCreatedOn().getTime() ); String dateString =
* formatter.format( coDate ); }
*/
/**
* Description of the Method
*
* @param fromString
* Description of the Parameter
* @return Description of the Return Value
*/
public static String escape(String fromString) {
HashMap map = new HashMap();
map.put("'", "\\'");
/*
* map.put("%", "\\%"); map.put("_", "\\_"); map.put("\"", "\\\"");
*/
StringBuffer targetString = new StringBuffer("");
if (null != fromString) {
StringTokenizer tokens = new StringTokenizer(fromString, "'%_\"",
true);
while (tokens.hasMoreTokens()) {
String temp = tokens.nextToken();
if (map.containsKey(temp)) {
temp = (String) map.get(temp);
}
targetString.append(temp);
}
}
return targetString.toString();
}
/**
* Description of the Method
*
* @param fromString
* Description of the Parameter
* @return Description of the Return Value
*/
public static String hqlEscape(String fromString) {
HashMap map = new HashMap();
map.put("'", "''");
StringBuffer targetString = new StringBuffer("");
if (null != fromString) {
StringTokenizer tokens = new StringTokenizer(fromString, "'%_\"",
true);
while (tokens.hasMoreTokens()) {
String temp = tokens.nextToken();
if (map.containsKey(temp)) {
temp = (String) map.get(temp);
}
targetString.append(temp);
}
}
return targetString.toString();
}
/**
* Description of the Method
*
* @param source
* Description of the Parameter
* @return Description of the Return Value
*/
public static Integer[] convertToIntegerArray(String[] source) {
if (null == source) {
return null;
}
Integer[] target = new Integer[source.length];
for (int i = 0; i < target.length; i++) {
target[i] = new Integer(source[i]);
}
return target;
}
/**
* Description of the Method
*
* @param source
* Description of the Parameter
* @return Description of the Return Value
*/
public static Integer[] convertTokensToIntegerArray(String source) {
if (null == source || "null".equals(source)) {
return null;
}
StringTokenizer sourceTokens = new StringTokenizer(source, ":");
Integer[] target = new Integer[sourceTokens.countTokens()];
for (int i = 0; sourceTokens.hasMoreTokens(); i++) {
target[i] = new Integer(sourceTokens.nextToken());
}
return target;
}
/**
* Description of the Method
*
* @param source
* Description of the Parameter
* @return Description of the Return Value
*/
public static String convertIntegerArrayToTokens(Integer[] source) {
if (null == source) {
return null;
}
StringBuffer target = new StringBuffer("");
for (int i = 0; i < source.length; i++) {
target.append(source[i].toString());
if (i < (source.length - 1)) {
target.append(":");
}
}
return target.toString();
}
/**
* The main program for the LexUtilities class
*
* @param args
* The command line arguments
*/
public static void main(String[] args) {
String s = "It's stupid to use a % or a _ in a SQL Statement";
System.out.println(LexUtilities.escape(s));
Integer[] ia = { new Integer(1), new Integer(3) };
System.out.println(LexUtilities.convertIntegerArrayToTokens(ia));
String str = "9:8:7:6:5";
Integer[] ia2 = LexUtilities.convertTokensToIntegerArray(str);
String newStr = "";
for (int i = 0; i < 5; i++) {
newStr = newStr + ia2[i] + " ";
}
System.out.println(newStr);
}
}