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}