package com.g414.haildb;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class TableDef {
private final String name;
private final Map<String, ColumnDef> columnDefs;
private final Map<String, IndexDef> indexDefs;
private final List<ColumnDef> colDefs;
private final IndexDef primaryIndex;
public TableDef(String name, Map<String, ColumnDef> columnDefs,
Map<String, IndexDef> indexDefs, IndexDef primaryIndex) {
this.name = name;
Map<String, ColumnDef> newCols = new LinkedHashMap<String, ColumnDef>();
newCols.putAll(columnDefs);
this.columnDefs = Collections.unmodifiableMap(newCols);
List<ColumnDef> newColDefs = new ArrayList<ColumnDef>();
newColDefs.addAll(newCols.values());
this.colDefs = Collections.unmodifiableList(newColDefs);
Map<String, IndexDef> newIdxs = new LinkedHashMap<String, IndexDef>();
newIdxs.putAll(indexDefs);
this.indexDefs = Collections.unmodifiableMap(newIdxs);
this.primaryIndex = primaryIndex;
}
public String getName() {
return name;
}
public Map<String, ColumnDef> getColumnDefs() {
return columnDefs;
}
public List<ColumnDef> getColDefs() {
return colDefs;
}
public Map<String, IndexDef> getIndexDefs() {
return indexDefs;
}
public IndexDef getPrimaryIndex() {
return primaryIndex;
}
public IndexDef getIndexDef(String index) {
return indexDefs.get(index);
}
}