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 public class SelectByExampleWithBLOBsMethodGenerator extends AbstractJavaMapperMethodGenerator {
28
29 public SelectByExampleWithBLOBsMethodGenerator() {
30 super();
31 }
32
33 @Override
34 public void addInterfaceElements(Interface interfaze) {
35 Set<FullyQualifiedJavaType> importedTypes = new TreeSet<>();
36 FullyQualifiedJavaType type = new FullyQualifiedJavaType(introspectedTable.getExampleType());
37 importedTypes.add(type);
38 importedTypes.add(FullyQualifiedJavaType.getNewListInstance());
39
40 Method method = new Method(introspectedTable.getSelectByExampleWithBLOBsStatementId());
41 method.setVisibility(JavaVisibility.PUBLIC);
42 method.setAbstract(true);
43
44 FullyQualifiedJavaType returnType = FullyQualifiedJavaType.getNewListInstance();
45 FullyQualifiedJavaType listType;
46 if (introspectedTable.getRules().generateRecordWithBLOBsClass()) {
47 listType = new FullyQualifiedJavaType(introspectedTable.getRecordWithBLOBsType());
48 } else {
49
50 listType = new FullyQualifiedJavaType(introspectedTable.getBaseRecordType());
51 }
52
53 importedTypes.add(listType);
54 returnType.addTypeArgument(listType);
55 method.setReturnType(returnType);
56 method.addParameter(new Parameter(type, "example"));
57
58 context.getCommentGenerator().addGeneralMethodComment(method, introspectedTable);
59
60 addMapperAnnotations(interfaze, method);
61
62 if (context.getPlugins()
63 .clientSelectByExampleWithBLOBsMethodGenerated(method, interfaze, introspectedTable)) {
64 addExtraImports(interfaze);
65 interfaze.addImportedTypes(importedTypes);
66 interfaze.addMethod(method);
67 }
68 }
69
70 public void addMapperAnnotations(Interface interfaze, Method method) {
71
72 }
73
74 public void addExtraImports(Interface interfaze) {
75
76 }
77 }