1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.internal;
17
18 import static org.mybatis.generator.internal.util.StringUtility.isTrue;
19
20 import java.util.Date;
21 import java.util.Properties;
22
23 import org.mybatis.generator.api.CommentGenerator;
24 import org.mybatis.generator.api.IntrospectedColumn;
25 import org.mybatis.generator.api.IntrospectedTable;
26 import org.mybatis.generator.api.dom.java.CompilationUnit;
27 import org.mybatis.generator.api.dom.java.Field;
28 import org.mybatis.generator.api.dom.java.InnerClass;
29 import org.mybatis.generator.api.dom.java.InnerEnum;
30 import org.mybatis.generator.api.dom.java.JavaElement;
31 import org.mybatis.generator.api.dom.java.Method;
32 import org.mybatis.generator.api.dom.java.Parameter;
33 import org.mybatis.generator.api.dom.xml.TextElement;
34 import org.mybatis.generator.api.dom.xml.XmlElement;
35 import org.mybatis.generator.config.MergeConstants;
36 import org.mybatis.generator.config.PropertyRegistry;
37
38
39
40
41
42 public class DefaultCommentGenerator implements CommentGenerator {
43
44 private Properties properties;
45 private boolean suppressDate;
46 private boolean suppressAllComments;
47
48 public DefaultCommentGenerator() {
49 super();
50 properties = new Properties();
51 suppressDate = false;
52 suppressAllComments = false;
53 }
54
55 public void addJavaFileComment(CompilationUnit compilationUnit) {
56
57 return;
58 }
59
60
61
62
63
64 public void addComment(XmlElement xmlElement) {
65 if (suppressAllComments) {
66 return;
67 }
68
69 xmlElement.addElement(new TextElement("<!--"));
70
71 StringBuilder sb = new StringBuilder();
72 sb.append(" WARNING - ");
73 sb.append(MergeConstants.NEW_ELEMENT_TAG);
74 xmlElement.addElement(new TextElement(sb.toString()));
75 xmlElement
76 .addElement(new TextElement(
77 " This element is automatically generated by MyBatis Generator, do not modify."));
78
79 String s = getDateString();
80 if (s != null) {
81 sb.setLength(0);
82 sb.append(" This element was generated on ");
83 sb.append(s);
84 sb.append('.');
85 xmlElement.addElement(new TextElement(sb.toString()));
86 }
87
88 xmlElement.addElement(new TextElement("-->"));
89 }
90
91 public void addRootComment(XmlElement rootElement) {
92
93 return;
94 }
95
96 public void addConfigurationProperties(Properties properties) {
97 this.properties.putAll(properties);
98
99 suppressDate = isTrue(properties
100 .getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_DATE));
101
102 suppressAllComments = isTrue(properties
103 .getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_ALL_COMMENTS));
104 }
105
106
107
108
109
110
111
112
113
114
115 protected void addJavadocTag(JavaElement javaElement,
116 boolean markAsDoNotDelete) {
117 javaElement.addJavaDocLine(" *");
118 StringBuilder sb = new StringBuilder();
119 sb.append(" * ");
120 sb.append(MergeConstants.NEW_ELEMENT_TAG);
121 if (markAsDoNotDelete) {
122 sb.append(" do_not_delete_during_merge");
123 }
124 String s = getDateString();
125 if (s != null) {
126 sb.append(' ');
127 sb.append(s);
128 }
129 javaElement.addJavaDocLine(sb.toString());
130 }
131
132
133
134
135
136
137
138
139 protected String getDateString() {
140 if (suppressDate) {
141 return null;
142 } else {
143 return new Date().toString();
144 }
145 }
146
147 public void addClassComment(InnerClass innerClass,
148 IntrospectedTable introspectedTable) {
149 if (suppressAllComments) {
150 return;
151 }
152
153 StringBuilder sb = new StringBuilder();
154
155 innerClass.addJavaDocLine("/**");
156 innerClass
157 .addJavaDocLine(" * This class was generated by MyBatis Generator.");
158
159 sb.append(" * This class corresponds to the database table ");
160 sb.append(introspectedTable.getFullyQualifiedTable());
161 innerClass.addJavaDocLine(sb.toString());
162
163 addJavadocTag(innerClass, false);
164
165 innerClass.addJavaDocLine(" */");
166 }
167
168 public void addEnumComment(InnerEnum innerEnum,
169 IntrospectedTable introspectedTable) {
170 if (suppressAllComments) {
171 return;
172 }
173
174 StringBuilder sb = new StringBuilder();
175
176 innerEnum.addJavaDocLine("/**");
177 innerEnum
178 .addJavaDocLine(" * This enum was generated by MyBatis Generator.");
179
180 sb.append(" * This enum corresponds to the database table ");
181 sb.append(introspectedTable.getFullyQualifiedTable());
182 innerEnum.addJavaDocLine(sb.toString());
183
184 addJavadocTag(innerEnum, false);
185
186 innerEnum.addJavaDocLine(" */");
187 }
188
189 public void addFieldComment(Field field,
190 IntrospectedTable introspectedTable,
191 IntrospectedColumn introspectedColumn) {
192 if (suppressAllComments) {
193 return;
194 }
195
196 StringBuilder sb = new StringBuilder();
197
198 field.addJavaDocLine("/**");
199 field
200 .addJavaDocLine(" * This field was generated by MyBatis Generator.");
201
202 sb.append(" * This field corresponds to the database column ");
203 sb.append(introspectedTable.getFullyQualifiedTable());
204 sb.append('.');
205 sb.append(introspectedColumn.getActualColumnName());
206 field.addJavaDocLine(sb.toString());
207
208 addJavadocTag(field, false);
209
210 field.addJavaDocLine(" */");
211 }
212
213 public void addFieldComment(Field field, IntrospectedTable introspectedTable) {
214 if (suppressAllComments) {
215 return;
216 }
217
218 StringBuilder sb = new StringBuilder();
219
220 field.addJavaDocLine("/**");
221 field
222 .addJavaDocLine(" * This field was generated by MyBatis Generator.");
223
224 sb.append(" * This field corresponds to the database table ");
225 sb.append(introspectedTable.getFullyQualifiedTable());
226 field.addJavaDocLine(sb.toString());
227
228 addJavadocTag(field, false);
229
230 field.addJavaDocLine(" */");
231 }
232
233 public void addGeneralMethodComment(Method method,
234 IntrospectedTable introspectedTable) {
235 if (suppressAllComments) {
236 return;
237 }
238
239 StringBuilder sb = new StringBuilder();
240
241 method.addJavaDocLine("/**");
242 method
243 .addJavaDocLine(" * This method was generated by MyBatis Generator.");
244
245 sb.append(" * This method corresponds to the database table ");
246 sb.append(introspectedTable.getFullyQualifiedTable());
247 method.addJavaDocLine(sb.toString());
248
249 addJavadocTag(method, false);
250
251 method.addJavaDocLine(" */");
252 }
253
254 public void addGetterComment(Method method,
255 IntrospectedTable introspectedTable,
256 IntrospectedColumn introspectedColumn) {
257 if (suppressAllComments) {
258 return;
259 }
260
261 StringBuilder sb = new StringBuilder();
262
263 method.addJavaDocLine("/**");
264 method
265 .addJavaDocLine(" * This method was generated by MyBatis Generator.");
266
267 sb.append(" * This method returns the value of the database column ");
268 sb.append(introspectedTable.getFullyQualifiedTable());
269 sb.append('.');
270 sb.append(introspectedColumn.getActualColumnName());
271 method.addJavaDocLine(sb.toString());
272
273 method.addJavaDocLine(" *");
274
275 sb.setLength(0);
276 sb.append(" * @return the value of ");
277 sb.append(introspectedTable.getFullyQualifiedTable());
278 sb.append('.');
279 sb.append(introspectedColumn.getActualColumnName());
280 method.addJavaDocLine(sb.toString());
281
282 addJavadocTag(method, false);
283
284 method.addJavaDocLine(" */");
285 }
286
287 public void addSetterComment(Method method,
288 IntrospectedTable introspectedTable,
289 IntrospectedColumn introspectedColumn) {
290 if (suppressAllComments) {
291 return;
292 }
293
294 StringBuilder sb = new StringBuilder();
295
296 method.addJavaDocLine("/**");
297 method
298 .addJavaDocLine(" * This method was generated by MyBatis Generator.");
299
300 sb.append(" * This method sets the value of the database column ");
301 sb.append(introspectedTable.getFullyQualifiedTable());
302 sb.append('.');
303 sb.append(introspectedColumn.getActualColumnName());
304 method.addJavaDocLine(sb.toString());
305
306 method.addJavaDocLine(" *");
307
308 Parameter parm = method.getParameters().get(0);
309 sb.setLength(0);
310 sb.append(" * @param ");
311 sb.append(parm.getName());
312 sb.append(" the value for ");
313 sb.append(introspectedTable.getFullyQualifiedTable());
314 sb.append('.');
315 sb.append(introspectedColumn.getActualColumnName());
316 method.addJavaDocLine(sb.toString());
317
318 addJavadocTag(method, false);
319
320 method.addJavaDocLine(" */");
321 }
322
323 public void addClassComment(InnerClass innerClass,
324 IntrospectedTable introspectedTable, boolean markAsDoNotDelete) {
325 if (suppressAllComments) {
326 return;
327 }
328
329 StringBuilder sb = new StringBuilder();
330
331 innerClass.addJavaDocLine("/**");
332 innerClass
333 .addJavaDocLine(" * This class was generated by MyBatis Generator.");
334
335 sb.append(" * This class corresponds to the database table ");
336 sb.append(introspectedTable.getFullyQualifiedTable());
337 innerClass.addJavaDocLine(sb.toString());
338
339 addJavadocTag(innerClass, markAsDoNotDelete);
340
341 innerClass.addJavaDocLine(" */");
342 }
343 }