1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.codegen.mybatis3.javamapper.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
27
28
29
30
31
32 public class UpdateByExampleSelectiveMethodGenerator extends
33 AbstractJavaMapperMethodGenerator {
34
35 @Override
36 public void addInterfaceElements(Interface interfaze) {
37 Set<FullyQualifiedJavaType> importedTypes = new TreeSet<FullyQualifiedJavaType>();
38 Method method = new Method();
39 method.setVisibility(JavaVisibility.PUBLIC);
40 method.setReturnType(FullyQualifiedJavaType.getIntInstance());
41 method.setName(introspectedTable
42 .getUpdateByExampleSelectiveStatementId());
43
44 FullyQualifiedJavaType parameterType =
45 introspectedTable.getRules().calculateAllFieldsClass();
46 method.addParameter(new Parameter(parameterType,
47 "record", "@Param(\"record\")"));
48 importedTypes.add(parameterType);
49
50 FullyQualifiedJavaType exampleType = new FullyQualifiedJavaType(
51 introspectedTable.getExampleType());
52 method.addParameter(new Parameter(exampleType,
53 "example", "@Param(\"example\")"));
54 importedTypes.add(exampleType);
55
56 importedTypes.add(new FullyQualifiedJavaType(
57 "org.apache.ibatis.annotations.Param"));
58
59 context.getCommentGenerator().addGeneralMethodComment(method,
60 introspectedTable);
61
62 addMapperAnnotations(interfaze, method);
63
64 if (context.getPlugins()
65 .clientUpdateByExampleSelectiveMethodGenerated(method, interfaze,
66 introspectedTable)) {
67 interfaze.addImportedTypes(importedTypes);
68 interfaze.addMethod(method);
69 }
70 }
71
72 public void addMapperAnnotations(Interface interfaze, Method method) {
73 }
74 }