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 RESOURCE POOL} (Phase 4 Batch 2). 012 * 013 * <p>Grammar shape: 014 * {@code CREATE RESOURCE POOL name [UNIT = 'u', UNIT_NUM = N, 015 * ZONE_LIST = ('z1', 'z2', ...)]}. 016 * 017 * @since 4.0.1.4 018 */ 019public class TOceanbaseCreateResourcePoolSqlNode extends TParseTreeNode { 020 021 private TObjectName poolName; 022 private ArrayList<TOceanbaseResourceOption> resourceOptions 023 = new ArrayList<TOceanbaseResourceOption>(); 024 025 public TObjectName getPoolName() { 026 return poolName; 027 } 028 029 public void setPoolName(TObjectName poolName) { 030 this.poolName = poolName; 031 if (poolName != null) { 032 poolName.setDbObjectType(EDbObjectType.database); 033 } 034 } 035 036 public ArrayList<TOceanbaseResourceOption> getResourceOptions() { 037 return resourceOptions; 038 } 039 040 public void addResourceOption(TOceanbaseResourceOption option) { 041 if (option != null) { 042 this.resourceOptions.add(option); 043 } 044 } 045 046 @Override 047 public void init(Object arg1) { 048 setPoolName((TObjectName) arg1); 049 } 050 051 @Override 052 public void accept(TParseTreeVisitor v) { 053 v.preVisit(this); 054 v.postVisit(this); 055 } 056 057 @Override 058 public void acceptChildren(TParseTreeVisitor v) { 059 v.preVisit(this); 060 if (poolName != null) { 061 poolName.acceptChildren(v); 062 } 063 if (resourceOptions != null) { 064 for (TOceanbaseResourceOption opt : resourceOptions) { 065 if (opt != null) { 066 opt.acceptChildren(v); 067 } 068 } 069 } 070 v.postVisit(this); 071 } 072}