Commit c4b27695 authored by hewei's avatar hewei

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

parent 4aef3233
...@@ -106,7 +106,6 @@ public class ExampleEnhancedPlugin extends BasePlugin { ...@@ -106,7 +106,6 @@ public class ExampleEnhancedPlugin extends BasePlugin {
// 添加接口CriteriaAdd // 添加接口CriteriaAdd
InnerInterface criteriaAddInterface = new InnerInterface("ICriteriaAdd"); InnerInterface criteriaAddInterface = new InnerInterface("ICriteriaAdd");
criteriaAddInterface.setVisibility(JavaVisibility.PUBLIC); criteriaAddInterface.setVisibility(JavaVisibility.PUBLIC);
commentGenerator.addInterfaceComment(criteriaAddInterface, introspectedTable);
logger.debug("itfsw(Example增强插件):" + topLevelClass.getType().getShortName() + "." + innerClass.getType().getShortName() + "增加接口ICriteriaAdd"); logger.debug("itfsw(Example增强插件):" + topLevelClass.getType().getShortName() + "." + innerClass.getType().getShortName() + "增加接口ICriteriaAdd");
// ICriteriaAdd增加接口add // ICriteriaAdd增加接口add
...@@ -121,6 +120,8 @@ public class ExampleEnhancedPlugin extends BasePlugin { ...@@ -121,6 +120,8 @@ public class ExampleEnhancedPlugin extends BasePlugin {
logger.debug("itfsw(Example增强插件):" + topLevelClass.getType().getShortName() + "." + innerClass.getType().getShortName() + "." + criteriaAddInterface.getType().getShortName() + "增加方法add"); logger.debug("itfsw(Example增强插件):" + topLevelClass.getType().getShortName() + "." + innerClass.getType().getShortName() + "." + criteriaAddInterface.getType().getShortName() + "增加方法add");
InnerClass innerClassWrapper = new InnerInterfaceWrapperToInnerClass(criteriaAddInterface); InnerClass innerClassWrapper = new InnerInterfaceWrapperToInnerClass(criteriaAddInterface);
// 添加注释
commentGenerator.addClassComment(innerClassWrapper, introspectedTable);
innerClass.addInnerClass(innerClassWrapper); innerClass.addInnerClass(innerClassWrapper);
// 添加andIf方法 // 添加andIf方法
......
...@@ -16,8 +16,10 @@ ...@@ -16,8 +16,10 @@
package com.itfsw.mybatis.generator.plugins.utils; 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.api.PluginAdapter;
import org.mybatis.generator.config.Context;
import org.mybatis.generator.internal.util.StringUtility; import org.mybatis.generator.internal.util.StringUtility;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -34,7 +36,27 @@ import java.util.List; ...@@ -34,7 +36,27 @@ import java.util.List;
*/ */
public class BasePlugin extends PluginAdapter { public class BasePlugin extends PluginAdapter {
protected static final Logger logger = LoggerFactory.getLogger(BasePlugin.class); // 日志 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} * {@inheritDoc}
......
...@@ -35,7 +35,7 @@ import java.util.Properties; ...@@ -35,7 +35,7 @@ import java.util.Properties;
* @time:2017/4/28 15:11 * @time:2017/4/28 15:11
* --------------------------------------------------------------------------- * ---------------------------------------------------------------------------
*/ */
public class IWCommentGenerator implements CommentGenerator { public class DefaultCommentGenerator implements CommentGenerator {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.mybatis.generator.api.CommentGenerator#addJavaFileComment(org.mybatis.generator.api.dom.java.CompilationUnit) * @see org.mybatis.generator.api.CommentGenerator#addJavaFileComment(org.mybatis.generator.api.dom.java.CompilationUnit)
*/ */
...@@ -97,6 +97,23 @@ public class IWCommentGenerator implements CommentGenerator { ...@@ -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) * @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) { 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(); StringBuilder sb = new StringBuilder();
innerClass.addJavaDocLine("/**"); innerClass.addJavaDocLine("/**");
...@@ -111,25 +128,6 @@ public class IWCommentGenerator implements CommentGenerator { ...@@ -111,25 +128,6 @@ public class IWCommentGenerator implements CommentGenerator {
innerClass.addJavaDocLine(" */"); 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) /* (non-Javadoc)
......
...@@ -56,4 +56,22 @@ public class InnerInterfaceWrapperToInnerClass extends InnerClass{ ...@@ -56,4 +56,22 @@ public class InnerInterfaceWrapperToInnerClass extends InnerClass{
public String getFormattedContent(int indentLevel, CompilationUnit compilationUnit) { public String getFormattedContent(int indentLevel, CompilationUnit compilationUnit) {
return this.innerInterface.getFormattedContent(indentLevel, 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