TurtleDB
A mini distributed database system
|
00001 /*------------------------------------------------------------------------- 00002 Simple distributed database engine 00003 Copyright (C) 2012 Sylvain Hallé 00004 00005 This program is free software: you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation, either version 3 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 -------------------------------------------------------------------------*/ 00018 package ca.uqac.dim.turtledb; 00019 00020 import java.util.*; 00021 00022 public class TableLinkVisitor extends EmptyQueryVisitor 00023 { 00024 protected Map<String,Relation> m_tables; 00025 00026 public TableLinkVisitor(VariableTable table) 00027 { 00028 m_tables = new HashMap<String,Relation>(); 00029 m_tables.put(table.getName(), table); 00030 } 00031 00032 public TableLinkVisitor(Map<String,Relation> tables) 00033 { 00034 m_tables = tables; 00035 } 00036 00037 public void visit(VariableTable t) //throws EmptyQueryVisitor.VisitorException 00038 { 00039 String table_name = t.getName(); 00040 Relation r = m_tables.get(table_name); 00041 /*if (r == null) 00042 throw new EmptyQueryVisitor.VisitorException("Table " + table_name + " cannot be found");*/ 00043 if (r != null) 00044 t.setRelation(r); 00045 } 00046 }