1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.codegen.ibatis2.dao.elements;
17
18 import java.util.Set;
19 import java.util.TreeSet;
20
21 import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
22 import org.mybatis.generator.api.dom.java.Interface;
23 import org.mybatis.generator.api.dom.java.JavaVisibility;
24 import org.mybatis.generator.api.dom.java.Method;
25 import org.mybatis.generator.api.dom.java.Parameter;
26 import org.mybatis.generator.api.dom.java.TopLevelClass;
27
28
29
30
31
32
33 public class UpdateByPrimaryKeyWithoutBLOBsMethodGenerator extends
34 AbstractDAOElementGenerator {
35
36 public UpdateByPrimaryKeyWithoutBLOBsMethodGenerator() {
37 super();
38 }
39
40 @Override
41 public void addImplementationElements(TopLevelClass topLevelClass) {
42 Set<FullyQualifiedJavaType> importedTypes = new TreeSet<FullyQualifiedJavaType>();
43 Method method = getMethodShell(importedTypes);
44
45 StringBuilder sb = new StringBuilder();
46 sb.append("int rows = ");
47 sb.append(daoTemplate.getUpdateMethod(introspectedTable
48 .getIbatis2SqlMapNamespace(), introspectedTable
49 .getUpdateByPrimaryKeyStatementId(), "record"));
50 method.addBodyLine(sb.toString());
51
52 method.addBodyLine("return rows;");
53
54 if (context.getPlugins()
55 .clientUpdateByPrimaryKeyWithoutBLOBsMethodGenerated(method,
56 topLevelClass, introspectedTable)) {
57 topLevelClass.addImportedTypes(importedTypes);
58 topLevelClass.addMethod(method);
59 }
60 }
61
62 @Override
63 public void addInterfaceElements(Interface interfaze) {
64 Set<FullyQualifiedJavaType> importedTypes = new TreeSet<FullyQualifiedJavaType>();
65 Method method = getMethodShell(importedTypes);
66
67 if (context.getPlugins()
68 .clientUpdateByPrimaryKeyWithoutBLOBsMethodGenerated(method,
69 interfaze, introspectedTable)) {
70 interfaze.addImportedTypes(importedTypes);
71 interfaze.addMethod(method);
72 }
73 }
74
75 private Method getMethodShell(Set<FullyQualifiedJavaType> importedTypes) {
76 FullyQualifiedJavaType parameterType = new FullyQualifiedJavaType(
77 introspectedTable.getBaseRecordType());
78 importedTypes.add(parameterType);
79
80 Method method = new Method();
81 method.setVisibility(JavaVisibility.PUBLIC);
82 method.setReturnType(FullyQualifiedJavaType.getIntInstance());
83 method
84 .setName(getDAOMethodNameCalculator()
85 .getUpdateByPrimaryKeyWithoutBLOBsMethodName(
86 introspectedTable));
87 method.addParameter(new Parameter(parameterType, "record"));
88
89 for (FullyQualifiedJavaType fqjt : daoTemplate.getCheckedExceptions()) {
90 method.addException(fqjt);
91 importedTypes.add(fqjt);
92 }
93
94 context.getCommentGenerator().addGeneralMethodComment(method,
95 introspectedTable);
96
97 return method;
98 }
99 }