View Javadoc
1   /**
2    *    Copyright 2006-2016 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    *       http://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  import org.mybatis.generator.config.PropertyRegistry;
39  import org.mybatis.generator.internal.util.StringUtility;
40  
41  public class AnnotatedClientGenerator extends JavaMapperGenerator {
42  
43      public AnnotatedClientGenerator() {
44          super(false);
45      }
46  
47      @Override
48      protected void addCountByExampleMethod(Interface interfaze) {
49          if (introspectedTable.getRules().generateCountByExample()) {
50              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedCountByExampleMethodGenerator();
51              initializeAndExecuteGenerator(methodGenerator, interfaze);
52          }
53      }
54  
55      @Override
56      protected void addDeleteByExampleMethod(Interface interfaze) {
57          if (introspectedTable.getRules().generateDeleteByExample()) {
58              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedDeleteByExampleMethodGenerator();
59              initializeAndExecuteGenerator(methodGenerator, interfaze);
60          }
61      }
62  
63      @Override
64      protected void addDeleteByPrimaryKeyMethod(Interface interfaze) {
65          if (introspectedTable.getRules().generateDeleteByPrimaryKey()) {
66              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedDeleteByPrimaryKeyMethodGenerator(false);
67              initializeAndExecuteGenerator(methodGenerator, interfaze);
68          }
69      }
70  
71      @Override
72      protected void addInsertMethod(Interface interfaze) {
73          if (introspectedTable.getRules().generateInsert()) {
74              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedInsertMethodGenerator(false);
75              initializeAndExecuteGenerator(methodGenerator, interfaze);
76          }
77      }
78  
79      @Override
80      protected void addInsertSelectiveMethod(Interface interfaze) {
81          if (introspectedTable.getRules().generateInsertSelective()) {
82              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedInsertSelectiveMethodGenerator();
83              initializeAndExecuteGenerator(methodGenerator, interfaze);
84          }
85      }
86  
87      @Override
88      protected void addSelectByExampleWithBLOBsMethod(Interface interfaze) {
89          if (introspectedTable.getRules().generateSelectByExampleWithBLOBs()) {
90              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedSelectByExampleWithBLOBsMethodGenerator();
91              initializeAndExecuteGenerator(methodGenerator, interfaze);
92          }
93      }
94  
95      @Override
96      protected void addSelectByExampleWithoutBLOBsMethod(Interface interfaze) {
97          if (introspectedTable.getRules().generateSelectByExampleWithoutBLOBs()) {
98              AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedSelectByExampleWithoutBLOBsMethodGenerator();
99              initializeAndExecuteGenerator(methodGenerator, interfaze);
100         }
101     }
102 
103     @Override
104     protected void addSelectByPrimaryKeyMethod(Interface interfaze) {
105         if (introspectedTable.getRules().generateSelectByPrimaryKey()) {
106             AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedSelectByPrimaryKeyMethodGenerator(false, 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 = new AnnotatedUpdateByExampleWithoutBLOBsMethodGenerator();
131             initializeAndExecuteGenerator(methodGenerator, interfaze);
132         }
133     }
134 
135     @Override
136     protected void addUpdateByPrimaryKeySelectiveMethod(Interface interfaze) {
137         if (introspectedTable.getRules().generateUpdateByPrimaryKeySelective()) {
138             AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedUpdateByPrimaryKeySelectiveMethodGenerator();
139             initializeAndExecuteGenerator(methodGenerator, interfaze);
140         }
141     }
142 
143     @Override
144     protected void addUpdateByPrimaryKeyWithBLOBsMethod(Interface interfaze) {
145         if (introspectedTable.getRules().generateUpdateByPrimaryKeyWithBLOBs()) {
146             AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedUpdateByPrimaryKeyWithBLOBsMethodGenerator();
147             initializeAndExecuteGenerator(methodGenerator, interfaze);
148         }
149     }
150 
151     @Override
152     protected void addUpdateByPrimaryKeyWithoutBLOBsMethod(Interface interfaze) {
153         if (introspectedTable.getRules()
154                 .generateUpdateByPrimaryKeyWithoutBLOBs()) {
155             AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedUpdateByPrimaryKeyWithoutBLOBsMethodGenerator(false);
156             initializeAndExecuteGenerator(methodGenerator, interfaze);
157         }
158     }
159 
160     @Override
161     public List<CompilationUnit> getExtraCompilationUnits() {
162     	boolean useLegacyBuilder = false;
163     	
164     	String prop = context.getJavaClientGeneratorConfiguration().getProperty(PropertyRegistry.CLIENT_USE_LEGACY_BUILDER);
165     	if (StringUtility.stringHasValue(prop)) {
166     		useLegacyBuilder = Boolean.valueOf(prop);
167     	}
168         SqlProviderGenerator sqlProviderGenerator = new SqlProviderGenerator(useLegacyBuilder);
169         sqlProviderGenerator.setContext(context);
170         sqlProviderGenerator.setIntrospectedTable(introspectedTable);
171         sqlProviderGenerator.setProgressCallback(progressCallback);
172         sqlProviderGenerator.setWarnings(warnings);
173         return sqlProviderGenerator.getCompilationUnits();
174     }
175 
176     @Override
177     public AbstractXmlGenerator getMatchedXMLGenerator() {
178         // No XML required by the annotated client
179         return null;
180     }
181 }