1
2
3
4
5
6
7 package org.asyrinx.joey.gen.command.rdb;
8
9 import org.apache.commons.lang.StringUtils;
10 import org.asyrinx.joey.gen.model.rdb.ForeignKey;
11 import org.asyrinx.joey.gen.model.rdb.Index;
12 import org.asyrinx.joey.gen.model.rdb.Table;
13 import org.asyrinx.joey.gen.model.rdb.Unique;
14
15 /***
16 * @author akima
17 */
18 public class BasicNaming extends RdbCommand {
19
20 private String separater = "_";
21
22 private String fkHeader = "f";
23
24 private String indexHeader = "i";
25
26 private String uniqueHeader = "u";
27
28 /***
29 * @return Returns the fkHeader.
30 */
31 public String getFkHeader() {
32 return fkHeader;
33 }
34
35 /***
36 * @param fkHeader
37 * The fkHeader to set.
38 */
39 public void setFkHeader(String fkIndexHeader) {
40 this.fkHeader = fkIndexHeader;
41 }
42
43 /***
44 * @return Returns the indexHeader.
45 */
46 public String getIndexHeader() {
47 return indexHeader;
48 }
49
50 /***
51 * @param indexHeader
52 * The indexHeader to set.
53 */
54 public void setIndexHeader(String indexHeader) {
55 this.indexHeader = indexHeader;
56 }
57
58 /***
59 * @return Returns the separater.
60 */
61 public String getSeparater() {
62 return separater;
63 }
64
65 /***
66 * @param separater
67 * The separater to set.
68 */
69 public void setSeparater(String separater) {
70 this.separater = separater;
71 }
72
73 public String getUniqueHeader() {
74 return uniqueHeader;
75 }
76
77 public void setUniqueHeader(String uniqueHeader) {
78 this.uniqueHeader = uniqueHeader;
79 }
80
81
82
83
84
85
86 public void visit(ForeignKey foreignKey) {
87 if (foreignKey == null)
88 return;
89 if (!StringUtils.isEmpty(foreignKey.getName()))
90 return;
91 final Table table = foreignKey.getParent();
92 if (table == null)
93 errors.add("foreignKey has no parent table.");
94 final int index = table.getForeignKeys().indexOf(foreignKey) + 1;
95 final String name = getFkHeader() + getSeparater() + table.getName() + getSeparater() + index;
96 foreignKey.setName(name);
97 }
98
99
100
101
102
103
104 public void visit(Index index) {
105 if (index == null)
106 return;
107 if (!StringUtils.isEmpty(index.getName()))
108 return;
109 final Table table = index.getParent();
110 if (table == null)
111 addError(index, "index has no parent table.");
112 final ForeignKey foreignKey = table.findForeignKey(index);
113 final String name;
114 if (foreignKey != null) {
115 if (StringUtils.isEmpty(foreignKey.getName()))
116 this.visit(foreignKey);
117 name = getIndexHeader() + getSeparater() + foreignKey.getName();
118 } else {
119 final int idx = table.getIndexes().indexOf(index) + 1;
120 name = getIndexHeader() + getSeparater() + table.getName() + getSeparater() + idx;
121 }
122 index.setName(name);
123 }
124
125
126
127
128
129
130 public void visit(Unique unique) {
131 if (unique == null)
132 return;
133 if (!StringUtils.isEmpty(unique.getName()))
134 return;
135 final Table table = unique.getParent();
136 if (table == null)
137 addError(unique, "unique has no parent table.");
138 final int idx = table.getUniques().indexOf(unique) + 1;
139 final String name = getUniqueHeader() + getSeparater() + table.getName() + getSeparater() + idx;
140 unique.setName(name);
141 }
142
143 }