1 package uba.db.sql.interpreter.sentencevalidation;
2
3 import uba.db.UnknowTableName;
4 import uba.db.sql.language.Sentence;
5 import uba.db.sql.language.TableName;
6 import uba.db.sql.language.VisitorBehavior;
7
8 /***
9 * @version $Revision: 1.2 $
10 */
11 public class ExistantTableValidation extends SentenceValidationBehavior {
12 public ExistantTableValidation(Sentence sentence,
13 SentenceValidator validator) {
14 super(sentence, validator);
15 }
16
17 /***
18 * @see uba.db.sql.interpreter.sentencevalidation.SentenceValidationBehavior#execute()
19 */
20 public void execute() throws SentenceValidationException {
21 try {
22 sentence.accept(new TableNameValidationVisitor());
23 } catch (Exception e) {
24 throw new SentenceValidationException(e);
25 }
26 }
27
28 private class TableNameValidationVisitor extends VisitorBehavior {
29 public void visitTableName(TableName tableName) {
30 String tableNameString = tableName.toString();
31 try {
32 validator.addReferencedTableNamed(tableNameString);
33 } catch (UnknowTableName e) {
34 throw new InexistantTableNameException(tableNameString);
35 }
36 }
37 }
38 }