001package gudusoft.gsqlparser.nodes.oceanbase; 002 003import gudusoft.gsqlparser.EDbObjectType; 004import gudusoft.gsqlparser.nodes.TObjectName; 005import gudusoft.gsqlparser.nodes.TParseTreeNode; 006import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 007 008/** 009 * AST node for OceanBase {@code DROP TENANT} (Phase 4 Batch 1). 010 * 011 * <p>Supports the two trailing modifiers documented in the OceanBase 4.x 012 * admin guide: {@code FORCE} (skip the recycle bin / immediate drop) and 013 * {@code PURGE} (drop the tenant and purge associated resources). 014 * 015 * @since 4.0.1.4 016 */ 017public class TOceanbaseDropTenantSqlNode extends TParseTreeNode { 018 019 private TObjectName tenantName; 020 private boolean force; 021 private boolean purge; 022 023 public TObjectName getTenantName() { 024 return tenantName; 025 } 026 027 public void setTenantName(TObjectName tenantName) { 028 this.tenantName = tenantName; 029 if (tenantName != null) { 030 tenantName.setDbObjectType(EDbObjectType.database); 031 } 032 } 033 034 public boolean isForce() { 035 return force; 036 } 037 038 public void setForce(boolean force) { 039 this.force = force; 040 } 041 042 public boolean isPurge() { 043 return purge; 044 } 045 046 public void setPurge(boolean purge) { 047 this.purge = purge; 048 } 049 050 @Override 051 public void init(Object arg1) { 052 setTenantName((TObjectName) arg1); 053 } 054 055 @Override 056 public void accept(TParseTreeVisitor v) { 057 v.preVisit(this); 058 v.postVisit(this); 059 } 060 061 @Override 062 public void acceptChildren(TParseTreeVisitor v) { 063 v.preVisit(this); 064 if (tenantName != null) { 065 tenantName.acceptChildren(v); 066 } 067 v.postVisit(this); 068 } 069}