/**
* Copyright 2006-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.mybatis.generator.codegen.mybatis3.javamapper;
import java.util.List;
import org.mybatis.generator.api.dom.java.CompilationUnit;
import org.mybatis.generator.api.dom.java.Interface;
import org.mybatis.generator.codegen.AbstractXmlGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.AbstractJavaMapperMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedCountByExampleMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedDeleteByExampleMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedDeleteByPrimaryKeyMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedInsertMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedInsertSelectiveMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedSelectByExampleWithBLOBsMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedSelectByExampleWithoutBLOBsMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedSelectByPrimaryKeyMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByExampleSelectiveMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByExampleWithBLOBsMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByExampleWithoutBLOBsMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByPrimaryKeySelectiveMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByPrimaryKeyWithBLOBsMethodGenerator;
import org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated.AnnotatedUpdateByPrimaryKeyWithoutBLOBsMethodGenerator;
import org.mybatis.generator.config.PropertyRegistry;
import org.mybatis.generator.internal.util.StringUtility;
public class AnnotatedClientGenerator extends JavaMapperGenerator {
public AnnotatedClientGenerator() {
super(false);
}
@Override
protected void addCountByExampleMethod(Interface interfaze) {
if (introspectedTable.getRules().generateCountByExample()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedCountByExampleMethodGenerator();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addDeleteByExampleMethod(Interface interfaze) {
if (introspectedTable.getRules().generateDeleteByExample()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedDeleteByExampleMethodGenerator();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addDeleteByPrimaryKeyMethod(Interface interfaze) {
if (introspectedTable.getRules().generateDeleteByPrimaryKey()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedDeleteByPrimaryKeyMethodGenerator(false);
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addInsertMethod(Interface interfaze) {
if (introspectedTable.getRules().generateInsert()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedInsertMethodGenerator(false);
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addInsertSelectiveMethod(Interface interfaze) {
if (introspectedTable.getRules().generateInsertSelective()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedInsertSelectiveMethodGenerator();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addSelectByExampleWithBLOBsMethod(Interface interfaze) {
if (introspectedTable.getRules().generateSelectByExampleWithBLOBs()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedSelectByExampleWithBLOBsMethodGenerator();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addSelectByExampleWithoutBLOBsMethod(Interface interfaze) {
if (introspectedTable.getRules().generateSelectByExampleWithoutBLOBs()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedSelectByExampleWithoutBLOBsMethodGenerator();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addSelectByPrimaryKeyMethod(Interface interfaze) {
if (introspectedTable.getRules().generateSelectByPrimaryKey()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedSelectByPrimaryKeyMethodGenerator(false, false);
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addUpdateByExampleSelectiveMethod(Interface interfaze) {
if (introspectedTable.getRules().generateUpdateByExampleSelective()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedUpdateByExampleSelectiveMethodGenerator();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addUpdateByExampleWithBLOBsMethod(Interface interfaze) {
if (introspectedTable.getRules().generateUpdateByExampleWithBLOBs()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedUpdateByExampleWithBLOBsMethodGenerator();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addUpdateByExampleWithoutBLOBsMethod(Interface interfaze) {
if (introspectedTable.getRules().generateUpdateByExampleWithoutBLOBs()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedUpdateByExampleWithoutBLOBsMethodGenerator();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addUpdateByPrimaryKeySelectiveMethod(Interface interfaze) {
if (introspectedTable.getRules().generateUpdateByPrimaryKeySelective()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedUpdateByPrimaryKeySelectiveMethodGenerator();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addUpdateByPrimaryKeyWithBLOBsMethod(Interface interfaze) {
if (introspectedTable.getRules().generateUpdateByPrimaryKeyWithBLOBs()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedUpdateByPrimaryKeyWithBLOBsMethodGenerator();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addUpdateByPrimaryKeyWithoutBLOBsMethod(Interface interfaze) {
if (introspectedTable.getRules()
.generateUpdateByPrimaryKeyWithoutBLOBs()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedUpdateByPrimaryKeyWithoutBLOBsMethodGenerator(false);
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
public List<CompilationUnit> getExtraCompilationUnits() {
boolean useLegacyBuilder = false;
String prop = context.getJavaClientGeneratorConfiguration().getProperty(PropertyRegistry.CLIENT_USE_LEGACY_BUILDER);
if (StringUtility.stringHasValue(prop)) {
useLegacyBuilder = Boolean.valueOf(prop);
}
SqlProviderGenerator sqlProviderGenerator = new SqlProviderGenerator(useLegacyBuilder);
sqlProviderGenerator.setContext(context);
sqlProviderGenerator.setIntrospectedTable(introspectedTable);
sqlProviderGenerator.setProgressCallback(progressCallback);
sqlProviderGenerator.setWarnings(warnings);
return sqlProviderGenerator.getCompilationUnits();
}
@Override
public AbstractXmlGenerator getMatchedXMLGenerator() {
// No XML required by the annotated client
return null;
}
}