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/08/10 16:58:33
6    */
7   package org.asyrinx.joey.gen.model.rdb;
8   
9   import java.util.ArrayList;
10  import java.util.Iterator;
11  import java.util.List;
12  
13  import org.asyrinx.brownie.core.lang.NumberUtils;
14  import org.asyrinx.joey.gen.jdbc.JdbcUtils;
15  import org.asyrinx.joey.gen.model.Element;
16  
17  /***
18   * @author akima
19   */
20  public class Column extends Element {
21  
22      /***
23       */
24      public Column() {
25          this(null, null, null);
26      }
27  
28      /***
29       * @param table
30       * @param name
31       * @param type
32       */
33      public Column(Table parent, String name, String type) {
34          super(parent, name);
35          this.type = type;
36      }
37  
38      /***
39       * @param table
40       * @param name
41       * @param type
42       * @param size
43       */
44      public Column(Table parent, String name, String type, String size) {
45          this(parent, name, type, size, false, false);
46      }
47  
48      /***
49       * @param table
50       * @param name
51       * @param type
52       * @param size
53       * @param required
54       */
55      public Column(Table parent, String name, String type, String size, boolean required) {
56          this(parent, name, type, size, required, false, null);
57      }
58  
59      /***
60       * @param table
61       * @param name
62       * @param type
63       * @param size
64       * @param required
65       * @param primaryKey
66       */
67      public Column(Table parent, String name, String type, String size, boolean required, boolean primaryKey) {
68          this(parent, name, type, size, required, primaryKey, null);
69      }
70  
71      /***
72       * @param table
73       * @param name
74       * @param type
75       * @param size
76       * @param required
77       * @param primaryKey
78       * @param defaultValue
79       */
80      public Column(Table parent, String name, String type, String size, boolean required, boolean primaryKey,
81              String defaultValue) {
82          super(parent, name);
83          this.type = type;
84          this.size = size;
85          this.required = required;
86          this.primaryKey = primaryKey;
87          this.defaultValue = defaultValue;
88      }
89  
90      /*
91       * (non-Javadoc)
92       * 
93       * @see org.asyrinx.joey.gen.model.Element#getParentElement()
94       */
95      public Table getParent() {
96          return (Table) super.getParentElement();
97      }
98  
99      private String type = null;
100 
101     private String size = null;
102 
103     private String decimalSize = null;
104 
105     private boolean required = false;
106 
107     private boolean primaryKey = false;
108 
109     private String defaultValue = null;
110 
111     private String enum = null;
112 
113     private boolean autoIncrement = false;
114 
115     private String idMethod = null;
116 
117     private String fk = null;
118 
119     private String fkCascade = ForeignKey.CASCADE_NONE;
120 
121     private String indexed = null;
122 
123     private boolean extended = false;
124 
125     private boolean caption = false;
126 
127     /***
128      * @return Returns the defaultValue.
129      */
130     public String getDefault() {
131         return getDefaultValue();
132     }
133 
134     public int getSizeAsInt() {
135         return NumberUtils.toInt(getSize(), 0);
136     }
137 
138     public int getDeciamlSizeAsInt() {
139         return NumberUtils.toInt(getDecimalSize(), 0);
140     }
141 
142     /***
143      * @param defaultValue
144      *            The defaultValue to set.
145      */
146     public void setDefault(String defaultValue) {
147         this.setDefaultValue(defaultValue);
148     }
149 
150     /***
151      * @return Returns the defaultValue.
152      */
153     public String getDefaultValue() {
154         return defaultValue;
155     }
156 
157     /***
158      * @param defaultValue
159      *            The defaultValue to set.
160      */
161     public void setDefaultValue(String defaultValue) {
162         this.defaultValue = defaultValue;
163     }
164 
165     /***
166      * @return Returns the primaryKey.
167      */
168     public boolean isPrimaryKey() {
169         return primaryKey;
170     }
171 
172     /***
173      * @param primaryKey
174      *            The primaryKey to set.
175      */
176     public void setPrimaryKey(boolean primaryKey) {
177         this.primaryKey = primaryKey;
178     }
179 
180     /***
181      * @return Returns the required.
182      */
183     public boolean isRequired() {
184         return required;
185     }
186 
187     /***
188      * @param required
189      *            The required to set.
190      */
191     public void setRequired(boolean required) {
192         this.required = required;
193     }
194 
195     /***
196      * @return Returns the size.
197      */
198     public String getSize() {
199         return size;
200     }
201 
202     /***
203      * @param size
204      *            The size to set.
205      */
206     public void setSize(String size) {
207         this.size = size;
208     }
209 
210     /***
211      * @return Returns the type.
212      */
213     public String getType() {
214         return type;
215     }
216 
217     /***
218      * @param type
219      *            The type to set.
220      */
221     public void setType(String type) {
222         this.type = type;
223     }
224 
225     public int getJdbcType() {
226         return JdbcUtils.toJdbcType(this.getType());
227     }
228 
229     /***
230      * @return Returns the enum.
231      */
232     public String getEnum() {
233         return enum;
234     }
235 
236     /***
237      * @param enum
238      *            The enum to set.
239      */
240     public void setEnum(String enum) {
241         this.enum = enum;
242     }
243 
244     public RdbEnumeration getEnumeration() {
245         final Table table = getParent();
246         if (table == null)
247             return null;
248         final Database database = table.getParent();
249         return database.getEnumerations().getEnumeration(getEnum());
250     }
251 
252     /***
253      * @return Returns the autoIncrement.
254      */
255     public boolean isAutoIncrement() {
256         return autoIncrement;
257     }
258 
259     /***
260      * @param autoIncrement
261      *            The autoIncrement to set.
262      */
263     public void setAutoIncrement(boolean autoIncrement) {
264         this.autoIncrement = autoIncrement;
265     }
266 
267     /***
268      * @return Returns the idMethod.
269      */
270     public String getIdMethod() {
271         return idMethod;
272     }
273 
274     /***
275      * @param idMethod
276      *            The idMethod to set.
277      */
278     public void setIdMethod(String idMethod) {
279         this.idMethod = idMethod;
280     }
281 
282     /***
283      * @return Returns the fk.
284      */
285     public String getFk() {
286         return fk;
287     }
288 
289     /***
290      * @param fk
291      *            The fk to set.
292      */
293     public void setFk(String fk) {
294         this.fk = fk;
295     }
296 
297     /***
298      * @return Returns the indexed.
299      */
300     public String getIndexed() {
301         return indexed;
302     }
303 
304     /***
305      * @param indexed
306      *            The indexed to set.
307      */
308     public void setIndexed(String indexed) {
309         this.indexed = indexed;
310     }
311 
312     /***
313      * @return Returns the extended.
314      */
315     public boolean isExtended() {
316         return extended;
317     }
318 
319     /***
320      * @param extended
321      *            The extended to set.
322      */
323     public void setExtended(boolean extended) {
324         this.extended = extended;
325     }
326 
327     public List getForeignKeysContainsAsLocal() {
328         final List result = new ArrayList();
329         final Table table = this.getParent();
330         if (table == null)
331             return result;
332         for (Iterator i = table.getForeignKeys().iterator(); i.hasNext();) {
333             final ForeignKey fk = (ForeignKey) i.next();
334             if (fk.containsAsLocal(this))
335                 result.add(fk);
336         }
337         return result;
338     }
339 
340     public String getDecimalSize() {
341         return decimalSize;
342     }
343 
344     public void setDecimalSize(String decimalSize) {
345         this.decimalSize = decimalSize;
346     }
347 
348     public boolean isCaption() {
349         return caption;
350     }
351 
352     public void setCaption(boolean caption) {
353         this.caption = caption;
354     }
355 
356     public String getFkCascade() {
357         return fkCascade;
358     }
359 
360     public void setFkCascade(String fkcascade) {
361         this.fkCascade = fkcascade;
362     }
363 }