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.TObjectNameList;
011import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
012
013public class TDropMaterializedViewStmt extends TCustomSqlStatement {
014
015    private TObjectName viewName;
016    private TObjectNameList viewNameList;
017
018    public TObjectName getViewName() {
019        return viewName;
020    }
021
022    public TObjectNameList getViewNameList() {
023        return viewNameList;
024    }
025
026    public TDropMaterializedViewStmt(EDbVendor dbvendor) {
027        super(dbvendor);
028        sqlstatementtype = ESqlStatementType.sstoracledropmaterializedview;
029    }
030
031    public int doParseStatement(TCustomSqlStatement psql) {
032        if (rootNode == null) return -1;
033        super.doParseStatement(psql);
034
035        TDummy dummy = (TDummy) rootNode;
036        if (dummy.list1 instanceof TObjectNameList) {
037            viewNameList = (TObjectNameList) dummy.list1;
038            if (viewNameList.size() > 0) {
039                viewName = viewNameList.getObjectName(0);
040            }
041        } else if (dummy.node1 instanceof TObjectName) {
042            viewName = (TObjectName) dummy.node1;
043        }
044
045        if (viewName != null) {
046            viewName.setDbObjectType(EDbObjectType.materializedView);
047        }
048
049        return 0;
050    }
051
052    public void accept(TParseTreeVisitor v){
053        v.preVisit(this);
054        v.postVisit(this);
055    }
056
057    public void acceptChildren(TParseTreeVisitor v){
058        v.preVisit(this);
059        v.postVisit(this);
060    }
061
062    public void setViewName(TObjectName viewName) {
063        this.viewName = viewName;
064    }
065}