package org.xenei.jdbc4sparql.impl.virtual; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.xenei.jdbc4sparql.iface.Catalog; import org.xenei.jdbc4sparql.iface.NameFilter; import org.xenei.jdbc4sparql.iface.Schema; import org.xenei.jdbc4sparql.iface.Table; import org.xenei.jdbc4sparql.iface.name.SchemaName; public class VirtualSchema implements Schema { public static final String NAME = ""; private final Catalog catalog; private final Map<String, Table> tables; private final SchemaName schemaName; public VirtualSchema(final Catalog catalog) { this(catalog, NAME); } public VirtualSchema(final Catalog catalog, final String name) { this.catalog = catalog; this.schemaName = catalog.getName().getSchemaName(name); tables = new HashMap<String, Table>(); tables.put(VirtualTable.NAME, new VirtualTable(this)); tables.put(VirtualTable.SYSTEM_TABLE, new VirtualTable(this, VirtualTable.SYSTEM_TABLE)); } @Override public NameFilter<Table> findTables(final String tableNamePattern) { return new NameFilter<Table>(tableNamePattern, tables.values()); } @Override public Catalog getCatalog() { return catalog; } @Override public SchemaName getName() { return schemaName; } @Override public Table getTable(final String tableName) { return tables.get(tableName); } @Override public Set<Table> getTables() { return new HashSet<Table>(tables.values()); } }