Commit c4b27695 authored by hewei's avatar hewei

优化注释生成工具实现逻辑,实现用户定制输出不影响

parent 4aef3233
......@@ -106,7 +106,6 @@ public class ExampleEnhancedPlugin extends BasePlugin {
// 添加接口CriteriaAdd
InnerInterface criteriaAddInterface = new InnerInterface("ICriteriaAdd");
criteriaAddInterface.setVisibility(JavaVisibility.PUBLIC);
commentGenerator.addInterfaceComment(criteriaAddInterface, introspectedTable);
logger.debug("itfsw(Example增强插件):" + topLevelClass.getType().getShortName() + "." + innerClass.getType().getShortName() + "增加接口ICriteriaAdd");
// ICriteriaAdd增加接口add
......@@ -121,6 +120,8 @@ public class ExampleEnhancedPlugin extends BasePlugin {
logger.debug("itfsw(Example增强插件):" + topLevelClass.getType().getShortName() + "." + innerClass.getType().getShortName() + "." + criteriaAddInterface.getType().getShortName() + "增加方法add");
InnerClass innerClassWrapper = new InnerInterfaceWrapperToInnerClass(criteriaAddInterface);
// 添加注释
commentGenerator.addClassComment(innerClassWrapper, introspectedTable);
innerClass.addInnerClass(innerClassWrapper);
// 添加andIf方法
......
......@@ -16,8 +16,10 @@
package com.itfsw.mybatis.generator.plugins.utils;
import com.itfsw.mybatis.generator.plugins.utils.enhanced.IWCommentGenerator;
import com.itfsw.mybatis.generator.plugins.utils.enhanced.DefaultCommentGenerator;
import org.mybatis.generator.api.CommentGenerator;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.config.Context;
import org.mybatis.generator.internal.util.StringUtility;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -34,7 +36,27 @@ import java.util.List;
*/
public class BasePlugin extends PluginAdapter {
protected static final Logger logger = LoggerFactory.getLogger(BasePlugin.class); // 日志
protected IWCommentGenerator commentGenerator = new IWCommentGenerator(); // 注释工具
protected CommentGenerator commentGenerator; // 注释工具
/**
* Set the context under which this plugin is running.
*
* @param context
* the new context
*/
@Override
public void setContext(Context context) {
super.setContext(context);
// 配置插件使用的模板引擎
if (context.getCommentGenerator() instanceof org.mybatis.generator.internal.DefaultCommentGenerator){
// 使用默认模板引擎
commentGenerator = new DefaultCommentGenerator();
} else {
// 用户自定义
commentGenerator = context.getCommentGenerator();
}
}
/**
* {@inheritDoc}
......
......@@ -35,7 +35,7 @@ import java.util.Properties;
* @time:2017/4/28 15:11
* ---------------------------------------------------------------------------
*/
public class IWCommentGenerator implements CommentGenerator {
public class DefaultCommentGenerator implements CommentGenerator {
/* (non-Javadoc)
* @see org.mybatis.generator.api.CommentGenerator#addJavaFileComment(org.mybatis.generator.api.dom.java.CompilationUnit)
*/
......@@ -97,6 +97,23 @@ public class IWCommentGenerator implements CommentGenerator {
* @see org.mybatis.generator.api.CommentGenerator#addClassComment(org.mybatis.generator.api.dom.java.InnerClass, org.mybatis.generator.api.IntrospectedTable)
*/
public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) {
if (innerClass instanceof InnerInterfaceWrapperToInnerClass){
InnerInterfaceWrapperToInnerClass innerInterfaceWrapperToInnerClass = (InnerInterfaceWrapperToInnerClass) innerClass;
InnerInterface innerInterface = innerInterfaceWrapperToInnerClass.getInnerInterface();
StringBuilder sb = new StringBuilder();
innerInterface.addJavaDocLine("/**");
innerInterface.addJavaDocLine(" * This interface was generated by MyBatis Generator.");
sb.append(" * This interface corresponds to the database table ");
sb.append(introspectedTable.getFullyQualifiedTable());
innerInterface.addJavaDocLine(sb.toString());
addJavadocTag(innerInterface, false);
innerInterface.addJavaDocLine(" */");
} else {
StringBuilder sb = new StringBuilder();
innerClass.addJavaDocLine("/**");
......@@ -111,25 +128,6 @@ public class IWCommentGenerator implements CommentGenerator {
innerClass.addJavaDocLine(" */");
}
/**
* inner inter face 注释
*
* @param innerInterface
* @param introspectedTable
*/
public void addInterfaceComment(Interface innerInterface, IntrospectedTable introspectedTable) {
StringBuilder sb = new StringBuilder();
innerInterface.addJavaDocLine("/**");
innerInterface.addJavaDocLine(" * This interface was generated by MyBatis Generator.");
sb.append(" * This interface corresponds to the database table ");
sb.append(introspectedTable.getFullyQualifiedTable());
innerInterface.addJavaDocLine(sb.toString());
addJavadocTag(innerInterface, false);
innerInterface.addJavaDocLine(" */");
}
/* (non-Javadoc)
......
......@@ -56,4 +56,22 @@ public class InnerInterfaceWrapperToInnerClass extends InnerClass{
public String getFormattedContent(int indentLevel, CompilationUnit compilationUnit) {
return this.innerInterface.getFormattedContent(indentLevel, compilationUnit);
}
/**
* Getter method for property <tt>innerInterface</tt>.
* @return property value of innerInterface
* @author hewei
*/
public InnerInterface getInnerInterface() {
return innerInterface;
}
/**
* Setter method for property <tt>innerInterface</tt>.
* @param innerInterface value to be assigned to property innerInterface
* @author hewei
*/
public void setInnerInterface(InnerInterface innerInterface) {
this.innerInterface = innerInterface;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment