com.zcj.util.db.meta.TableInfo Maven / Gradle / Ivy
package com.zcj.util.db.meta;
import com.zcj.util.db.meta.constant.TableType;
import java.util.*;
/**
* 表(视图)信息
*
* @author [email protected]
* @since 2019/12/3
*/
public class TableInfo {
private String tableName; // 表(视图)名
private String comment; // 注释
private TableType tableType; // 类型
private Map columns = new LinkedHashMap<>(); // 表的字段信息
private List indexs = new ArrayList<>(); // 表的索引信息
private List pkNames = new ArrayList<>(); // 表的主键信息
public TableInfo(String tableName) {
this.setTableName(tableName);
}
public static TableInfo create(String tableName) {
return new TableInfo(tableName);
}
public void addIndex(IndexInfo indexInfo) {
if (indexs == null) {
indexs = new ArrayList<>();
}
indexs.add(indexInfo);
}
public TableInfo addPkName(String pkName) {
this.pkNames.add(pkName);
return this;
}
public TableInfo addColumn(ColumnInfo columnInfo) {
this.columns.put(columnInfo.getName(), columnInfo);
return this;
}
public ColumnInfo getColumn(String columnName) {
return this.columns.get(columnName);
}
public Collection getColumns() {
return this.columns.values();
}
public TableInfo setTableType(TableType tableType) {
this.tableType = tableType;
return this;
}
public TableInfo setTableName(String tableName) {
this.tableName = tableName;
return this;
}
public TableInfo setComment(String comment) {
this.comment = comment;
return this;
}
public TableInfo setPkNames(List pkNames) {
this.pkNames = pkNames;
return this;
}
public String getTableName() {
return tableName;
}
public TableType getTableType() {
return tableType;
}
public String getComment() {
return comment;
}
public List getPkNames() {
return pkNames;
}
public List getIndexs() {
return indexs;
}
}