001package gudusoft.gsqlparser.stmt;
002
003
004import gudusoft.gsqlparser.EDbObjectType;
005import gudusoft.gsqlparser.EDbVendor;
006import gudusoft.gsqlparser.ESqlStatementType;
007import gudusoft.gsqlparser.TCustomSqlStatement;
008import gudusoft.gsqlparser.nodes.TDummy;
009import gudusoft.gsqlparser.nodes.TObjectName;
010import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
011
012public class TDropStmt extends TCustomSqlStatement {
013
014    private TObjectName dbObjectName;
015    private EDbObjectType dbObjectType;
016
017    public TObjectName getDbObjectName() {
018        return dbObjectName;
019    }
020
021    public EDbObjectType getDbObjectType() {
022        return dbObjectType;
023    }
024
025
026    public TDropStmt(EDbVendor dbvendor) {
027        super(dbvendor);
028        sqlstatementtype = ESqlStatementType.sstDrop;
029    }
030
031    public int doParseStatement(TCustomSqlStatement psql) {
032        if (rootNode == null) return -1;
033        super.doParseStatement(psql);
034        TDummy dummy = (TDummy)rootNode;
035        if (dummy.node1 != null) {
036            dbObjectName = (TObjectName)dummy.node1;
037        }else if (dummy.objectNameList != null) {
038            dbObjectName = (TObjectName)dummy.objectNameList.getObjectName(0);
039        }
040        dbObjectType = dummy.objectType;
041        if (dbObjectName != null){
042            dbObjectName.setDbObjectTypeDirectly(dbObjectType);
043        }
044
045
046        return 0;
047    }
048
049    public void accept(TParseTreeVisitor v){
050        v.preVisit(this);
051        v.postVisit(this);
052    }
053
054    public void acceptChildren(TParseTreeVisitor v){
055        v.preVisit(this);
056        v.postVisit(this);
057    }
058
059
060}