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}