001package gudusoft.gsqlparser.nodes.mssql; 002 003import gudusoft.gsqlparser.nodes.TDummy; 004import gudusoft.gsqlparser.nodes.TDummyList; 005import gudusoft.gsqlparser.nodes.TParseTreeNode; 006import gudusoft.gsqlparser.nodes.TObjectName; 007import gudusoft.gsqlparser.nodes.TConstant; 008 009import java.util.ArrayList; 010import java.util.List; 011 012 013public class TMssqlBulkInsertSqlNode extends TParseTreeNode { 014 private TObjectName tableName = null; 015 private TConstant datafile = null; 016 private final List<TMssqlBulkInsertOption> options = new ArrayList<TMssqlBulkInsertOption>(); 017 018 public TConstant getDatafile() { 019 return datafile; 020 } 021 022 public TObjectName getTableName() { 023 return tableName; 024 } 025 026 /** The {@code WITH (...)} options in the order written; empty without a WITH clause. */ 027 public List<TMssqlBulkInsertOption> getOptions() { 028 return options; 029 } 030 031 /** 032 * Called by the grammar with the parsed {@code WITH (...)} list: each item names its option token in 033 * {@code st1}, its value token (when written as {@code NAME = value}) in {@code st2}, and spans the option. 034 */ 035 public void setBulkInsertOptions(TDummyList optionList) { 036 options.clear(); 037 for (int i = 0; optionList != null && i < optionList.size(); i++) { 038 TDummy item = optionList.getDummyItem(i); 039 if (item == null || item.st1 == null) { 040 continue; 041 } 042 options.add(new TMssqlBulkInsertOption(item.st1, item.st2, item.getEndToken())); 043 } 044 } 045 046 public void init(Object arg1,Object arg2){ 047 this.tableName = (TObjectName)arg1; 048 tableName.setObjectType(TObjectName.ttobjTable); 049 this.datafile = (TConstant)arg2; 050 } 051}