001package gudusoft.gsqlparser.nodes.oceanbase; 002 003import gudusoft.gsqlparser.nodes.TObjectName; 004import gudusoft.gsqlparser.nodes.TParseTreeNode; 005import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 006 007import java.util.ArrayList; 008 009/** 010 * A single OceanBase tablegroup option inside a {@code CREATE TABLEGROUP} 011 * or {@code ALTER TABLEGROUP SET} option list. 012 * 013 * <p>Documented option names include {@code PRIMARY_ZONE}, 014 * {@code LOCALITY}, {@code BINDING}, {@code TABLEGROUP_ID}. The grammar 015 * accepts any identifier on the left so future options work without a 016 * grammar change. 017 * 018 * @since 4.0.1.4 019 */ 020public class TOceanbaseTablegroupOption extends TParseTreeNode { 021 022 private String name; 023 private ArrayList<TObjectName> values = new ArrayList<TObjectName>(); 024 025 public TOceanbaseTablegroupOption() { 026 } 027 028 public String getName() { 029 return name; 030 } 031 032 public void setName(String name) { 033 this.name = name; 034 } 035 036 public ArrayList<TObjectName> getValues() { 037 return values; 038 } 039 040 public void addValue(TObjectName value) { 041 if (value != null) { 042 this.values.add(value); 043 } 044 } 045 046 public TObjectName getFirstValue() { 047 return values.isEmpty() ? null : values.get(0); 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 (values != null) { 060 for (TObjectName value : values) { 061 if (value != null) { 062 value.acceptChildren(v); 063 } 064 } 065 } 066 v.postVisit(this); 067 } 068}