package asandatabasebrowser.model;

import java.util.ArrayList;


/**
 * スキーマ情報<<entity>>
 * カタログ情報も持つ。
 */
public class SchemaInfo {
	final String tableCatalog;	// テーブルカタログ (null の可能性がある) (JDK1.3)
	final String tableSchema;		// テーブルスキーマ
	private ArrayList tables;		// ArrayList<TableTypeInfo>
	public final VvDatabase db;
	
	SchemaInfo(VvDatabase db, String tableCatalog, String tableSchema, ArrayList tables) {
		assert db != null;
		assert tables!=null;
		this.db = db;
		this.tableCatalog = tableCatalog;
		this.tableSchema  = tableSchema;
		this.tables = tables;
	}

	public String getSchemaName() { return tableSchema; }
	public String getCatalogName() { return tableCatalog; }

	public int getCount() {
		return tables.size();
	}
	public TableTypeInfo getTableTypeInfo(int index) {
		return (TableTypeInfo) tables.get(index);
	}
	public TableTypeInfo getTableTypeInfo(String type) {
		assert type != null;
		for (int i=0; i<tables.size(); i++) {
			TableTypeInfo t = (TableTypeInfo) tables.get(i);
			if (t.type.equals(type)) {
				return t;
			}
		}
		return null;
	}

	public String toString() {
    	if (tableSchema != null) return tableSchema;
    	return tableCatalog;
//		return 
//			"tableCatalog = "+tableCatalog + "\n"+
//			"tableSchema  = "+tableSchema + "\n";
	}
}
