1
2
3
4
5
6
7 package org.asyrinx.joey.gen.command.rdb2java.standard;
8
9 import java.util.Iterator;
10 import java.util.List;
11
12 import org.asyrinx.brownie.core.lang.StringUtils;
13 import org.asyrinx.joey.gen.model.Element;
14 import org.asyrinx.joey.gen.model.rdb.Column;
15 import org.asyrinx.joey.gen.model.rdb.Databases;
16 import org.asyrinx.joey.gen.model.rdb.RdbEnumeration;
17 import org.asyrinx.joey.gen.model.rdb.Table;
18
19 /***
20 * @author takeshi
21 */
22 public class BasicNaming implements NamingStrategy {
23
24 /***
25 *
26 */
27 public BasicNaming() {
28 super();
29 }
30
31 private char separator = '_';
32
33 protected String doUnderscoreBasedNaming(String schemaName) {
34 final StringBuffer result = new StringBuffer();
35 final List parts = StringUtils.tokenize(schemaName, String.valueOf(getSeparator()));
36 for (Iterator i = parts.iterator(); i.hasNext();) {
37 String namePart = i.next().toString().toLowerCase();
38 result.append(StringUtils.capitalize(namePart));
39 }
40 return result.toString();
41 }
42
43 protected String toName(Element element) {
44 final Object optionName = element.getOptions().get(JavaOptions.JAVA_NAME);
45 return (optionName != null) ? optionName.toString() : doUnderscoreBasedNaming(element.getName());
46 }
47
48 private final String[] EnumPropertyDeleteTargets = new String[] { "Id", "Cd", "Code", "No" };
49
50
51
52
53
54
55 public String toEnumPropertyName(String name) {
56 for (int i = 0; i < EnumPropertyDeleteTargets.length; i++) {
57 if (name.endsWith(EnumPropertyDeleteTargets[i])) {
58 return name.substring(0, name.length() - EnumPropertyDeleteTargets[i].length());
59 }
60 }
61 return name + "Enum";
62 }
63
64
65
66
67
68
69 public String toAppDomainName(Databases databases) {
70 return toName(databases);
71 }
72
73
74
75
76
77
78 public String toEnumerationName(RdbEnumeration enumeration) {
79 return null;
80 }
81
82
83
84
85
86
87 public String toClassName(Table table) {
88 return toName(table);
89 }
90
91
92
93
94
95
96 public String toPropertyName(Column column) {
97 return StringUtils.uncapitalize(toName(column));
98 }
99
100 /***
101 * @return Returns the separator.
102 */
103 public char getSeparator() {
104 return separator;
105 }
106
107 /***
108 * @param separator
109 * The separator to set.
110 */
111 public void setSeparator(char separator) {
112 this.separator = separator;
113 }
114 }