1
2
3
4
5
6
7 package org.asyrinx.joey.gen.model.rdb;
8
9 import java.util.Iterator;
10
11 import org.asyrinx.brownie.core.lang.StringUtils;
12 import org.asyrinx.joey.gen.model.Element;
13
14 import test.org.asyrinx.joey.gen.model.rdb.Constants;
15
16 /***
17 * @author akima
18 */
19 public class Database extends Element {
20
21 public Database() {
22 super();
23 }
24
25 /***
26 *
27 */
28 public Database(Databases parent, String name) {
29 super(parent, name);
30 }
31
32
33
34
35
36
37 public Databases getParent() {
38 return (Databases) super.getParentElement();
39 }
40
41
42
43
44
45
46 public void add(Element element) {
47 if (element instanceof Table)
48 tables.add((Table) element);
49 else if (element instanceof RdbEnumeration)
50 enumerations.add((RdbEnumeration) element);
51 else
52 super.add(element);
53 }
54
55 private final TableSet tables = new TableSet(this);
56
57 /***
58 * @return Returns the tables.
59 */
60 public TableSet getTables() {
61 return tables;
62 }
63
64 private final RdbEnumerationSet enumerations = new RdbEnumerationSet(this);
65
66 /***
67 * @return Returns the enumerations.
68 */
69 public RdbEnumerationSet getEnumerations() {
70 return enumerations;
71 }
72
73 /***
74 * @param committed
75 */
76 public void moveTables(Database dest) {
77 for (final Iterator i = tables.iterator(); i.hasNext();) {
78 final Table table = (Table) i.next();
79 dest.getTables().add(table);
80 }
81 }
82
83 /***
84 * @param committed
85 */
86 public void moveEnumerations(Database dest) {
87 for (final Iterator i = enumerations.iterator(); i.hasNext();) {
88 final RdbEnumeration enumeration = (RdbEnumeration) i.next();
89 dest.getEnumerations().add(enumeration);
90 }
91 }
92
93 /***
94 * @param string
95 * @return
96 */
97 public Column getColumn(String columnName) {
98 final String[] nameParts = StringUtils.tokenizeToArray(columnName, Constants.ELEMENTS_DELIMITER);
99 if (nameParts.length == 2) {
100 return getColumn(nameParts[0], nameParts[1]);
101 } else if (nameParts.length == 3) {
102 if (getParent() != null)
103 return getParent().getColumn(columnName);
104 }
105 return null;
106 }
107
108 public Column getColumn(String tableName, String columnName) {
109 final Table table = getTables().getTable(tableName);
110 return (table == null) ? null : table.getColumns().getColumn(columnName);
111
112 }
113 }