|
1 /** |
|
2 * SQL-DK |
|
3 * Copyright © 2013 František Kučera (frantovo.cz) |
|
4 * |
|
5 * This program is free software: you can redistribute it and/or modify |
|
6 * it under the terms of the GNU General Public License as published by |
|
7 * the Free Software Foundation, either version 3 of the License, or |
|
8 * (at your option) any later version. |
|
9 * |
|
10 * This program is distributed in the hope that it will be useful, |
|
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 * GNU General Public License for more details. |
|
14 * |
|
15 * You should have received a copy of the GNU General Public License |
|
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
17 */ |
|
18 package info.globalcode.sql.dk; |
|
19 |
|
20 import java.sql.Types; |
|
21 |
|
22 /** |
|
23 * Data types of SQL parameters. |
|
24 * |
|
25 * @author Ing. František Kučera (frantovo.cz) |
|
26 */ |
|
27 public enum SQLType { |
|
28 |
|
29 /** |
|
30 * Names must be upper case – user input is also converted to upper case → case insensitive |
|
31 */ |
|
32 BIT(Types.BIT), |
|
33 TINYINT(Types.TINYINT), |
|
34 SMALLINT(Types.SMALLINT), |
|
35 INTEGER(Types.INTEGER), |
|
36 BIGINT(Types.BIGINT), |
|
37 FLOAT(Types.FLOAT), |
|
38 REAL(Types.REAL), |
|
39 DOUBLE(Types.DOUBLE), |
|
40 NUMERIC(Types.NUMERIC), |
|
41 DECIMAL(Types.DECIMAL), |
|
42 CHAR(Types.CHAR), |
|
43 VARCHAR(Types.VARCHAR), |
|
44 LONGVARCHAR(Types.LONGVARCHAR), |
|
45 DATE(Types.DATE), |
|
46 TIME(Types.TIME), |
|
47 TIMESTAMP(Types.TIMESTAMP), |
|
48 BINARY(Types.BINARY), |
|
49 VARBINARY(Types.VARBINARY), |
|
50 LONGVARBINARY(Types.LONGVARBINARY), |
|
51 NULL(Types.NULL), |
|
52 OTHER(Types.OTHER), |
|
53 JAVA_OBJECT(Types.JAVA_OBJECT), |
|
54 DISTINCT(Types.DISTINCT), |
|
55 STRUCT(Types.STRUCT), |
|
56 ARRAY(Types.ARRAY), |
|
57 BLOB(Types.BLOB), |
|
58 CLOB(Types.CLOB), |
|
59 REF(Types.REF), |
|
60 DATALINK(Types.DATALINK), |
|
61 BOOLEAN(Types.BOOLEAN), |
|
62 ROWID(Types.ROWID), |
|
63 NCHAR(Types.NCHAR), |
|
64 NVARCHAR(Types.NVARCHAR), |
|
65 LONGNVARCHAR(Types.LONGNVARCHAR), |
|
66 NCLOB(Types.NCLOB), |
|
67 SQLXML(Types.SQLXML); |
|
68 /** value from java.sql.Types */ |
|
69 private int code; |
|
70 |
|
71 private SQLType(int code) { |
|
72 this.code = code; |
|
73 } |
|
74 |
|
75 /** |
|
76 * @see java.sql.Types.Types |
|
77 */ |
|
78 public int getCode() { |
|
79 return code; |
|
80 } |
|
81 |
|
82 /** |
|
83 * @param code see {@linkplain java.sql.Types.Types} |
|
84 * @return found SQLType |
|
85 * @throws IllegalArgumentException if no data type has given code |
|
86 */ |
|
87 public static SQLType valueOf(int code) { |
|
88 for (SQLType t : values()) { |
|
89 if (t.code == code) { |
|
90 return t; |
|
91 } |
|
92 } |
|
93 throw new IllegalArgumentException("No data type has code: " + code); |
|
94 } |
|
95 } |