/*===========================================================================
* Copyright ( c ) Robert Mayhew 2002
* All Rights Protected
* This software is protected by international copyright law. No part of
* this software may be reproduced, duplicated, published, distributed,
* rented out, transmitted, or communicated to the public by
* telecommunication, in any form or by any means except as expressly
* permitted, in writing, by Robert Mayhew.
*===========================================================================
* $Id: SQLUtil.java,v 1.1.1.1 2003/10/13 19:19:31 Administrator Exp $
*===========================================================================
*/
package com.diodesoftware.dbmapper;
import com.diodesoftware.util.RenderUtil;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class SQLUtil
{
private static final long YEAR_M = 100000000L;
private static final long MONTH_M = 1000000L;
private static final long DAY_M = 10000L;
private static final long HOUR_M = 100L;
private static final long MINUTE_M = 1L;
public static String prepForQuery(String s, int max) throws SQLException
{
if(s.length() >= max)
throw new SQLException("String is longer then maximum");
return s;
}
public static String calendarToString(Calendar calendar)
{
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
StringBuffer sb = new StringBuffer();
sb.append(year);
sb.append(RenderUtil.zeroFill(month, 2));
sb.append(RenderUtil.zeroFill(day, 2));
sb.append(RenderUtil.zeroFill(hour, 2));
sb.append(RenderUtil.zeroFill(minute, 2));
return sb.toString();
}
public static Calendar stringToCalendar(String s)
{
int year = Integer.parseInt(s.substring(0, 4));
int month = Integer.parseInt(s.substring(4,6));
int day = Integer.parseInt(s.substring(6,8));
int hour = Integer.parseInt(s.substring(8,10));
int minute = Integer.parseInt(s.substring(10,12));
Calendar result = new GregorianCalendar(year,
month,
day,
hour,
minute);
return result;
}
public static long calendarToLong(Calendar c)
{
long result = c.get(Calendar.YEAR) * YEAR_M;
result = result + (c.get(Calendar.MONTH) * MONTH_M);
result = result + (c.get(Calendar.DAY_OF_MONTH) * DAY_M);
result = result + (c.get(Calendar.HOUR_OF_DAY) * HOUR_M);
result = result + (c.get(Calendar.MINUTE) * MINUTE_M);
return result;
}
public static Calendar longToCalendar(long l)
{
int year = (int)(l / YEAR_M);
l = l - (year * YEAR_M);
int month = (int)(l / MONTH_M);
l = l - (month * MONTH_M);
int day = (int)(l / DAY_M);
l = l - (day * DAY_M);
int hour = (int)(l / HOUR_M);
l = l - (hour * HOUR_M);
int minute = (int)(l / MINUTE_M);
Calendar calendar = new GregorianCalendar(year, month, day, hour, minute);
return calendar;
}
public static String getCharValue(boolean b)
{
String result ="N";
if(b)
{
result = "Y";
}
return result;
}
public static boolean getBooleanValue(String s)
{
boolean result = false;
if("Y".equals(s))
{
result = true;
}
return result;
}
public static String booleanToString(Boolean b)
{
String result = "N";
if(b.booleanValue())
{
result = "Y";
}
return result;
}
private static String escapeBackSlashes(String s, int offset)
{
int i = s.indexOf("\\", offset);
if(i == -1)
return s;
String start = s.substring(0, i);
String end = s.substring(i);
StringBuffer sb = new StringBuffer(start);
sb.append("\\");
sb.append(end);
i++;
i++;
return escapeBackSlashes(sb.toString(), i);
}
private static String makeQuoteSafe(String s, int offset)
{
int i = s.indexOf("'", offset);
if(i == -1)
return s;
String start = s.substring(0, i);
String end = s.substring(i);
StringBuffer sb = new StringBuffer(start);
sb.append("'");
sb.append(end);
i++;
i++;
return makeQuoteSafe(sb.toString(), i);
}
}