1
2
3
4
5
6
7 package org.asyrinx.joey.gen.command.rdb2java.standard;
8
9 import java.util.HashMap;
10 import java.util.Map;
11
12 import org.asyrinx.joey.gen.command.rdb2java.TypeMappingStrategy;
13 import org.asyrinx.joey.gen.model.java.Type;
14 import org.asyrinx.joey.gen.model.java.classes.JavaLangClass;
15 import org.asyrinx.joey.gen.model.java.classes.JavaUtilClass;
16 import org.asyrinx.joey.gen.model.java.classes.PrimitiveType;
17 import org.asyrinx.joey.gen.model.rdb.Column;
18
19 /***
20 * @author takeshi
21 */
22 public class BasicTypeMapping implements TypeMappingStrategy {
23
24 private final Map typeMap;
25
26 /***
27 *
28 */
29 public BasicTypeMapping() {
30 super();
31 typeMap = initialize();
32 }
33
34
35
36
37
38
39 public Type toJavaType(Column column) {
40 if ("CHAR".equals(column.getType()) && (column.getSizeAsInt() > 1))
41 return JavaLangClass.STRING;
42 else
43 return (Type) typeMap.get(column.getType());
44 }
45
46
47
48
49
50
51 public Type toJavaType(String jdbcTypeName) {
52 return (Type) typeMap.get(jdbcTypeName);
53 }
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 /***
89 * @param jdbcTypeName
90 * @param type
91 */
92 private static void add(Map dest, String jdbcTypeName, Type type) {
93 dest.put(jdbcTypeName, type);
94 }
95
96 /***
97 *
98 */
99 private static Map initialize() {
100 final Map result = new HashMap();
101 add(result, "BIT", PrimitiveType.BOOLEAN);
102 add(result, "TINYINT", PrimitiveType.BYTE);
103 add(result, "SMALLINT", PrimitiveType.SHORT);
104 add(result, "INTEGER", PrimitiveType.INT);
105 add(result, "BIGINT", PrimitiveType.LONG);
106 add(result, "FLOAT", PrimitiveType.FLOAT);
107 add(result, "REAL", PrimitiveType.DOUBLE);
108 add(result, "DOUBLE", PrimitiveType.DOUBLE);
109 add(result, "NUMERIC", PrimitiveType.INT);
110 add(result, "DECIMAL", PrimitiveType.DOUBLE);
111 add(result, "CHAR", PrimitiveType.CHAR);
112 add(result, "VARCHAR", JavaLangClass.STRING);
113 add(result, "LONGVARCHAR", JavaLangClass.STRING);
114 add(result, "DATE", JavaUtilClass.DATE);
115 add(result, "TIME", JavaUtilClass.DATE);
116 add(result, "TIMESTAMP", JavaUtilClass.DATE);
117 add(result, "CLOB", JavaLangClass.STRING);
118 add(result, "BOOLEAN", PrimitiveType.BOOLEAN);
119 return result;
120 }
121
122 }