View Javadoc

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  }