
org.peekmoon.database.walker.schema.Table Maven / Gradle / Ivy
package org.peekmoon.database.walker.schema;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Table {
private final Schema schema;
private final String name;
private final List columnNames;
private PrimaryKey key;
public Table(Schema schema, String tableName) {
this.schema = schema;
this.name = tableName;
this.columnNames = new ArrayList<>();
}
public void addColumn(String columnName) {
columnNames.add(columnName);
}
public void addPrimaryKey(String primaryKeyName) {
this.key = new PrimaryKey(primaryKeyName, this);
}
public void addPkColumn(String columnName) {
key.addColumn(columnName);
}
public boolean havePrimaryKey(String pkName) {
return (key!=null && key.isName(pkName));
}
public PrimaryKey getPrimaryKey() {
return key;
}
public boolean is(String tableName) {
return name.equals(tableName);
}
public String getName() {
return name;
}
public List getColumnNames() {
return Collections.unmodifiableList(columnNames);
}
public Integer getColumnIdx(String columnName) {
int idx = columnNames.indexOf(columnName);
if (idx == -1) throw new IllegalStateException("Unable to find column " + columnName + " for table " + name);
return idx;
}
public String getColumnName(int columnIdx) {
return columnNames.get(columnIdx);
}
public String getSqlSelect() {
return "SELECT ROWID, " + String.join(",", columnNames) + " FROM " + name + " ";
}
public String getSqlInsert() {
StringBuilder sb = new StringBuilder(" INSERT INTO ").append(name).append("( ");
sb.append(String.join(",", columnNames));
sb.append(") VALUES ( ");
for (int i=0; i
© 2015 - 2025 Weber Informatics LLC | Privacy Policy