Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2011 Objectos, Fábrica de Software LTDA.
   *
   * Licensed under the Apache License, Version 2.0 (the "License"); you may not
   * use this file except in compliance with the License. You may obtain a copy of
   * the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  * License for the specific language governing permissions and limitations under
  * the License.
  */
 package br.com.objectos.way.relational;
 
 import static com.google.common.collect.Lists.newArrayList;
 import static com.google.common.collect.Lists.newArrayListWithCapacity;
 
 import java.util.List;
 
 

Author(s):
marcio.endo@objectos.com.br (Marcio Endo)
 
 public class Insert extends NativeSqlBuilder<Insertimplements HasInsertMethods<Insert> {
 
   final String table;
 
 
 
   Insert(String table) {
     this. = table;
   }
 
   private Insert() {
      = null;
   }
 
   public static Insert get() {
     return new Insert();
   }
 
   public static Insert into(String table) {
     return new Insert(table);
   }
 
   @Override
   public List<ParamValue<?>> getParams() {
     Builder<ParamValue<?>> list = ImmutableList.<ParamValue<?>> builder();
     for (InsertValue insertValue : ) {
       list.add(insertValue.paramValue());
     }
     return list.build();
   }
 
   @Override
   public List<StringgetParts() {
     String part = toString();
     return ImmutableList.of(part);
   }
 
   public SqlDump toSqlDump() {
     return SqlDump.newSqlDump();
   }
 
   public SqlDump toSqlDump(PrimaryKey pk) {
     boolean contained = false;
     for (InsertValue insertValue : ) {
       if (insertValue.isColumnNameEqual(pk.columnName())) {
         contained = true;
         break;
       }
     }
     return contained ? toSqlDump() : SqlDump.newSqlDump(pk);
   }
 
   @Override
   public String toString() {
     int insertValueListSize = .size();
 
     List<StringcolumnNameList = newArrayListWithCapacity(insertValueListSize);
     for (InsertValue insertValue : ) {
       columnNameList.add(insertValue.toEscapedColumnName());
     }
     String columns = Joiner.on(",").join(columnNameList);
 
     Object[] argArr = new Object[insertValueListSize];
    Arrays.fill(argArr"?");
    String args = Joiner.on(",").join(argArr);
    return String.format("insert into %s (%s) values (%s)"columnsargs);
  }
  public String toUpdate(PrimaryKey primaryKey) {
    int insertValueListSize = .size();
    List<StringcolumnNameList = newArrayListWithCapacity(insertValueListSize);
    for (InsertValue insertValue : ) {
      columnNameList.add(insertValue.toUpdate());
    }
    String columns = Joiner.on(",").join(columnNameList);
    String keyColumn = primaryKey.columnName();
    Object val = primaryKey.value();
    addValue(keyColumn, ParamValue.valueOf(next(), val));
    return String.format("update %s set %s where `%s`=?"columnsprimaryKey.columnName());
  }
  public Insert onGeneratedKey(GeneratedKeyCallback callback) {
     = callback;
    return this;
  }
  public void prepare(Stmt stmt) {
    for (InsertValue insertValue : ) {
      insertValue.set(stmt);
    }
  }
  public Insert value(String colNameBigDecimal value) {
    return addValue(colNamenew ParamBigDecimal(next(), value));
  }
  public Insert value(String colNameBoolean value) {
    return addValue(colNamenew ParamBoolean(next(), value));
  }
  public Insert value(String colNamejava.util.Date value) {
    return addValue(colNamenew ParamDate(next(), value));
  }
  public Insert value(String colNameDateTime value) {
    return addValue(colNamenew ParamDateTime(next(), value));
  }
  public Insert value(String colNameDouble value) {
    return addValue(colNamenew ParamDouble(next(), value));
  }
  public Insert value(String colNameFloat value) {
    return addValue(colNamenew ParamFloat(next(), value));
  }
  public Insert value(String colNameInteger value) {
    return addValue(colNamenew ParamInt(next(), value));
  }
  public Insert value(String colNameLocalDate value) {
    return addValue(colNamenew ParamLocalDate(next(), value));
  }
  public Insert value(String colNameLong value) {
    return addValue(colNamenew ParamLong(next(), value));
  }
  public Insert value(String colNameString value) {
    return addValue(colNamenew ParamString(next(), value));
  }
  public Insert value(String colNameLazyParam<?> lazyParam) {
    return addValue(colNamenew ParamLazy(next(), lazyParam));
  }
    return ;
  }
  Insert getSelf() {
    return this;
  }
  private int next() {
    return .size() + 1;
  }
  private Insert addValue(String colNameParamValue<?> val) {
    InsertValue insertValue = InsertValue.newInserValue(colNameval);
    .add(insertValue);
    return this;
  }
New to GrepCode? Check out our FAQ X