1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.codegen.ibatis2.sqlmap.elements;
17
18 import java.util.Iterator;
19
20 import org.mybatis.generator.api.IntrospectedColumn;
21 import org.mybatis.generator.api.dom.OutputUtilities;
22 import org.mybatis.generator.api.dom.xml.Attribute;
23 import org.mybatis.generator.api.dom.xml.TextElement;
24 import org.mybatis.generator.api.dom.xml.XmlElement;
25 import org.mybatis.generator.codegen.ibatis2.Ibatis2FormattingUtilities;
26
27
28
29
30
31
32 public class UpdateByExampleWithoutBLOBsElementGenerator extends
33 AbstractXmlElementGenerator {
34
35 public UpdateByExampleWithoutBLOBsElementGenerator() {
36 super();
37 }
38
39 @Override
40 public void addElements(XmlElement parentElement) {
41 XmlElement answer = new XmlElement("update");
42
43 answer.addAttribute(new Attribute(
44 "id", introspectedTable.getUpdateByExampleStatementId()));
45
46 context.getCommentGenerator().addComment(answer);
47
48 StringBuilder sb = new StringBuilder();
49 sb.append("update ");
50 sb.append(introspectedTable
51 .getAliasedFullyQualifiedTableNameAtRuntime());
52 answer.addElement(new TextElement(sb.toString()));
53
54
55 sb.setLength(0);
56 sb.append("set ");
57
58 Iterator<IntrospectedColumn> iter = introspectedTable
59 .getNonBLOBColumns().iterator();
60 while (iter.hasNext()) {
61 IntrospectedColumn introspectedColumn = iter.next();
62
63 sb.append(Ibatis2FormattingUtilities
64 .getAliasedEscapedColumnName(introspectedColumn));
65 sb.append(" = ");
66 sb.append(Ibatis2FormattingUtilities.getParameterClause(
67 introspectedColumn, "record."));
68
69 if (iter.hasNext()) {
70 sb.append(',');
71 }
72
73 answer.addElement(new TextElement(sb.toString()));
74
75
76 if (iter.hasNext()) {
77 sb.setLength(0);
78 OutputUtilities.xmlIndent(sb, 1);
79 }
80 }
81
82 XmlElement isParameterPresentElement = new XmlElement(
83 "isParameterPresent");
84 answer.addElement(isParameterPresentElement);
85
86 XmlElement includeElement = new XmlElement("include");
87 includeElement.addAttribute(new Attribute("refid",
88 introspectedTable.getIbatis2SqlMapNamespace()
89 + "." + introspectedTable.getExampleWhereClauseId()));
90 isParameterPresentElement.addElement(includeElement);
91
92 if (context.getPlugins()
93 .sqlMapUpdateByExampleWithoutBLOBsElementGenerated(answer,
94 introspectedTable)) {
95 parentElement.addElement(answer);
96 }
97 }
98 }