
com.kangyonggan.app.plugin.LombokPlugin Maven / Gradle / Ivy
package com.kangyonggan.app.plugin;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.TopLevelClass;
import java.util.List;
/**
* 在mbg逆向生成的时候使用此插件,生成的model没有getter和setter,而是使用Lombok的@Data注解。
*
* @author kangyonggan
* @since 5/4/18
*/
public class LombokPlugin extends PluginAdapter {
private FullyQualifiedJavaType dataAnnotation = new FullyQualifiedJavaType("lombok.Data");
@Override
public boolean validate(List warnings) {
return true;
}
@Override
public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
this.addDataAnnotation(topLevelClass);
return true;
}
@Override
public boolean modelPrimaryKeyClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
this.addDataAnnotation(topLevelClass);
return true;
}
@Override
public boolean modelRecordWithBLOBsClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
this.addDataAnnotation(topLevelClass);
return true;
}
@Override
public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
return false;
}
@Override
public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
return false;
}
protected void addDataAnnotation(TopLevelClass topLevelClass) {
topLevelClass.addImportedType(this.dataAnnotation);
topLevelClass.addAnnotation("@Data");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy