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 008import java.util.ArrayList; 009 010/** 011 * AST node for OceanBase {@code CREATE TENANT} (Phase 4 Batch 1). 012 * 013 * <p>Populated by the {@code oceanbasemysql} grammar's 014 * {@code createTenantStmt} rule. The statement class 015 * {@code TCreateTenantSqlStatement} extracts typed fields from this node 016 * during {@code doParseStatement()}. 017 * 018 * @since 4.0.1.4 019 */ 020public class TOceanbaseCreateTenantSqlNode extends TParseTreeNode { 021 022 private TObjectName tenantName; 023 private boolean ifNotExists; 024 private ArrayList<TOceanbaseTenantOption> tenantOptions 025 = new ArrayList<TOceanbaseTenantOption>(); 026 027 public TObjectName getTenantName() { 028 return tenantName; 029 } 030 031 public void setTenantName(TObjectName tenantName) { 032 this.tenantName = tenantName; 033 if (tenantName != null) { 034 tenantName.setDbObjectType(EDbObjectType.database); 035 } 036 } 037 038 public boolean isIfNotExists() { 039 return ifNotExists; 040 } 041 042 public void setIfNotExists(boolean ifNotExists) { 043 this.ifNotExists = ifNotExists; 044 } 045 046 public ArrayList<TOceanbaseTenantOption> getTenantOptions() { 047 return tenantOptions; 048 } 049 050 public void addTenantOption(TOceanbaseTenantOption option) { 051 if (option != null) { 052 this.tenantOptions.add(option); 053 } 054 } 055 056 @Override 057 public void init(Object arg1) { 058 setTenantName((TObjectName) arg1); 059 } 060 061 @Override 062 public void accept(TParseTreeVisitor v) { 063 v.preVisit(this); 064 v.postVisit(this); 065 } 066 067 @Override 068 public void acceptChildren(TParseTreeVisitor v) { 069 v.preVisit(this); 070 if (tenantName != null) { 071 tenantName.acceptChildren(v); 072 } 073 if (tenantOptions != null) { 074 for (TOceanbaseTenantOption opt : tenantOptions) { 075 if (opt != null) { 076 opt.acceptChildren(v); 077 } 078 } 079 } 080 v.postVisit(this); 081 } 082}