1 21 22 package org.dbunit.dataset.datatype; 23 24 import org.dbunit.dataset.ITable; 25 26 import java.sql.*; 27 28 33 public class TimeDataType extends AbstractDataType 34 { 35 TimeDataType() 36 { 37 super("TIME", Types.TIME, Time.class, false); 38 } 39 40 43 public Object typeCast(Object value) throws TypeCastException 44 { 45 if (value == null || value == ITable.NO_VALUE) 46 { 47 return null; 48 } 49 50 if (value instanceof java.sql.Time ) 51 { 52 return value; 53 } 54 55 if (value instanceof java.util.Date ) 56 { 57 java.util.Date date = (java.util.Date )value; 58 return new java.sql.Time (date.getTime()); 59 } 60 61 if (value instanceof Long ) 62 { 63 Long date = (Long )value; 64 return new java.sql.Time (date.longValue()); 65 } 66 67 if (value instanceof String ) 68 { 69 try 70 { 71 return java.sql.Time.valueOf((String )value); 72 } 73 catch (IllegalArgumentException e) 74 { 75 throw new TypeCastException(value, this, e); 76 } 77 } 78 79 throw new TypeCastException(value, this); 80 } 81 82 public boolean isDateTime() 83 { 84 return true; 85 } 86 87 public Object getSqlValue(int column, ResultSet resultSet) 88 throws SQLException, TypeCastException 89 { 90 Time value = resultSet.getTime(column); 91 if (value == null || resultSet.wasNull()) 92 { 93 return null; 94 } 95 return value; 96 } 97 98 public void setSqlValue(Object value, int column, PreparedStatement statement) 99 throws SQLException, TypeCastException 100 { 101 statement.setTime(column, (java.sql.Time )typeCast(value)); 102 } 103 } 104 105 106 107 108 109 | Popular Tags |