View Javadoc
1   /*
2    *    Copyright 2006-2023 the original author or authors.
3    *
4    *    Licensed under the Apache License, Version 2.0 (the "License");
5    *    you may not use this file except in compliance with the License.
6    *    You may obtain a copy of the License at
7    *
8    *       https://www.apache.org/licenses/LICENSE-2.0
9    *
10   *    Unless required by applicable law or agreed to in writing, software
11   *    distributed under the License is distributed on an "AS IS" BASIS,
12   *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *    See the License for the specific language governing permissions and
14   *    limitations under the License.
15   */
16  package org.mybatis.generator.codegen.mybatis3.javamapper;
17  
18  import java.util.List;
19  
20  import org.mybatis.generator.api.dom.java.CompilationUnit;
21  import org.mybatis.generator.api.dom.java.Interface;
22  import org.mybatis.generator.codegen.AbstractXmlGenerator;
23  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.AbstractJavaMapperMethodGenerator;
24  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedCountByExampleMethodGenerator;
25  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedDeleteByExampleMethodGenerator;
26  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedDeleteByPrimaryKeyMethodGenerator;
27  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedInsertMethodGenerator;
28  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedInsertSelectiveMethodGenerator;
29  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedSelectByExampleWithBLOBsMethodGenerator;
30  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedSelectByExampleWithoutBLOBsMethodGenerator;
31  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedSelectByPrimaryKeyMethodGenerator;
32  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByExampleSelectiveMethodGenerator;
33  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByExampleWithBLOBsMethodGenerator;
34  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByExampleWithoutBLOBsMethodGenerator;
35  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByPrimaryKeySelectiveMethodGenerator;
36  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByPrimaryKeyWithBLOBsMethodGenerator;
37  import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByPrimaryKeyWithoutBLOBsMethodGenerator;
38  
39  public class AnnotatedClientGenerator extends JavaMapperGenerator {
40  
41      public AnnotatedClientGenerator(String project) {
42          super(project, false);
43      }
44  
45      @Override
46      protected void addCountByExampleMethod(Interface interfaze) {
47          if (introspectedTable.getRules().generateCountByExample()) {
48              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedCountByExampleMethodGenerator();
49              initializeAndExecuteGenerator(methodGenerator, interfaze);
50          }
51      }
52  
53      @Override
54      protected void addDeleteByExampleMethod(Interface interfaze) {
55          if (introspectedTable.getRules().generateDeleteByExample()) {
56              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedDeleteByExampleMethodGenerator();
57              initializeAndExecuteGenerator(methodGenerator, interfaze);
58          }
59      }
60  
61      @Override
62      protected void addDeleteByPrimaryKeyMethod(Interface interfaze) {
63          if (introspectedTable.getRules().generateDeleteByPrimaryKey()) {
64              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedDeleteByPrimaryKeyMethodGenerator(false);
65              initializeAndExecuteGenerator(methodGenerator, interfaze);
66          }
67      }
68  
69      @Override
70      protected void addInsertMethod(Interface interfaze) {
71          if (introspectedTable.getRules().generateInsert()) {
72              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedInsertMethodGenerator(false);
73              initializeAndExecuteGenerator(methodGenerator, interfaze);
74          }
75      }
76  
77      @Override
78      protected void addInsertSelectiveMethod(Interface interfaze) {
79          if (introspectedTable.getRules().generateInsertSelective()) {
80              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedInsertSelectiveMethodGenerator();
81              initializeAndExecuteGenerator(methodGenerator, interfaze);
82          }
83      }
84  
85      @Override
86      protected void addSelectByExampleWithBLOBsMethod(Interface interfaze) {
87          if (introspectedTable.getRules().generateSelectByExampleWithBLOBs()) {
88              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedSelectByExampleWithBLOBsMethodGenerator();
89              initializeAndExecuteGenerator(methodGenerator, interfaze);
90          }
91      }
92  
93      @Override
94      protected void addSelectByExampleWithoutBLOBsMethod(Interface interfaze) {
95          if (introspectedTable.getRules().generateSelectByExampleWithoutBLOBs()) {
96              AbstractJavaMapperMethodGenerator methodGenerator =
97                      new AnnotatedSelectByExampleWithoutBLOBsMethodGenerator();
98              initializeAndExecuteGenerator(methodGenerator, interfaze);
99          }
100     }
101 
102     @Override
103     protected void addSelectByPrimaryKeyMethod(Interface interfaze) {
104         if (introspectedTable.getRules().generateSelectByPrimaryKey()) {
105             AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedSelectByPrimaryKeyMethodGenerator(false,
106                     false);
107             initializeAndExecuteGenerator(methodGenerator, interfaze);
108         }
109     }
110 
111     @Override
112     protected void addUpdateByExampleSelectiveMethod(Interface interfaze) {
113         if (introspectedTable.getRules().generateUpdateByExampleSelective()) {
114             AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedUpdateByExampleSelectiveMethodGenerator();
115             initializeAndExecuteGenerator(methodGenerator, interfaze);
116         }
117     }
118 
119     @Override
120     protected void addUpdateByExampleWithBLOBsMethod(Interface interfaze) {
121         if (introspectedTable.getRules().generateUpdateByExampleWithBLOBs()) {
122             AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedUpdateByExampleWithBLOBsMethodGenerator();
123             initializeAndExecuteGenerator(methodGenerator, interfaze);
124         }
125     }
126 
127     @Override
128     protected void addUpdateByExampleWithoutBLOBsMethod(Interface interfaze) {
129         if (introspectedTable.getRules().generateUpdateByExampleWithoutBLOBs()) {
130             AbstractJavaMapperMethodGenerator methodGenerator =
131                     new AnnotatedUpdateByExampleWithoutBLOBsMethodGenerator();
132             initializeAndExecuteGenerator(methodGenerator, interfaze);
133         }
134     }
135 
136     @Override
137     protected void addUpdateByPrimaryKeySelectiveMethod(Interface interfaze) {
138         if (introspectedTable.getRules().generateUpdateByPrimaryKeySelective()) {
139             AbstractJavaMapperMethodGenerator methodGenerator =
140                     new AnnotatedUpdateByPrimaryKeySelectiveMethodGenerator();
141             initializeAndExecuteGenerator(methodGenerator, interfaze);
142         }
143     }
144 
145     @Override
146     protected void addUpdateByPrimaryKeyWithBLOBsMethod(Interface interfaze) {
147         if (introspectedTable.getRules().generateUpdateByPrimaryKeyWithBLOBs()) {
148             AbstractJavaMapperMethodGenerator methodGenerator =
149                     new AnnotatedUpdateByPrimaryKeyWithBLOBsMethodGenerator();
150             initializeAndExecuteGenerator(methodGenerator, interfaze);
151         }
152     }
153 
154     @Override
155     protected void addUpdateByPrimaryKeyWithoutBLOBsMethod(Interface interfaze) {
156         if (introspectedTable.getRules().generateUpdateByPrimaryKeyWithoutBLOBs()) {
157             AbstractJavaMapperMethodGenerator methodGenerator =
158                     new AnnotatedUpdateByPrimaryKeyWithoutBLOBsMethodGenerator(false);
159             initializeAndExecuteGenerator(methodGenerator, interfaze);
160         }
161     }
162 
163     @Override
164     public List<CompilationUnit> getExtraCompilationUnits() {
165         SqlProviderGenerator sqlProviderGenerator = new SqlProviderGenerator(getProject());
166         sqlProviderGenerator.setContext(context);
167         sqlProviderGenerator.setIntrospectedTable(introspectedTable);
168         sqlProviderGenerator.setProgressCallback(progressCallback);
169         sqlProviderGenerator.setWarnings(warnings);
170         return sqlProviderGenerator.getCompilationUnits();
171     }
172 
173     @Override
174     public AbstractXmlGenerator getMatchedXMLGenerator() {
175         // No XML required by the annotated client
176         return null;
177     }
178 }