![JAR search and dependency download from the Maven repository](/logo.png)
com.jn.sqlhelper.common.ddl.model.Table Maven / Gradle / Ivy
package com.jn.sqlhelper.common.ddl.model;
import com.jn.easyjson.core.JSONBuilderProvider;
import com.jn.langx.annotation.NonNull;
import com.jn.langx.annotation.Nullable;
import com.jn.langx.util.Emptys;
import com.jn.langx.util.collection.Collects;
import com.jn.langx.util.function.Predicate;
import com.jn.sqlhelper.common.annotation.Column;
import com.jn.sqlhelper.common.ddl.model.internal.TableType;
import com.jn.sqlhelper.common.ddl.model.internal.TableTypeConverter;
import java.util.*;
public class Table {
@Nullable
@Column({"TABLE_CAT", "TABLE_CATALOG"})
private String catalog;
@Nullable
@Column({"TABLE_SCHEM", "TABLE_SCHEMA"})
private String schema;
@NonNull
@Column("TABLE_NAME")
private String name;
@NonNull
@Column(value = "TABLE_TYPE", converter = TableTypeConverter.class)
private TableType tableType;
@Nullable
private String remarks;
@Column("TYPE_CAT")
private String typeCatalog;
@Column("TYPE_SCHEM")
private String typeSchema;
private String typeName;
@Column("SELF_REFERENCING_COL_NAME")
private String selfReferencingColumnName;
private String refGeneration;
@Nullable
private String sql;
private final Map indexMap = new TreeMap(new Comparator() {
@Override
public int compare(String key1, String key2) {
return key1.compareToIgnoreCase(key2);
}
});
private final Set columns = new TreeSet(new Comparator() {
@Override
public int compare(com.jn.sqlhelper.common.ddl.model.Column o1, com.jn.sqlhelper.common.ddl.model.Column o2) {
return o1.getOrdinalPosition() - o2.getOrdinalPosition();
}
});
private final Set pkColumns = new TreeSet(new Comparator() {
@Override
public int compare(PrimaryKeyColumn o1, PrimaryKeyColumn o2) {
return o1.getKeySeq() - o2.getKeySeq();
}
});
private final Map fkColumnMap = new HashMap();
public String getCatalog() {
return catalog;
}
public void setCatalog(String catalog) {
this.catalog = catalog;
}
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public TableType getTableType() {
return tableType;
}
public void setTableType(TableType tableType) {
this.tableType = tableType;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public String getTypeCatalog() {
return typeCatalog;
}
public void setTypeCatalog(String typeCatalog) {
this.typeCatalog = typeCatalog;
}
public String getTypeSchema() {
return typeSchema;
}
public void setTypeSchema(String typeSchema) {
this.typeSchema = typeSchema;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public String getSelfReferencingColumnName() {
return selfReferencingColumnName;
}
public void setSelfReferencingColumnName(String selfReferencingColumnName) {
this.selfReferencingColumnName = selfReferencingColumnName;
}
public String getRefGeneration() {
return refGeneration;
}
public void setRefGeneration(String refGeneration) {
this.refGeneration = refGeneration;
}
public String getSql() {
return sql;
}
public void setSql(String sql) {
this.sql = sql;
}
@Override
public String toString() {
return JSONBuilderProvider.create().prettyFormat(true).build().toJson(this);
}
public Map getIndexMap() {
return indexMap;
}
public Set getColumns() {
return columns;
}
public void addIndex(Index index) {
indexMap.put(index.getName(), index);
}
public Index getIndex(String indexName) {
return indexMap.get(indexName);
}
public void addColumn(com.jn.sqlhelper.common.ddl.model.Column column) {
columns.add(column);
}
public com.jn.sqlhelper.common.ddl.model.Column getColumn(final String columnName) {
return Collects.findFirst(columns, new Predicate() {
@Override
public boolean test(com.jn.sqlhelper.common.ddl.model.Column column) {
return column.getName().equals(columnName);
}
});
}
public Set getPkColumns() {
return pkColumns;
}
public boolean hasPrimaryKeys(){
return Emptys.isNotEmpty(pkColumns);
}
public void addPKColumn(PrimaryKeyColumn primaryKeyColumn) {
pkColumns.add(primaryKeyColumn);
}
public Map getFkColumnMap() {
return fkColumnMap;
}
public void addFKColumn(ImportedColumn fkColumn) {
fkColumnMap.put(fkColumn.getFkColumnName(), fkColumn);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy