1 /*
2 * joey-gen and its relative products are published under the terms
3 * of the Apache Software License.
4 *
5 * Created on 2004/10/27 2:44:46
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 * (non-Javadoc)
36 *
37 * @see org.asyrinx.joey.gen.command.rdb2java.standard.TypeMappingStrategy#toJavaType(org.asyrinx.joey.gen.model.rdb.Column)
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 * (non-Javadoc)
48 *
49 * @see org.asyrinx.joey.gen.command.rdb2java.standard.TypeMappingStrategy#toJavaType(java.lang.String)
50 */
51 public Type toJavaType(String jdbcTypeName) {
52 return (Type) typeMap.get(jdbcTypeName);
53 }
54
55 /*
56 * @see java.sql.Types
57 */
58 //public final static int BIT = -7;
59 //public final static int TINYINT = -6;
60 //public final static int SMALLINT = 5;
61 //public final static int INTEGER = 4;
62 //public final static int BIGINT = -5;
63 //public final static int FLOAT = 6;
64 //public final static int REAL = 7;
65 //public final static int DOUBLE = 8;
66 //public final static int NUMERIC = 2;
67 //public final static int DECIMAL = 3;
68 //public final static int CHAR = 1;
69 //public final static int VARCHAR = 12;
70 //public final static int LONGVARCHAR = -1;
71 //public final static int DATE = 91;
72 //public final static int TIME = 92;
73 //public final static int TIMESTAMP = 93;
74 //public final static int BINARY = -2;
75 //public final static int VARBINARY = -3;
76 //public final static int LONGVARBINARY = -4;
77 //public final static int NULL = 0;
78 //public final static int OTHER = 1111;
79 //public final static int JAVA_OBJECT = 2000;
80 //public final static int DISTINCT = 2001;
81 //public final static int STRUCT = 2002;
82 //public final static int ARRAY = 2003;
83 //public final static int BLOB = 2004;
84 //public final static int CLOB = 2005;
85 //public final static int REF = 2006;
86 //public final static int DATALINK = 70;
87 //public final static int BOOLEAN = 16;
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 }