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