001package gudusoft.gsqlparser.stmt.oceanbase; 002 003import gudusoft.gsqlparser.EDbVendor; 004import gudusoft.gsqlparser.ESqlStatementType; 005import gudusoft.gsqlparser.TCustomSqlStatement; 006import gudusoft.gsqlparser.nodes.TObjectName; 007import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 008import gudusoft.gsqlparser.nodes.oceanbase.TOceanbaseDropDblinkSqlNode; 009 010/** 011 * OceanBase {@code DROP DBLINK} statement (US-005 Round 3). 012 * 013 * <p>Tagged {@link ESqlStatementType#sstoceanbase_drop_dblink}. 014 * 015 * @since 4.0.1.4 016 */ 017public class TDropDblinkSqlStatement extends TCustomSqlStatement { 018 019 private TObjectName dblinkName; 020 private boolean ifExists; 021 022 public TDropDblinkSqlStatement(EDbVendor dbvendor) { 023 super(dbvendor); 024 this.sqlstatementtype = ESqlStatementType.sstoceanbase_drop_dblink; 025 } 026 027 public TObjectName getDblinkName() { 028 return dblinkName; 029 } 030 031 public boolean isIfExists() { 032 return ifExists; 033 } 034 035 @Override 036 public int doParseStatement(TCustomSqlStatement psql) { 037 if (rootNode == null) return -1; 038 super.doParseStatement(psql); 039 TOceanbaseDropDblinkSqlNode node = (TOceanbaseDropDblinkSqlNode) rootNode; 040 this.dblinkName = node.getDblinkName(); 041 this.ifExists = node.isIfExists(); 042 return 0; 043 } 044 045 @Override 046 public void accept(TParseTreeVisitor v) { 047 v.preVisit(this); 048 v.postVisit(this); 049 } 050 051 @Override 052 public void acceptChildren(TParseTreeVisitor v) { 053 v.preVisit(this); 054 v.postVisit(this); 055 } 056}