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;
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();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
protected void addInsertMethod(Interface interfaze) {
if (introspectedTable.getRules().generateInsert()) {
AbstractJavaMapperMethodGenerator methodGenerator = new AnnotatedInsertMethodGenerator();
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);
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();
initializeAndExecuteGenerator(methodGenerator, interfaze);
}
}
@Override
public List<CompilationUnit> getExtraCompilationUnits() {
SqlProviderGenerator sqlProviderGenerator = new SqlProviderGenerator();
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;
}
}