package es.udc.cartolab.gvsig.navtable.format; import java.sql.Date; import java.sql.Time; import java.sql.Timestamp; import java.text.NumberFormat; import java.text.SimpleDateFormat; import com.hardcode.gdbms.engine.values.ValueWriter; /** * Class to manage how the strings are formatted to display them, taking into * account the formats declared in NavTableFormats. */ public class ValueFormatNT implements ValueWriter { private NumberFormat doubleFormat; private NumberFormat integerFormat; private SimpleDateFormat dateFormat; private SimpleDateFormat timeFormat; public ValueFormatNT() { doubleFormat = DoubleFormatNT.getDisplayingFormat(); integerFormat = IntegerFormatNT.getDisplayingFormat(); dateFormat = DateFormatNT.getDateFormat(); timeFormat = new SimpleDateFormat("HH:mm:ss"); } /** * @see com.hardcode.gdbms.engine.values.ValueWriter#getStatementString(long) */ public String getStatementString(long i) { return Long.toString(i); } /** * @see com.hardcode.gdbms.engine.values.ValueWriter#getStatementString(int, * int) */ public String getStatementString(int i, int sqlType) { return integerFormat.format(i); } /** * @see com.hardcode.gdbms.engine.values.ValueWriter#getStatementString(double, * int) */ public String getStatementString(double d, int sqlType) { return doubleFormat.format(d); } /** * @see com.hardcode.gdbms.engine.values.ValueWriter#getStatementString(java.lang.String, * int) */ public String getStatementString(String str, int sqlType) { return str; } /** * @see com.hardcode.gdbms.engine.values.ValueWriter#getStatementString(java.sql.Date) */ public String getStatementString(Date d) { return dateFormat.format(d); } /** * @see com.hardcode.gdbms.engine.values.ValueWriter#getStatementString(java.sql.Time) */ public String getStatementString(Time t) { return timeFormat.format(t); } /** * @see com.hardcode.gdbms.engine.values.ValueWriter#getStatementString(java.sql.Timestamp) */ public String getStatementString(Timestamp ts) { return ts.toString(); } /** * @see com.hardcode.gdbms.engine.values.ValueWriter#getStatementString(byte[]) */ public String getStatementString(byte[] binary) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < binary.length; i++) { int byte_ = binary[i]; if (byte_ < 0) { byte_ = byte_ + 256; } String b = Integer.toHexString(byte_); if (b.length() == 1) { sb.append("0").append(b); } else { sb.append(b); } } return sb.toString(); } /** * @see com.hardcode.gdbms.engine.values.ValueWriter#getStatementString(boolean) */ public String getStatementString(boolean b) { return Boolean.toString(b); } /** * @see com.hardcode.gdbms.engine.values.ValueWriter#getNullStatementString() */ public String getNullStatementString() { return ""; } }