1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.dbunit.ext.mckoi;
22
23 import org.dbunit.dataset.datatype.DataType;
24 import org.dbunit.dataset.datatype.DataTypeException;
25 import org.dbunit.dataset.datatype.DefaultDataTypeFactory;
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28
29 import java.sql.Types;
30 import java.util.Arrays;
31 import java.util.Collection;
32
33
34
35
36
37
38
39
40
41 public class MckoiDataTypeFactory extends DefaultDataTypeFactory {
42
43
44
45
46 private static final Logger logger = LoggerFactory.getLogger(MckoiDataTypeFactory.class);
47
48
49
50
51
52 private static final Collection DATABASE_PRODUCTS = Arrays.asList(new String[] {"Mckoi"});
53
54
55
56
57 public Collection getValidDbProducts()
58 {
59 return DATABASE_PRODUCTS;
60 }
61
62
63 public DataType createDataType(int sqlType, String sqlTypeName) throws DataTypeException {
64 DataType retValue = super.createDataType(sqlType, sqlTypeName);
65
66 if (logger.isDebugEnabled()) {
67 logger.debug("createDataType(sqlType={}, sqlTypeName={}) - start", String.valueOf(sqlType), sqlTypeName);
68 }
69
70 retValue = (sqlTypeName.equals("BOOLEAN"))? DataType.BOOLEAN: retValue;
71 retValue = (sqlTypeName.equals("CHAR"))? DataType.CHAR: retValue;
72 retValue = (sqlTypeName.equals("CHARACTER"))? DataType.CHAR: retValue;
73
74 retValue = (sqlTypeName.equals("VARCHAR"))? DataType.VARCHAR: retValue;
75 retValue = (sqlTypeName.equals("LONGVARCHAR"))? DataType.LONGVARCHAR: retValue;
76 retValue = (sqlTypeName.equals("CHARACTER VARYING"))? DataType.VARCHAR: retValue;
77 retValue = (sqlTypeName.equals("LONG CHARACTER VARYING"))? DataType.VARCHAR: retValue;
78 retValue = (sqlTypeName.equals("TEXT"))? DataType.VARCHAR: retValue;
79 retValue = (sqlTypeName.equals("STRING"))? DataType.VARCHAR: retValue;
80
81 retValue = (sqlTypeName.equals("CLOB"))? DataType.CLOB: retValue;
82 retValue = (sqlTypeName.equals("TINYINT"))? DataType.TINYINT: retValue;
83 retValue = (sqlTypeName.equals("SMALLINT"))? DataType.SMALLINT: retValue;
84 retValue = (sqlTypeName.equals("INTEGER"))? DataType.INTEGER: retValue;
85 retValue = (sqlTypeName.equals("INT"))? DataType.INTEGER: retValue;
86
87 retValue = (sqlTypeName.equals("BIGINT"))? DataType.BIGINT: retValue;
88 retValue = (sqlTypeName.equals("FLOAT"))? DataType.FLOAT: retValue;
89 retValue = (sqlTypeName.equals("DOUBLE"))? DataType.DOUBLE: retValue;
90 retValue = (sqlTypeName.equals("REAL"))? DataType.REAL: retValue;
91 retValue = (sqlTypeName.equals("NUMERIC"))? DataType.NUMERIC: retValue;
92 retValue = (sqlTypeName.equals("DECIMAL"))? DataType.DECIMAL: retValue;
93 retValue = (sqlTypeName.equals("DATE"))? DataType.DATE: retValue;
94 retValue = (sqlTypeName.equals("TIME"))? DataType.TIME: retValue;
95 retValue = (sqlTypeName.equals("TIMESTAMP"))? DataType.TIMESTAMP: retValue;
96
97 retValue = (sqlTypeName.equals("BINARY"))? DataType.BINARY: retValue;
98 retValue = (sqlTypeName.equals("VARBINARY"))? DataType.VARBINARY: retValue;
99 retValue = (sqlTypeName.equals("LONGVARBINARY"))? DataType.LONGVARBINARY: retValue;
100 retValue = (sqlTypeName.equals("BLOB"))? DataType.BLOB: retValue;
101 retValue = (sqlTypeName.equals("JAVA_OBJECT"))? DataType.forSqlType(Types.JAVA_OBJECT): retValue;
102 return retValue;
103 }
104 }
105
106
107