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