001package gudusoft.gsqlparser.stmt.hive;
002/*
003 * Date: 13-7-29
004 */
005
006import gudusoft.gsqlparser.EDbVendor;
007import gudusoft.gsqlparser.ESqlStatementType;
008import gudusoft.gsqlparser.TCustomSqlStatement;
009import gudusoft.gsqlparser.TSourceToken;
010import gudusoft.gsqlparser.nodes.TObjectName;
011import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
012import gudusoft.gsqlparser.nodes.hive.THiveDropDBSqlNode;
013
014public class THiveDropDatabase extends TCustomSqlStatement {
015
016    private TObjectName dbName;
017    private TSourceToken databaseToken;
018    private boolean ifExists;
019    private TSourceToken restrictCascadeToken;
020
021
022    public THiveDropDatabase(EDbVendor dbvendor) {
023        super(dbvendor);
024        sqlstatementtype = ESqlStatementType.ssthiveDropDatabase;
025    }
026
027    public TSourceToken getDatabaseToken() {
028        return databaseToken;
029    }
030
031    public TObjectName getDbName() {
032        return dbName;
033    }
034
035    public boolean isIfExists() {
036        return ifExists;
037    }
038
039    public TSourceToken getRestrictCascadeToken() {
040        return restrictCascadeToken;
041    }
042
043    public int doParseStatement(TCustomSqlStatement psql) {
044        if (rootNode == null) return -1;
045        super.doParseStatement(psql);
046        THiveDropDBSqlNode node = (THiveDropDBSqlNode)rootNode;
047        dbName = node.getDbName();
048        ifExists = node.isIfExists();
049        databaseToken = node.getDatabaseToken();
050        restrictCascadeToken = node.getRestrictCascadeToken();
051
052        return 0;
053    }
054
055    public void accept(TParseTreeVisitor v){
056        v.preVisit(this);
057        v.postVisit(this);
058    }
059
060    public void acceptChildren(TParseTreeVisitor v){
061        v.preVisit(this);
062        v.postVisit(this);
063    }
064
065    public void setDbName(TObjectName dbName) {
066        this.dbName = dbName;
067    }
068
069    public void setIfExists(boolean ifExists) {
070        this.ifExists = ifExists;
071    }
072}