diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/ExampleEnhancedPlugin.java b/src/main/java/com/itfsw/mybatis/generator/plugins/ExampleEnhancedPlugin.java index 80643c6..dfc88c1 100644 --- a/src/main/java/com/itfsw/mybatis/generator/plugins/ExampleEnhancedPlugin.java +++ b/src/main/java/com/itfsw/mybatis/generator/plugins/ExampleEnhancedPlugin.java @@ -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方法 diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/BasePlugin.java b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/BasePlugin.java index ad1efad..2efe648 100644 --- a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/BasePlugin.java +++ b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/BasePlugin.java @@ -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} diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/enhanced/IWCommentGenerator.java b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/enhanced/DefaultCommentGenerator.java similarity index 89% rename from src/main/java/com/itfsw/mybatis/generator/plugins/utils/enhanced/IWCommentGenerator.java rename to src/main/java/com/itfsw/mybatis/generator/plugins/utils/enhanced/DefaultCommentGenerator.java index 4e1a40b..9c826be 100644 --- a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/enhanced/IWCommentGenerator.java +++ b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/enhanced/DefaultCommentGenerator.java @@ -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,39 +97,37 @@ 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) { - StringBuilder sb = new StringBuilder(); + if (innerClass instanceof InnerInterfaceWrapperToInnerClass){ + InnerInterfaceWrapperToInnerClass innerInterfaceWrapperToInnerClass = (InnerInterfaceWrapperToInnerClass) innerClass; + InnerInterface innerInterface = innerInterfaceWrapperToInnerClass.getInnerInterface(); - innerClass.addJavaDocLine("/**"); - innerClass.addJavaDocLine(" * This class was generated by MyBatis Generator."); + StringBuilder sb = new StringBuilder(); - sb.append(" * This class corresponds to the database table "); - sb.append(introspectedTable.getFullyQualifiedTable()); - innerClass.addJavaDocLine(sb.toString()); + innerInterface.addJavaDocLine("/**"); + innerInterface.addJavaDocLine(" * This interface was generated by MyBatis Generator."); - addJavadocTag(innerClass, false); + sb.append(" * This interface corresponds to the database table "); + sb.append(introspectedTable.getFullyQualifiedTable()); + innerInterface.addJavaDocLine(sb.toString()); - innerClass.addJavaDocLine(" */"); - } + addJavadocTag(innerInterface, false); - /** - * inner inter face 注释 - * - * @param innerInterface - * @param introspectedTable - */ - public void addInterfaceComment(Interface innerInterface, IntrospectedTable introspectedTable) { - StringBuilder sb = new StringBuilder(); + innerInterface.addJavaDocLine(" */"); + } else { + StringBuilder sb = new StringBuilder(); - innerInterface.addJavaDocLine("/**"); - innerInterface.addJavaDocLine(" * This interface was generated by MyBatis Generator."); + innerClass.addJavaDocLine("/**"); + innerClass.addJavaDocLine(" * This class was generated by MyBatis Generator."); - sb.append(" * This interface corresponds to the database table "); - sb.append(introspectedTable.getFullyQualifiedTable()); - innerInterface.addJavaDocLine(sb.toString()); + sb.append(" * This class corresponds to the database table "); + sb.append(introspectedTable.getFullyQualifiedTable()); + innerClass.addJavaDocLine(sb.toString()); - addJavadocTag(innerInterface, false); + addJavadocTag(innerClass, false); + + innerClass.addJavaDocLine(" */"); + } - innerInterface.addJavaDocLine(" */"); } /* (non-Javadoc) diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/enhanced/InnerInterfaceWrapperToInnerClass.java b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/enhanced/InnerInterfaceWrapperToInnerClass.java index 326d289..91a4652 100644 --- a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/enhanced/InnerInterfaceWrapperToInnerClass.java +++ b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/enhanced/InnerInterfaceWrapperToInnerClass.java @@ -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 innerInterface. + * @return property value of innerInterface + * @author hewei + */ + public InnerInterface getInnerInterface() { + return innerInterface; + } + + /** + * Setter method for property innerInterface. + * @param innerInterface value to be assigned to property innerInterface + * @author hewei + */ + public void setInnerInterface(InnerInterface innerInterface) { + this.innerInterface = innerInterface; + } }