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
14 /***
15 * @author akima
16 */
17 public class BasicNaming extends RdbCommand {
18
19 /***
20 *
21 */
22 public BasicNaming() {
23 super();
24 }
25
26 private String separater = "_";
27
28 private String fkHeader = "f";
29
30 private String indexHeader = "i";
31
32 /***
33 * @return Returns the fkHeader.
34 */
35 public String getFkHeader() {
36 return fkHeader;
37 }
38
39 /***
40 * @param fkHeader
41 * The fkHeader to set.
42 */
43 public void setFkHeader(String fkIndexHeader) {
44 this.fkHeader = fkIndexHeader;
45 }
46
47 /***
48 * @return Returns the indexHeader.
49 */
50 public String getIndexHeader() {
51 return indexHeader;
52 }
53
54 /***
55 * @param indexHeader
56 * The indexHeader to set.
57 */
58 public void setIndexHeader(String indexHeader) {
59 this.indexHeader = indexHeader;
60 }
61
62 /***
63 * @return Returns the separater.
64 */
65 public String getSeparater() {
66 return separater;
67 }
68
69 /***
70 * @param separater
71 * The separater to set.
72 */
73 public void setSeparater(String separater) {
74 this.separater = separater;
75 }
76
77
78
79
80
81
82 public void visit(ForeignKey foreignKey) {
83 if (foreignKey == null)
84 return;
85 if (!StringUtils.isEmpty(foreignKey.getName()))
86 return;
87 final Table table = foreignKey.getParent();
88 if (table == null)
89 errors.add("foreignKey has no parent table.");
90 final int index = table.getForeignKeys().indexOf(foreignKey) + 1;
91 final String name = getFkHeader() + getSeparater() + table.getName() + getSeparater() + index;
92 foreignKey.setName(name);
93 }
94
95
96
97
98
99
100 public void visit(Index index) {
101 if (index == null)
102 return;
103 if (!StringUtils.isEmpty(index.getName()))
104 return;
105 final Table table = index.getParent();
106 if (table == null)
107 errors.add("index has no parent table.");
108 final ForeignKey foreignKey = table.findForeignKey(index);
109 final String name;
110 if (foreignKey != null) {
111 if (StringUtils.isEmpty(foreignKey.getName()))
112 this.visit(foreignKey);
113 name = getIndexHeader() + getSeparater() + foreignKey.getName();
114 } else {
115 final int idx = table.getIndexes().indexOf(index) + 1;
116 name = getIndexHeader() + getSeparater() + table.getName() + getSeparater() + idx;
117 }
118 index.setName(name);
119 }
120
121 }