package com.tc.his.provider.dao.plugin;
import static org.mybatis.generator.internal.util.StringUtility.stringHasValue;
import static org.mybatis.generator.internal.util.messages.Messages.getString;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
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.TopLevelClass;
public class RenameXmlFilePlugin extends PluginAdapter {
@Override
public boolean modelExampleClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
return super.modelExampleClassGenerated(topLevelClass, introspectedTable);
}
private String searchString;
private String replaceString;
private Pattern pattern;
/**
*
*/
public RenameXmlFilePlugin() {
}
public boolean validate(List<String> warnings) {
searchString = properties.getProperty("searchString"); //$NON-NLS-1$
replaceString = properties.getProperty("replaceString"); //$NON-NLS-1$
boolean valid = stringHasValue(searchString) && stringHasValue(replaceString);
if (valid) {
pattern = Pattern.compile(searchString);
} else {
if (!stringHasValue(searchString)) {
warnings.add(getString("ValidationError.18", //$NON-NLS-1$
"RenameXmlFilePlugin", //$NON-NLS-1$
"searchString")); //$NON-NLS-1$
}
if (!stringHasValue(replaceString)) {
warnings.add(getString("ValidationError.18", //$NON-NLS-1$
"RenameXmlFilePlugin", //$NON-NLS-1$
"replaceString")); //$NON-NLS-1$
}
}
return valid;
}
@Override
public void initialized(IntrospectedTable introspectedTable) {
FullyQualifiedJavaType type = new FullyQualifiedJavaType(introspectedTable.getBaseRecordType());
String oldType = introspectedTable.getMyBatis3XmlMapperFileName();
Matcher matcher = pattern.matcher(oldType);
oldType = matcher.replaceAll(replaceString);
introspectedTable.setMyBatis3XmlMapperFileName(oldType);
}
}