KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > finalist > jaggenerator > Column


1 /* Copyright (C) 2003 Finalist IT Group
2  *
3  * This file is part of JAG - the Java J2EE Application Generator
4  *
5  * JAG 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 2 of the License, or
8  * (at your option) any later version.
9  * JAG is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  * You should have received a copy of the GNU General Public License
14  * along with JAG; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  */

17
18 package com.finalist.jaggenerator;
19
20 import org.apache.commons.logging.Log;
21 import org.apache.commons.logging.LogFactory;
22
23 import java.io.Serializable JavaDoc;
24
25 /**
26  *
27  * @author hillebrand
28  */

29 public class Column implements Serializable JavaDoc {
30    static Log log = LogFactory.getLog(Column.class);
31    /** Holds value of property name. */
32    private String JavaDoc name;
33
34    /** Holds value of property sqlType. */
35    private String JavaDoc sqlType;
36
37    /** Holds value of property precision. */
38    private int precision;
39
40    /** Holds value of property scale. */
41    private int scale;
42
43    /** Holds value of property length. */
44    private int length;
45
46    /** Set to true if columns is primary key column. */
47    private boolean primaryKey;
48
49    /** True if the column may be null. */
50    private boolean nullable;
51
52
53    /** Creates a new instance of Column */
54    public Column() {
55    }
56
57
58    /** Getter for property name.
59     * @return Value of property name.
60     *
61     */

62    public String JavaDoc getName() {
63       return this.name;
64    }
65
66
67    /** Setter for property name.
68     * @param name New value of property name.
69     *
70     */

71    public void setName(String JavaDoc name) {
72       this.name = name;
73    }
74
75
76    /** Setter for property sqlType.
77     * @param sqlType New value of property sqlType.
78     *
79     */

80    public void setSqlType(String JavaDoc sqlType) {
81
82       // Check if a precision and / or scale have been passed.
83
if (sqlType != null) {
84           int index = sqlType.indexOf("(");
85           if (index != -1) {
86               this.sqlType = sqlType.substring(0, index);
87               // Now als set the scale and precision...
88
int index2 = sqlType.indexOf(")");
89               if (index2 != -1) {
90                   // There is a scale and / or precsions.
91
int index3 = sqlType.indexOf(",");
92                   if (index3 != -1) {
93                       // Scale AND precision!
94
String JavaDoc scale = sqlType.substring(index + 1, index3).trim();
95                     String JavaDoc precision = sqlType.substring(index3 + 1, index2).trim();
96                     int sc = 0;
97                     int pr = 0;
98                     try {
99                      sc = Integer.parseInt(scale);
100                      pr = Integer.parseInt(precision);
101                     } catch (Exception JavaDoc e) {
102                         log.warn("Error while parsing scale or precision for type " + sqlType);
103                     }
104                     setScale(sc);
105                     setPrecision(pr);
106                   } else {
107                       // Only a scale..
108
String JavaDoc scale = sqlType.substring(index + 1, index2).trim();
109                       int sc = 0;
110                       try {
111                        sc = Integer.parseInt(scale);
112                       } catch (Exception JavaDoc e) {
113                           log.warn("Error while parsing scale for type " + sqlType);
114                       }
115                       setScale(sc);
116
117                   }
118               }
119           } else {
120             this.sqlType = sqlType;
121           }
122
123       }
124    }
125
126
127    /** Getter for property precision.
128     * @return Value of property precision.
129     *
130     */

131    public int getPrecision() {
132       return this.precision;
133    }
134
135
136    /** Setter for property precision.
137     * @param precision New value of property precision.
138     *
139     */

140    public void setPrecision(int precision) {
141       this.precision = precision;
142    }
143
144
145    /** Getter for property scale.
146     * @return Value of property scale.
147     *
148     */

149    public int getScale() {
150       return this.scale;
151    }
152
153
154    /** Setter for property scale.
155     * @param scale New value of property scale.
156     *
157     */

158    public void setScale(int scale) {
159       this.scale = scale;
160    }
161
162
163    /** Getter for property length.
164     * @return Value of property length.
165     *
166     */

167    public int getLength() {
168       return this.length;
169    }
170
171
172    /** Setter for property length.
173     * @param length New value of property length.
174     *
175     */

176    public void setLength(int length) {
177       this.length = length;
178    }
179
180
181    /** Getter for property sqlType.
182     * @return Value of property sqlType.
183     *
184     */

185    public String JavaDoc getSqlType() {
186       return this.sqlType;
187    }
188
189
190    /** Getter for property primary Key
191     * @return Value of primary key.
192     *
193     */

194    public boolean isPrimaryKey() {
195       return this.primaryKey;
196    }
197
198
199    /** Setter for the primary key.
200     * @param value to true if column is a primary key column
201     *
202     */

203    public void setPrimaryKey(boolean value) {
204       this.primaryKey = value;
205    }
206
207    /**
208     * Gets the 'nullableString' property as a boolean.
209     *
210     * @return the boolean interpretation of the 'nullableString' property.
211     */

212    public boolean isNullable() {
213       return nullable;
214    }
215
216    /**
217     * Sets the 'nullable' property with a value from a database columns dumo.
218     * @param nullable set to <code>true</code> if the column is nullable.
219     */

220    public void setNullable(boolean nullable) {
221       this.nullable = nullable;
222    }
223
224    /** @see {@link java.lang.Object#toString()}. */
225    public String JavaDoc toString() {
226       return "Column(name=" + name + ", sqlType=" + sqlType + ", precision=" + precision +
227             ", scale=" + scale + ", length=" + length + ", primaryKey=" + primaryKey + ", nullable=" + nullable + ")";
228    }
229
230
231 }
232
Popular Tags