import javax.sql.DataSource; import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.generator.ColumnMeta; import com.jfinal.plugin.activerecord.generator.TableMeta;
public class MyDataDictionaryGenerator extends com.jfinal.plugin.activerecord.generator.DataDictionaryGenerator {
public DataDictionaryGenerator(DataSource dataSource, String dataDictionaryOutputDir) { super(dataSource, dataDictionaryOutputDir); }
@Override protected String genSeparateLine(TableMeta tm) { return ""; }
protected void generateTable(TableMeta tableMeta, StringBuilder ret) { ret.append("Table: ").append(tableMeta.name); if (StrKit.notBlank(tableMeta.remarks)) { ret.append("(").append(clearBlank(tableMeta.remarks)).append(")"); } ret.append("\n"); String sparateLine = genSeparateLine(tableMeta); ret.append(sparateLine); genTableHead(tableMeta, ret); ret.append(sparateLine); for (ColumnMeta columnMeta : tableMeta.columnMetas) { genColumn(tableMeta, columnMeta, ret); } ret.append(sparateLine); ret.append("\n"); }
@Override protected void genTableHead(TableMeta tm, StringBuilder ret) { ret.append('\n').append('|'); genCell(tm.colNameMaxLen, " ", "Field", " ", "|", ret); genCell(tm.colTypeMaxLen, " ", "Type", " ", "|", ret); genCell("Null".length(), " ", "Null", " ","|", ret); genCell("Key".length(), " ", "Key", " ","|", ret); genCell(tm.colDefaultValueMaxLen, " ", "Default", " ", "|", ret); genCell("Remarks".length(), " ", "Remarks", " ", "|", ret); ret.append('\n').append('|'); genCell(tm.colNameMaxLen, " ", "-", "-", "|", ret); ret.replace(ret.length() - 2, ret.length() - 1, " "); genCell(tm.colTypeMaxLen, " ", "-", "-", "|", ret); ret.replace(ret.length() - 2, ret.length() - 1, " "); genCell("Null".length(), " ", "-", "-","|", ret); ret.replace(ret.length() - 2, ret.length() - 1, " "); genCell("Key".length(), " ", "-", "-","|", ret); ret.replace(ret.length() - 2, ret.length() - 1, " "); genCell(tm.colDefaultValueMaxLen, " ", "-", "-", "|", ret); ret.replace(ret.length() - 2, ret.length() - 1, " "); genCell("Remarks".length(), " ", "-", "-", "|", ret); ret.replace(ret.length() - 2, ret.length() - 1, " "); ret.append('\n'); }
@Override protected void genColumn(TableMeta tableMeta, ColumnMeta columnMeta, StringBuilder ret) { ret.append('|'); genCell(tableMeta.colNameMaxLen, " ", columnMeta.name, " ", "|", ret); genCell(tableMeta.colTypeMaxLen, " ", columnMeta.type, " ", "|", ret); genCell("Null".length(), " ", columnMeta.isNullable, " ", "|", ret); genCell("Key".length(), " ", columnMeta.isPrimaryKey, " ", "|", ret); genCell(tableMeta.colDefaultValueMaxLen, " ", columnMeta.defaultValue, " ", "|", ret); genCell("Remarks".length(), " ", clearBlank(columnMeta.remarks), " ", "|", ret); ret.append("\n"); }
private String clearBlank(String str) { return str.replaceAll("[ |\t|\n]+", ""); } }
|