scalikejdbc.OneToManies13SQL.scala Maven / Gradle / Ivy
The newest version!
/*
* Copyright 2013 - 2015 scalikejdbc.org
*
* 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 scalikejdbc
import scala.collection.mutable.LinkedHashMap
import scala.collection.compat._
private[scalikejdbc] trait OneToManies13Extractor[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E <: WithExtractor, Z]
extends SQL[Z, E]
with RelationalSQLResultSetOperations[Z] {
private[scalikejdbc] def extractOne: WrappedResultSet => A
private[scalikejdbc] def extractTo1: WrappedResultSet => Option[B1]
private[scalikejdbc] def extractTo2: WrappedResultSet => Option[B2]
private[scalikejdbc] def extractTo3: WrappedResultSet => Option[B3]
private[scalikejdbc] def extractTo4: WrappedResultSet => Option[B4]
private[scalikejdbc] def extractTo5: WrappedResultSet => Option[B5]
private[scalikejdbc] def extractTo6: WrappedResultSet => Option[B6]
private[scalikejdbc] def extractTo7: WrappedResultSet => Option[B7]
private[scalikejdbc] def extractTo8: WrappedResultSet => Option[B8]
private[scalikejdbc] def extractTo9: WrappedResultSet => Option[B9]
private[scalikejdbc] def extractTo10: WrappedResultSet => Option[B10]
private[scalikejdbc] def extractTo11: WrappedResultSet => Option[B11]
private[scalikejdbc] def extractTo12: WrappedResultSet => Option[B12]
private[scalikejdbc] def extractTo13: WrappedResultSet => Option[B13]
private[scalikejdbc] def transform: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z
private[scalikejdbc] def processResultSet(result: (LinkedHashMap[A, (scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13])]),
rs: WrappedResultSet): LinkedHashMap[A, (scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13])] = {
val o = extractOne(rs)
val (to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13) = (extractTo1(rs), extractTo2(rs), extractTo3(rs), extractTo4(rs), extractTo5(rs), extractTo6(rs), extractTo7(rs), extractTo8(rs), extractTo9(rs), extractTo10(rs), extractTo11(rs), extractTo12(rs), extractTo13(rs))
if (result.contains(o)) {
(to1 orElse to2 orElse to3 orElse to4 orElse to5 orElse to6 orElse to7 orElse to8 orElse to9 orElse to10 orElse to11 orElse to12 orElse to13).map { _ =>
val (ts1, ts2, ts3, ts4, ts5, ts6, ts7, ts8, ts9, ts10, ts11, ts12, ts13) = result.apply(o)
result += (o -> ((
to1.map(t => if (ts1.contains(t)) ts1 else ts1 :+ t).getOrElse(ts1),
to2.map(t => if (ts2.contains(t)) ts2 else ts2 :+ t).getOrElse(ts2),
to3.map(t => if (ts3.contains(t)) ts3 else ts3 :+ t).getOrElse(ts3),
to4.map(t => if (ts4.contains(t)) ts4 else ts4 :+ t).getOrElse(ts4),
to5.map(t => if (ts5.contains(t)) ts5 else ts5 :+ t).getOrElse(ts5),
to6.map(t => if (ts6.contains(t)) ts6 else ts6 :+ t).getOrElse(ts6),
to7.map(t => if (ts7.contains(t)) ts7 else ts7 :+ t).getOrElse(ts7),
to8.map(t => if (ts8.contains(t)) ts8 else ts8 :+ t).getOrElse(ts8),
to9.map(t => if (ts9.contains(t)) ts9 else ts9 :+ t).getOrElse(ts9),
to10.map(t => if (ts10.contains(t)) ts10 else ts10 :+ t).getOrElse(ts10),
to11.map(t => if (ts11.contains(t)) ts11 else ts11 :+ t).getOrElse(ts11),
to12.map(t => if (ts12.contains(t)) ts12 else ts12 :+ t).getOrElse(ts12),
to13.map(t => if (ts13.contains(t)) ts13 else ts13 :+ t).getOrElse(ts13)
)))
}.getOrElse(result)
} else {
result += (
o -> ((
to1.map(t => Vector(t)).getOrElse(Vector.empty),
to2.map(t => Vector(t)).getOrElse(Vector.empty),
to3.map(t => Vector(t)).getOrElse(Vector.empty),
to4.map(t => Vector(t)).getOrElse(Vector.empty),
to5.map(t => Vector(t)).getOrElse(Vector.empty),
to6.map(t => Vector(t)).getOrElse(Vector.empty),
to7.map(t => Vector(t)).getOrElse(Vector.empty),
to8.map(t => Vector(t)).getOrElse(Vector.empty),
to9.map(t => Vector(t)).getOrElse(Vector.empty),
to10.map(t => Vector(t)).getOrElse(Vector.empty),
to11.map(t => Vector(t)).getOrElse(Vector.empty),
to12.map(t => Vector(t)).getOrElse(Vector.empty),
to13.map(t => Vector(t)).getOrElse(Vector.empty)
))
)
}
}
private[scalikejdbc] def toIterable(session: DBSession, sql: String, params: scala.collection.Seq[?], zExtractor: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z): Iterable[Z] = {
val attributesSwitcher = createDBSessionAttributesSwitcher
DBSessionWrapper(session, attributesSwitcher).foldLeft(statement, rawParameters.toSeq*)(LinkedHashMap[A, (scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13])]())(processResultSet).map {
case (one, (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13)) => zExtractor(one, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13)
}
}
}
class OneToManies13SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E <: WithExtractor, Z](
override val statement: String,
override val rawParameters: scala.collection.Seq[Any])(val one: WrappedResultSet => A)(val to1: WrappedResultSet => Option[B1], val to2: WrappedResultSet => Option[B2], val to3: WrappedResultSet => Option[B3], val to4: WrappedResultSet => Option[B4], val to5: WrappedResultSet => Option[B5], val to6: WrappedResultSet => Option[B6], val to7: WrappedResultSet => Option[B7], val to8: WrappedResultSet => Option[B8], val to9: WrappedResultSet => Option[B9], val to10: WrappedResultSet => Option[B10], val to11: WrappedResultSet => Option[B11], val to12: WrappedResultSet => Option[B12], val to13: WrappedResultSet => Option[B13])(val zExtractor: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z)
extends SQL[Z, E](statement, rawParameters)(SQL.noExtractor[Z]("one-to-many extractor(one(RS => A).toManies(RS => Option[B1]...)) is specified, use #map((A,B) =>Z) instead."))
with AllOutputDecisionsUnsupported[Z, E] {
def map(zExtractor: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z): OneToManies13SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, HasExtractor, Z] = {
val q: OneToManies13SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, HasExtractor, Z] = new OneToManies13SQL(statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13)(zExtractor)
q.queryTimeout(queryTimeout)
q.fetchSize(fetchSize)
q.tags(tags.toSeq*)
q
}
override def toIterable: OneToManies13SQLToIterable[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = {
val q: OneToManies13SQLToIterable[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] =new OneToManies13SQLToIterable[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z](statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13)(zExtractor)
q.queryTimeout(queryTimeout)
q.fetchSize(fetchSize)
q.tags(tags.toSeq*)
q
}
override def toList: OneToManies13SQLToList[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = {
val q: OneToManies13SQLToList[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = new OneToManies13SQLToList[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z](statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13)(zExtractor)
q.queryTimeout(queryTimeout)
q.fetchSize(fetchSize)
q.tags(tags.toSeq*)
q
}
override def toOption: OneToManies13SQLToOption[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = {
val q: OneToManies13SQLToOption[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = new OneToManies13SQLToOption[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z](statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13)(zExtractor)(true)
q.queryTimeout(queryTimeout)
q.fetchSize(fetchSize)
q.tags(tags.toSeq*)
q
}
override def headOption: OneToManies13SQLToOption[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = {
val q: OneToManies13SQLToOption[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = new OneToManies13SQLToOption[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z](statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13)(zExtractor)(false)
q.queryTimeout(queryTimeout)
q.fetchSize(fetchSize)
q.tags(tags.toSeq*)
q
}
override def toCollection: OneToManies13SQLToCollection[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = {
val q: OneToManies13SQLToCollection[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = new OneToManies13SQLToCollection[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z](statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13)(zExtractor)
q.queryTimeout(queryTimeout)
q.fetchSize(fetchSize)
q.tags(tags.toSeq*)
q
}
override def single: OneToManies13SQLToOption[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = toOption
override def first: OneToManies13SQLToOption[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = headOption
override def list: OneToManies13SQLToList[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = toList
override def iterable: OneToManies13SQLToIterable[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = toIterable
override def collection: OneToManies13SQLToCollection[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = toCollection
}
object OneToManies13SQL {
def unapply[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E <: WithExtractor, Z](sqlObject: OneToManies13SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z]): Some[(String, scala.collection.Seq[Any], WrappedResultSet => A, (WrappedResultSet => Option[B1], WrappedResultSet => Option[B2], WrappedResultSet => Option[B3], WrappedResultSet => Option[B4], WrappedResultSet => Option[B5], WrappedResultSet => Option[B6], WrappedResultSet => Option[B7], WrappedResultSet => Option[B8], WrappedResultSet => Option[B9], WrappedResultSet => Option[B10], WrappedResultSet => Option[B11], WrappedResultSet => Option[B12], WrappedResultSet => Option[B13]), (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z)] = {
Some((sqlObject.statement, sqlObject.rawParameters, sqlObject.one, (sqlObject.to1, sqlObject.to2, sqlObject.to3, sqlObject.to4, sqlObject.to5, sqlObject.to6, sqlObject.to7, sqlObject.to8, sqlObject.to9, sqlObject.to10, sqlObject.to11, sqlObject.to12, sqlObject.to13), sqlObject.zExtractor))
}
}
class OneToManies13SQLToList[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E <: WithExtractor, Z](
override val statement: String,
override val rawParameters: scala.collection.Seq[Any])(val one: WrappedResultSet => A)(val to1: WrappedResultSet => Option[B1], val to2: WrappedResultSet => Option[B2], val to3: WrappedResultSet => Option[B3], val to4: WrappedResultSet => Option[B4], val to5: WrappedResultSet => Option[B5], val to6: WrappedResultSet => Option[B6], val to7: WrappedResultSet => Option[B7], val to8: WrappedResultSet => Option[B8], val to9: WrappedResultSet => Option[B9], val to10: WrappedResultSet => Option[B10], val to11: WrappedResultSet => Option[B11], val to12: WrappedResultSet => Option[B12], val to13: WrappedResultSet => Option[B13])(val zExtractor: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z)
extends SQL[Z, E](statement, rawParameters)(SQL.noExtractor[Z]("one-to-many extractor(one(RS => A).toManies(RS => Option[B1])) is specified, use #map((A,B) =>Z) instead."))
with SQLToList[Z, E]
with AllOutputDecisionsUnsupported[Z, E]
with OneToManies13Extractor[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] {
import GeneralizedTypeConstraintsForWithExtractor._
override def apply()(implicit session: DBSession, context: ConnectionPoolContext = NoConnectionPoolContext, hasExtractor: ThisSQL =:= SQLWithExtractor): List[Z] = {
executeQuery[List](session, (session: DBSession) => toIterable(session, statement, rawParameters, zExtractor).toList)
}
private[scalikejdbc] def extractOne: WrappedResultSet => A = one
private[scalikejdbc] def extractTo1: WrappedResultSet => Option[B1] = to1
private[scalikejdbc] def extractTo2: WrappedResultSet => Option[B2] = to2
private[scalikejdbc] def extractTo3: WrappedResultSet => Option[B3] = to3
private[scalikejdbc] def extractTo4: WrappedResultSet => Option[B4] = to4
private[scalikejdbc] def extractTo5: WrappedResultSet => Option[B5] = to5
private[scalikejdbc] def extractTo6: WrappedResultSet => Option[B6] = to6
private[scalikejdbc] def extractTo7: WrappedResultSet => Option[B7] = to7
private[scalikejdbc] def extractTo8: WrappedResultSet => Option[B8] = to8
private[scalikejdbc] def extractTo9: WrappedResultSet => Option[B9] = to9
private[scalikejdbc] def extractTo10: WrappedResultSet => Option[B10] = to10
private[scalikejdbc] def extractTo11: WrappedResultSet => Option[B11] = to11
private[scalikejdbc] def extractTo12: WrappedResultSet => Option[B12] = to12
private[scalikejdbc] def extractTo13: WrappedResultSet => Option[B13] = to13
private[scalikejdbc] def transform: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z = zExtractor
}
object OneToManies13SQLToList {
def unapply[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E <: WithExtractor, Z](sqlObject: OneToManies13SQLToList[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z]): Some[(String, scala.collection.Seq[Any], WrappedResultSet => A, (WrappedResultSet => Option[B1], WrappedResultSet => Option[B2], WrappedResultSet => Option[B3], WrappedResultSet => Option[B4], WrappedResultSet => Option[B5], WrappedResultSet => Option[B6], WrappedResultSet => Option[B7], WrappedResultSet => Option[B8], WrappedResultSet => Option[B9], WrappedResultSet => Option[B10], WrappedResultSet => Option[B11], WrappedResultSet => Option[B12], WrappedResultSet => Option[B13]), (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z)] = {
Some((sqlObject.statement, sqlObject.rawParameters, sqlObject.one, (sqlObject.to1, sqlObject.to2, sqlObject.to3, sqlObject.to4, sqlObject.to5, sqlObject.to6, sqlObject.to7, sqlObject.to8, sqlObject.to9, sqlObject.to10, sqlObject.to11, sqlObject.to12, sqlObject.to13), sqlObject.zExtractor))
}
}
final class OneToManies13SQLToCollection[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E <: WithExtractor, Z] private[scalikejdbc](
override val statement: String,
override val rawParameters: scala.collection.Seq[Any])(val one: WrappedResultSet => A)(val to1: WrappedResultSet => Option[B1], val to2: WrappedResultSet => Option[B2], val to3: WrappedResultSet => Option[B3], val to4: WrappedResultSet => Option[B4], val to5: WrappedResultSet => Option[B5], val to6: WrappedResultSet => Option[B6], val to7: WrappedResultSet => Option[B7], val to8: WrappedResultSet => Option[B8], val to9: WrappedResultSet => Option[B9], val to10: WrappedResultSet => Option[B10], val to11: WrappedResultSet => Option[B11], val to12: WrappedResultSet => Option[B12], val to13: WrappedResultSet => Option[B13])(val zExtractor: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z)
extends SQL[Z, E](statement, rawParameters)(SQL.noExtractor[Z]("one-to-many extractor(one(RS => A).toManies(RS => Option[B1])) is specified, use #map((A,B) =>Z) instead."))
with SQLToCollection[Z, E]
with AllOutputDecisionsUnsupported[Z, E]
with OneToManies13Extractor[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] {
import GeneralizedTypeConstraintsForWithExtractor._
override def apply[C[_]]()(implicit session: DBSession, context: ConnectionPoolContext = NoConnectionPoolContext, hasExtractor: ThisSQL =:= SQLWithExtractor, f: Factory[Z, C[Z]]): C[Z] = {
executeQuery(session, (session: DBSession) => f.fromSpecific(toIterable(session, statement, rawParameters, zExtractor)))
}
private[scalikejdbc] def extractOne: WrappedResultSet => A = one
private[scalikejdbc] def extractTo1: WrappedResultSet => Option[B1] = to1
private[scalikejdbc] def extractTo2: WrappedResultSet => Option[B2] = to2
private[scalikejdbc] def extractTo3: WrappedResultSet => Option[B3] = to3
private[scalikejdbc] def extractTo4: WrappedResultSet => Option[B4] = to4
private[scalikejdbc] def extractTo5: WrappedResultSet => Option[B5] = to5
private[scalikejdbc] def extractTo6: WrappedResultSet => Option[B6] = to6
private[scalikejdbc] def extractTo7: WrappedResultSet => Option[B7] = to7
private[scalikejdbc] def extractTo8: WrappedResultSet => Option[B8] = to8
private[scalikejdbc] def extractTo9: WrappedResultSet => Option[B9] = to9
private[scalikejdbc] def extractTo10: WrappedResultSet => Option[B10] = to10
private[scalikejdbc] def extractTo11: WrappedResultSet => Option[B11] = to11
private[scalikejdbc] def extractTo12: WrappedResultSet => Option[B12] = to12
private[scalikejdbc] def extractTo13: WrappedResultSet => Option[B13] = to13
private[scalikejdbc] def transform: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z = zExtractor
}
object OneToManies13SQLToCollection {
def unapply[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E <: WithExtractor, Z](sqlObject: OneToManies13SQLToCollection[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z]): Some[(String, scala.collection.Seq[Any], WrappedResultSet => A, (WrappedResultSet => Option[B1], WrappedResultSet => Option[B2], WrappedResultSet => Option[B3], WrappedResultSet => Option[B4], WrappedResultSet => Option[B5], WrappedResultSet => Option[B6], WrappedResultSet => Option[B7], WrappedResultSet => Option[B8], WrappedResultSet => Option[B9], WrappedResultSet => Option[B10], WrappedResultSet => Option[B11], WrappedResultSet => Option[B12], WrappedResultSet => Option[B13]), (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z)] = {
Some((sqlObject.statement, sqlObject.rawParameters, sqlObject.one, (sqlObject.to1, sqlObject.to2, sqlObject.to3, sqlObject.to4, sqlObject.to5, sqlObject.to6, sqlObject.to7, sqlObject.to8, sqlObject.to9, sqlObject.to10, sqlObject.to11, sqlObject.to12, sqlObject.to13), sqlObject.zExtractor))
}
}
class OneToManies13SQLToIterable[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E <: WithExtractor, Z](
override val statement: String,
override val rawParameters: scala.collection.Seq[Any])(val one: WrappedResultSet => A)(val to1: WrappedResultSet => Option[B1], val to2: WrappedResultSet => Option[B2], val to3: WrappedResultSet => Option[B3], val to4: WrappedResultSet => Option[B4], val to5: WrappedResultSet => Option[B5], val to6: WrappedResultSet => Option[B6], val to7: WrappedResultSet => Option[B7], val to8: WrappedResultSet => Option[B8], val to9: WrappedResultSet => Option[B9], val to10: WrappedResultSet => Option[B10], val to11: WrappedResultSet => Option[B11], val to12: WrappedResultSet => Option[B12], val to13: WrappedResultSet => Option[B13])(val zExtractor: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z)
extends SQL[Z, E](statement, rawParameters)(SQL.noExtractor[Z]("one-to-many extractor(one(RS => A).toMany(RS => Option[B1])) is specified, use #map((A,B) =>Z) instead."))
with SQLToIterable[Z, E]
with AllOutputDecisionsUnsupported[Z, E]
with OneToManies13Extractor[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] {
import GeneralizedTypeConstraintsForWithExtractor._
override def apply()(implicit session: DBSession, context: ConnectionPoolContext = NoConnectionPoolContext, hasExtractor: ThisSQL =:= SQLWithExtractor): Iterable[Z] = {
executeQuery[Iterable](session, (session: DBSession) => toIterable(session, statement, rawParameters, zExtractor))
}
private[scalikejdbc] def extractOne: WrappedResultSet => A = one
private[scalikejdbc] def extractTo1: WrappedResultSet => Option[B1] = to1
private[scalikejdbc] def extractTo2: WrappedResultSet => Option[B2] = to2
private[scalikejdbc] def extractTo3: WrappedResultSet => Option[B3] = to3
private[scalikejdbc] def extractTo4: WrappedResultSet => Option[B4] = to4
private[scalikejdbc] def extractTo5: WrappedResultSet => Option[B5] = to5
private[scalikejdbc] def extractTo6: WrappedResultSet => Option[B6] = to6
private[scalikejdbc] def extractTo7: WrappedResultSet => Option[B7] = to7
private[scalikejdbc] def extractTo8: WrappedResultSet => Option[B8] = to8
private[scalikejdbc] def extractTo9: WrappedResultSet => Option[B9] = to9
private[scalikejdbc] def extractTo10: WrappedResultSet => Option[B10] = to10
private[scalikejdbc] def extractTo11: WrappedResultSet => Option[B11] = to11
private[scalikejdbc] def extractTo12: WrappedResultSet => Option[B12] = to12
private[scalikejdbc] def extractTo13: WrappedResultSet => Option[B13] = to13
private[scalikejdbc] def transform: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z = zExtractor
}
object OneToManies13SQLToIterable {
def unapply[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E <: WithExtractor, Z](sqlObject: OneToManies13SQLToIterable[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z]): Some[(String, scala.collection.Seq[Any], WrappedResultSet => A, (WrappedResultSet => Option[B1], WrappedResultSet => Option[B2], WrappedResultSet => Option[B3], WrappedResultSet => Option[B4], WrappedResultSet => Option[B5], WrappedResultSet => Option[B6], WrappedResultSet => Option[B7], WrappedResultSet => Option[B8], WrappedResultSet => Option[B9], WrappedResultSet => Option[B10], WrappedResultSet => Option[B11], WrappedResultSet => Option[B12], WrappedResultSet => Option[B13]), (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z)] = {
Some((sqlObject.statement, sqlObject.rawParameters, sqlObject.one, (sqlObject.to1, sqlObject.to2, sqlObject.to3, sqlObject.to4, sqlObject.to5, sqlObject.to6, sqlObject.to7, sqlObject.to8, sqlObject.to9, sqlObject.to10, sqlObject.to11, sqlObject.to12, sqlObject.to13), sqlObject.zExtractor))
}
}
class OneToManies13SQLToOption[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E <: WithExtractor, Z](
override val statement: String,
override val rawParameters: scala.collection.Seq[Any])(val one: WrappedResultSet => A)(val to1: WrappedResultSet => Option[B1], val to2: WrappedResultSet => Option[B2], val to3: WrappedResultSet => Option[B3], val to4: WrappedResultSet => Option[B4], val to5: WrappedResultSet => Option[B5], val to6: WrappedResultSet => Option[B6], val to7: WrappedResultSet => Option[B7], val to8: WrappedResultSet => Option[B8], val to9: WrappedResultSet => Option[B9], val to10: WrappedResultSet => Option[B10], val to11: WrappedResultSet => Option[B11], val to12: WrappedResultSet => Option[B12], val to13: WrappedResultSet => Option[B13])(val zExtractor: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z)(val isSingle: Boolean = true)
extends SQL[Z, E](statement, rawParameters)(SQL.noExtractor[Z]("one-to-many extractor(one(RS => A).toMany(RS => Option[B1])) is specified, use #map((A,B) =>Z) instead."))
with SQLToOption[Z, E]
with AllOutputDecisionsUnsupported[Z, E]
with OneToManies13Extractor[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] {
import GeneralizedTypeConstraintsForWithExtractor._
override def apply()(implicit session: DBSession, context: ConnectionPoolContext = NoConnectionPoolContext, hasExtractor: ThisSQL =:= SQLWithExtractor): Option[Z] = {
executeQuery[Option](session, (session: DBSession) => toSingle(toIterable(session, statement, rawParameters, zExtractor)))
}
private[scalikejdbc] def extractOne: WrappedResultSet => A = one
private[scalikejdbc] def extractTo1: WrappedResultSet => Option[B1] = to1
private[scalikejdbc] def extractTo2: WrappedResultSet => Option[B2] = to2
private[scalikejdbc] def extractTo3: WrappedResultSet => Option[B3] = to3
private[scalikejdbc] def extractTo4: WrappedResultSet => Option[B4] = to4
private[scalikejdbc] def extractTo5: WrappedResultSet => Option[B5] = to5
private[scalikejdbc] def extractTo6: WrappedResultSet => Option[B6] = to6
private[scalikejdbc] def extractTo7: WrappedResultSet => Option[B7] = to7
private[scalikejdbc] def extractTo8: WrappedResultSet => Option[B8] = to8
private[scalikejdbc] def extractTo9: WrappedResultSet => Option[B9] = to9
private[scalikejdbc] def extractTo10: WrappedResultSet => Option[B10] = to10
private[scalikejdbc] def extractTo11: WrappedResultSet => Option[B11] = to11
private[scalikejdbc] def extractTo12: WrappedResultSet => Option[B12] = to12
private[scalikejdbc] def extractTo13: WrappedResultSet => Option[B13] = to13
private[scalikejdbc] def transform: (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z = zExtractor
}
object OneToManies13SQLToOption {
def unapply[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E <: WithExtractor, Z](sqlObject: OneToManies13SQLToOption[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z]): Some[(String, scala.collection.Seq[Any], WrappedResultSet => A, (WrappedResultSet => Option[B1], WrappedResultSet => Option[B2], WrappedResultSet => Option[B3], WrappedResultSet => Option[B4], WrappedResultSet => Option[B5], WrappedResultSet => Option[B6], WrappedResultSet => Option[B7], WrappedResultSet => Option[B8], WrappedResultSet => Option[B9], WrappedResultSet => Option[B10], WrappedResultSet => Option[B11], WrappedResultSet => Option[B12], WrappedResultSet => Option[B13]), (A, scala.collection.Seq[B1], scala.collection.Seq[B2], scala.collection.Seq[B3], scala.collection.Seq[B4], scala.collection.Seq[B5], scala.collection.Seq[B6], scala.collection.Seq[B7], scala.collection.Seq[B8], scala.collection.Seq[B9], scala.collection.Seq[B10], scala.collection.Seq[B11], scala.collection.Seq[B12], scala.collection.Seq[B13]) => Z, Boolean)] = {
Some((sqlObject.statement, sqlObject.rawParameters, sqlObject.one, (sqlObject.to1, sqlObject.to2, sqlObject.to3, sqlObject.to4, sqlObject.to5, sqlObject.to6, sqlObject.to7, sqlObject.to8, sqlObject.to9, sqlObject.to10, sqlObject.to11, sqlObject.to12, sqlObject.to13), sqlObject.zExtractor, sqlObject.isSingle))
}
}