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 static org.mybatis.generator.internal.util.messages.Messages.getString;
19
20 import java.util.Set;
21 import java.util.TreeSet;
22
23 import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
24 import org.mybatis.generator.api.dom.java.Interface;
25 import org.mybatis.generator.api.dom.java.JavaVisibility;
26 import org.mybatis.generator.api.dom.java.Method;
27 import org.mybatis.generator.api.dom.java.Parameter;
28
29 public class SelectByExampleWithoutBLOBsMethodGenerator extends AbstractJavaMapperMethodGenerator {
30
31 public SelectByExampleWithoutBLOBsMethodGenerator() {
32 super();
33 }
34
35 @Override
36 public void addInterfaceElements(Interface interfaze) {
37 Set<FullyQualifiedJavaType> importedTypes = new TreeSet<>();
38 FullyQualifiedJavaType type = new FullyQualifiedJavaType(introspectedTable.getExampleType());
39 importedTypes.add(type);
40 importedTypes.add(FullyQualifiedJavaType.getNewListInstance());
41
42 Method method = new Method(introspectedTable.getSelectByExampleStatementId());
43 method.setVisibility(JavaVisibility.PUBLIC);
44 method.setAbstract(true);
45
46 FullyQualifiedJavaType returnType = FullyQualifiedJavaType.getNewListInstance();
47 FullyQualifiedJavaType listType;
48 if (introspectedTable.getRules().generateBaseRecordClass()) {
49 listType = new FullyQualifiedJavaType(introspectedTable.getBaseRecordType());
50 } else if (introspectedTable.getRules().generatePrimaryKeyClass()) {
51 listType = new FullyQualifiedJavaType(introspectedTable.getPrimaryKeyType());
52 } else {
53 throw new RuntimeException(getString("RuntimeError.12"));
54 }
55
56 importedTypes.add(listType);
57 returnType.addTypeArgument(listType);
58 method.setReturnType(returnType);
59
60 method.addParameter(new Parameter(type, "example"));
61
62 context.getCommentGenerator().addGeneralMethodComment(method, introspectedTable);
63
64 addMapperAnnotations(interfaze, method);
65
66 if (context.getPlugins()
67 .clientSelectByExampleWithoutBLOBsMethodGenerated(method, interfaze, introspectedTable)) {
68 addExtraImports(interfaze);
69 interfaze.addImportedTypes(importedTypes);
70 interfaze.addMethod(method);
71 }
72 }
73
74 public void addMapperAnnotations(Interface interfaze, Method method) {
75
76 }
77
78 public void addExtraImports(Interface interfaze) {
79
80 }
81 }