content: /* ================================================================
   * JSQLParser : java based sql parser 
   * ================================================================
   *
   * Project Info:  http://jsqlparser.sourceforge.net
   * Project Lead:  Leonardo Francalanci (leoonardoo@yahoo.it);
   *
   * (C) Copyright 2004, by Leonardo Francalanci
   *
   * This library is free software; you can redistribute it and/or modify it under the terms
   * of the GNU Lesser General Public License as published by the Free Software Foundation;
   * either version 2.1 of the License, or (at your option) any later version.
   *
   * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
   * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   * See the GNU Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public License along with this
   * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
   * Boston, MA 02111-1307, USA.
   */
  
  package net.sf.jsqlparser.statement.insert;
  
  import java.util.List;
  
  import net.sf.jsqlparser.expression.operators.relational.ItemsList;
  import net.sf.jsqlparser.schema.Table;
  import net.sf.jsqlparser.statement.Statement;
  import net.sf.jsqlparser.statement.StatementVisitor;
  import net.sf.jsqlparser.statement.select.PlainSelect;
  
  
  /**
   * The insert statement.
   * Every column name in <code>columnNames</code> matches an item in <code>itemsList</code>
   */
  public class Insert implements Statement {
  	private Table table;
  	private List columns;
  	private ItemsList itemsList;
  	private boolean useValues = true;
  	
  	public void accept(StatementVisitor statementVisitor) {
  		statementVisitor.visit(this);
  	}
  
  	public Table getTable() {
  		return table;
  	}
  
  	public void setTable(Table name) {
  		table = name;
  	}
  
  	/**
  	 * Get the columns (found in "INSERT INTO (col1,col2..) [...]" )
  	 * @return a list of {@link net.sf.jsqlparser.schema.Column}
  	 */
  	public List getColumns() {
  		return columns;
  	}
  
  	public void setColumns(List list) {
  		columns = list;
  	}
  
  	/**
  	 * Get the values (as VALUES (...) or SELECT) 
  	 * @return the values of the insert
  	 */
  	public ItemsList getItemsList() {
  		return itemsList;
  	}
  
  	public void setItemsList(ItemsList list) {
  		itemsList = list;
  	}
  
      public boolean isUseValues() {
          return useValues;
      }
      
      public void setUseValues(boolean useValues) {
          this.useValues = useValues;
      }
      
  	public String toString() {
  		String sql = "";
  
  		sql = "INSERT INTO ";
  		sql += table+" ";
  		sql += ((columns!=null)?PlainSelect.getStringList(columns, true, true)+" ":"");
  		
  		if(useValues) {
  			sql += "VALUES "+itemsList+"";
  		} else {
  			sql += ""+itemsList+"";
  		}
  		
  		return sql;
  	}
  
  }
  