View Javadoc

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 }