001package gudusoft.gsqlparser.stmt;
002
003import gudusoft.gsqlparser.EDbObjectType;
004import gudusoft.gsqlparser.EDbVendor;
005import gudusoft.gsqlparser.ESqlStatementType;
006import gudusoft.gsqlparser.TCustomSqlStatement;
007import gudusoft.gsqlparser.nodes.*;
008
009
010public class TDropDatabaseStmt extends TCustomSqlStatement {
011
012    private TObjectName databaseName;
013    private TObjectNameList databaseNameList;
014
015    public TObjectNameList getDatabaseNameList() {
016        return databaseNameList;
017    }
018
019    public TObjectName getDatabaseName() {
020        return databaseName;
021    }
022
023    public TDropDatabaseStmt(EDbVendor dbvendor) {
024        super(dbvendor);
025        sqlstatementtype = ESqlStatementType.sstdropdatabase;
026    }
027
028    public int doParseStatement(TCustomSqlStatement psql) {
029        if (rootNode == null) return -1;
030        super.doParseStatement(psql);
031        if (rootNode instanceof TDummy){
032            TDummy dummy = (TDummy)rootNode;
033            if (dummy.node1 != null){
034                databaseName = (TObjectName)dummy.node1;
035            }else if (dummy.objectNameList != null){
036                databaseNameList = dummy.objectNameList;
037                databaseName = databaseNameList.getObjectName(0);
038                databaseName.setDbObjectType(EDbObjectType.database);
039            }
040        }else{
041            TDropDatabaseSqlNode dummy = (TDropDatabaseSqlNode)rootNode;
042                databaseNameList = dummy.getDatabaseNameList();
043                databaseName = dummy.getDatabaseName();
044                if ((databaseName == null)&&(databaseNameList != null)){
045                    databaseName = databaseNameList.getObjectName(0);
046                    databaseName.setDbObjectType(EDbObjectType.database);
047                }
048        }
049
050        return 0;
051    }
052
053    public void accept(TParseTreeVisitor v){
054        v.preVisit(this);
055        v.postVisit(this);
056    }
057
058    public void acceptChildren(TParseTreeVisitor v){
059        v.preVisit(this);
060        databaseName.acceptChildren(v);
061        v.postVisit(this);
062    }
063
064    public void setDatabaseName(TObjectName databaseName) {
065        this.databaseName = databaseName;
066    }
067}