All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.scalaquery.ql.Parameters.scala Maven / Gradle / Ivy

package org.scalaquery.ql

import java.sql.PreparedStatement
import org.scalaquery.SQueryException
import org.scalaquery.ql.basic.{BasicProfile, BasicQueryTemplate}

final class Parameters[P, C](c: C) {
  def flatMap[F](f: C => Query[ColumnBase[F]])(implicit profile: BasicProfile): BasicQueryTemplate[P, F] =
    profile.createQueryTemplate[P, F](f(c))
  def map[F](f: C => ColumnBase[F])(implicit profile: BasicProfile): BasicQueryTemplate[P, F] =
    profile.createQueryTemplate[P, F](Query(f(c)))
  def filter(f: C => Boolean): Parameters[P, C] =
    if(!f(c)) throw new SQueryException("Match failed when unpacking Parameters")
    else this
}

object Parameters {
  def apply[P1 : TypeMapper] = new Parameters[P1, Column[P1]](new ParameterColumn(-1))

  def apply[P1 : TypeMapper, P2 : TypeMapper] =
    new Parameters[(P1,P2), Projection2[P1,P2]](new Projection2(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper] =
    new Parameters[(P1,P2,P3), Projection3[P1,P2,P3]](new Projection3(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4), Projection4[P1,P2,P3,P4]](new Projection4(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5), Projection5[P1,P2,P3,P4,P5]](new Projection5(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6), Projection6[P1,P2,P3,P4,P5,P6]](new Projection6(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7), Projection7[P1,P2,P3,P4,P5,P6,P7]](new Projection7(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8), Projection8[P1,P2,P3,P4,P5,P6,P7,P8]](new Projection8(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9), Projection9[P1,P2,P3,P4,P5,P6,P7,P8,P9]](new Projection9(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10), Projection10[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10]](new Projection10(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11), Projection11[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11]](new Projection11(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper, P12 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12), Projection12[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12]](new Projection12(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10),
    new ParameterColumn[P12](11)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper, P12 : TypeMapper, P13 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13), Projection13[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13]](new Projection13(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10),
    new ParameterColumn[P12](11),
    new ParameterColumn[P13](12)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper, P12 : TypeMapper, P13 : TypeMapper, P14 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14), Projection14[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14]](new Projection14(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10),
    new ParameterColumn[P12](11),
    new ParameterColumn[P13](12),
    new ParameterColumn[P14](13)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper, P12 : TypeMapper, P13 : TypeMapper, P14 : TypeMapper, P15 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15), Projection15[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15]](new Projection15(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10),
    new ParameterColumn[P12](11),
    new ParameterColumn[P13](12),
    new ParameterColumn[P14](13),
    new ParameterColumn[P15](14)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper, P12 : TypeMapper, P13 : TypeMapper, P14 : TypeMapper, P15 : TypeMapper, P16 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16), Projection16[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16]](new Projection16(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10),
    new ParameterColumn[P12](11),
    new ParameterColumn[P13](12),
    new ParameterColumn[P14](13),
    new ParameterColumn[P15](14),
    new ParameterColumn[P16](15)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper, P12 : TypeMapper, P13 : TypeMapper, P14 : TypeMapper, P15 : TypeMapper, P16 : TypeMapper, P17 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17), Projection17[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17]](new Projection17(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10),
    new ParameterColumn[P12](11),
    new ParameterColumn[P13](12),
    new ParameterColumn[P14](13),
    new ParameterColumn[P15](14),
    new ParameterColumn[P16](15),
    new ParameterColumn[P17](16)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper, P12 : TypeMapper, P13 : TypeMapper, P14 : TypeMapper, P15 : TypeMapper, P16 : TypeMapper, P17 : TypeMapper, P18 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18), Projection18[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18]](new Projection18(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10),
    new ParameterColumn[P12](11),
    new ParameterColumn[P13](12),
    new ParameterColumn[P14](13),
    new ParameterColumn[P15](14),
    new ParameterColumn[P16](15),
    new ParameterColumn[P17](16),
    new ParameterColumn[P18](17)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper, P12 : TypeMapper, P13 : TypeMapper, P14 : TypeMapper, P15 : TypeMapper, P16 : TypeMapper, P17 : TypeMapper, P18 : TypeMapper, P19 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19), Projection19[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19]](new Projection19(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10),
    new ParameterColumn[P12](11),
    new ParameterColumn[P13](12),
    new ParameterColumn[P14](13),
    new ParameterColumn[P15](14),
    new ParameterColumn[P16](15),
    new ParameterColumn[P17](16),
    new ParameterColumn[P18](17),
    new ParameterColumn[P19](18)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper, P12 : TypeMapper, P13 : TypeMapper, P14 : TypeMapper, P15 : TypeMapper, P16 : TypeMapper, P17 : TypeMapper, P18 : TypeMapper, P19 : TypeMapper, P20 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20), Projection20[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20]](new Projection20(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10),
    new ParameterColumn[P12](11),
    new ParameterColumn[P13](12),
    new ParameterColumn[P14](13),
    new ParameterColumn[P15](14),
    new ParameterColumn[P16](15),
    new ParameterColumn[P17](16),
    new ParameterColumn[P18](17),
    new ParameterColumn[P19](18),
    new ParameterColumn[P20](19)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper, P12 : TypeMapper, P13 : TypeMapper, P14 : TypeMapper, P15 : TypeMapper, P16 : TypeMapper, P17 : TypeMapper, P18 : TypeMapper, P19 : TypeMapper, P20 : TypeMapper, P21 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21), Projection21[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21]](new Projection21(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10),
    new ParameterColumn[P12](11),
    new ParameterColumn[P13](12),
    new ParameterColumn[P14](13),
    new ParameterColumn[P15](14),
    new ParameterColumn[P16](15),
    new ParameterColumn[P17](16),
    new ParameterColumn[P18](17),
    new ParameterColumn[P19](18),
    new ParameterColumn[P20](19),
    new ParameterColumn[P21](20)
  ))

  def apply[P1 : TypeMapper, P2 : TypeMapper, P3 : TypeMapper, P4 : TypeMapper, P5 : TypeMapper, P6 : TypeMapper, P7 : TypeMapper, P8 : TypeMapper, P9 : TypeMapper, P10 : TypeMapper, P11 : TypeMapper, P12 : TypeMapper, P13 : TypeMapper, P14 : TypeMapper, P15 : TypeMapper, P16 : TypeMapper, P17 : TypeMapper, P18 : TypeMapper, P19 : TypeMapper, P20 : TypeMapper, P21 : TypeMapper, P22 : TypeMapper] =
    new Parameters[(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22), Projection22[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22]](new Projection22(
    new ParameterColumn[P1](0),
    new ParameterColumn[P2](1),
    new ParameterColumn[P3](2),
    new ParameterColumn[P4](3),
    new ParameterColumn[P5](4),
    new ParameterColumn[P6](5),
    new ParameterColumn[P7](6),
    new ParameterColumn[P8](7),
    new ParameterColumn[P9](8),
    new ParameterColumn[P10](9),
    new ParameterColumn[P11](10),
    new ParameterColumn[P12](11),
    new ParameterColumn[P13](12),
    new ParameterColumn[P14](13),
    new ParameterColumn[P15](14),
    new ParameterColumn[P16](15),
    new ParameterColumn[P17](16),
    new ParameterColumn[P18](17),
    new ParameterColumn[P19](18),
    new ParameterColumn[P20](19),
    new ParameterColumn[P21](20),
    new ParameterColumn[P22](21)
  ))
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy