package uk.ac.imperial.lsds.streamsql.visitors;
import net.sf.jsqlparser.statement.Statement;
import net.sf.jsqlparser.statement.StatementVisitor;
import net.sf.jsqlparser.statement.Statements;
import net.sf.jsqlparser.statement.alter.Alter;
import net.sf.jsqlparser.statement.create.index.CreateIndex;
import net.sf.jsqlparser.statement.create.table.CreateTable;
import net.sf.jsqlparser.statement.create.view.CreateView;
import net.sf.jsqlparser.statement.delete.Delete;
import net.sf.jsqlparser.statement.drop.Drop;
import net.sf.jsqlparser.statement.insert.Insert;
import net.sf.jsqlparser.statement.replace.Replace;
import net.sf.jsqlparser.statement.select.Select;
import net.sf.jsqlparser.statement.truncate.Truncate;
import net.sf.jsqlparser.statement.update.Update;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SeepSQLVisitor implements StatementVisitor {
private static Logger LOG = LoggerFactory.getLogger(SeepSQLVisitor.class);
@Override
public void visit(Select select) {
LOG.debug("Visit SELECT statement: {}", select);
SeepSelectVisitor selectVisitor = new SeepSelectVisitor();
selectVisitor.visit(select);
selectVisitor.map();
selectVisitor.generate();
}
@Override
public void visit(Statements stmts) {
LOG.debug("Visit multiple SELECT statements");
for (Statement statement : stmts.getStatements())
statement.accept(this);
}
@Override
public void visit(Delete delete) {
LOG.error("DELETE statement is not supported");
}
@Override
public void visit(Update update) {
LOG.error("UPDATE statement is not supported");
}
@Override
public void visit(Insert insert) {
LOG.error("INSERT statement is not supported");
}
@Override
public void visit(Replace replace) {
LOG.error("REPLACE statement is not supported");
}
@Override
public void visit(Drop drop) {
LOG.error("DROP statement is not supported");
}
@Override
public void visit(Truncate truncate) {
LOG.error("TRUNCATE statement is not supported");
}
@Override
public void visit(CreateIndex createIndex) {
LOG.error("CREATEINDEX statement is not supported");
}
@Override
public void visit(CreateTable createTable) {
LOG.error("CREATETABLE statement is not supported");
}
@Override
public void visit(CreateView createView) {
LOG.error("CREATEVIEW statement is not supported");
}
@Override
public void visit(Alter alter) {
LOG.error("ALTER statement is not supported");
}
}