1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.config;
17
18 import static org.mybatis.generator.internal.util.StringUtility.stringContainsSpace;
19 import static org.mybatis.generator.internal.util.StringUtility.stringHasValue;
20 import static org.mybatis.generator.internal.util.messages.Messages.getString;
21
22 import java.util.List;
23
24 import org.mybatis.generator.api.dom.xml.Attribute;
25 import org.mybatis.generator.api.dom.xml.XmlElement;
26
27
28
29
30
31
32 public class ColumnOverride extends PropertyHolder {
33
34
35 private String columnName;
36
37
38 private String javaProperty;
39
40
41 private String jdbcType;
42
43
44 private String javaType;
45
46
47 private String typeHandler;
48
49
50 private boolean isColumnNameDelimited;
51
52
53 private String configuredDelimitedColumnName;
54
55
56
57
58
59
60
61 public ColumnOverride(String columnName) {
62 super();
63
64 this.columnName = columnName;
65 isColumnNameDelimited = stringContainsSpace(columnName);
66 }
67
68
69
70
71
72
73 public String getColumnName() {
74 return columnName;
75 }
76
77
78
79
80
81
82 public String getJavaProperty() {
83 return javaProperty;
84 }
85
86
87
88
89
90
91
92 public void setJavaProperty(String javaProperty) {
93 this.javaProperty = javaProperty;
94 }
95
96
97
98
99
100
101 public String getJavaType() {
102 return javaType;
103 }
104
105
106
107
108
109
110
111 public void setJavaType(String javaType) {
112 this.javaType = javaType;
113 }
114
115
116
117
118
119
120 public String getJdbcType() {
121 return jdbcType;
122 }
123
124
125
126
127
128
129
130 public void setJdbcType(String jdbcType) {
131 this.jdbcType = jdbcType;
132 }
133
134
135
136
137
138
139 public String getTypeHandler() {
140 return typeHandler;
141 }
142
143
144
145
146
147
148
149 public void setTypeHandler(String typeHandler) {
150 this.typeHandler = typeHandler;
151 }
152
153
154
155
156
157
158 public XmlElement toXmlElement() {
159 XmlElement xmlElement = new XmlElement("columnOverride");
160 xmlElement.addAttribute(new Attribute("column", columnName));
161
162 if (stringHasValue(javaProperty)) {
163 xmlElement.addAttribute(new Attribute("property", javaProperty));
164 }
165
166 if (stringHasValue(javaType)) {
167 xmlElement.addAttribute(new Attribute("javaType", javaType));
168 }
169
170 if (stringHasValue(jdbcType)) {
171 xmlElement.addAttribute(new Attribute("jdbcType", jdbcType));
172 }
173
174 if (stringHasValue(typeHandler)) {
175 xmlElement.addAttribute(new Attribute("typeHandler", typeHandler));
176 }
177
178 if (stringHasValue(configuredDelimitedColumnName)) {
179 xmlElement.addAttribute(new Attribute(
180 "delimitedColumnName", configuredDelimitedColumnName));
181 }
182
183 addPropertyXmlElements(xmlElement);
184
185 return xmlElement;
186 }
187
188
189
190
191
192
193 public boolean isColumnNameDelimited() {
194 return isColumnNameDelimited;
195 }
196
197
198
199
200
201
202
203 public void setColumnNameDelimited(boolean isColumnNameDelimited) {
204 this.isColumnNameDelimited = isColumnNameDelimited;
205
206 configuredDelimitedColumnName = isColumnNameDelimited ? "true" : "false";
207 }
208
209
210
211
212
213
214
215
216
217 public void validate(List<String> errors, String tableName) {
218 if (!stringHasValue(columnName)) {
219 errors.add(getString("ValidationError.22",
220 tableName));
221 }
222 }
223 }