PageRenderTime 61ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/framework/src/play/src/main/scala/play/core/hidden/ObjectMappings.scala

http://github.com/playframework/Play20
Scala | 1984 lines | 1903 code | 4 blank | 77 comment | 0 complexity | a78ffe3bc8ae5d09b4d4059a13f2bfaf MD5 | raw file
Possible License(s): Apache-2.0

Large files files are truncated, but you can click here to view the full file

  1. /*
  2. * Copyright (C) 2009-2016 Lightbend Inc. <https://www.lightbend.com>
  3. */
  4. package play.api.data
  5. import format._
  6. import validation._
  7. /*
  8. DO NOT EDIT THE SCALA CODE IN THIS FILE, IT IS GENERATED.
  9. The script below will generate this file. Edit and run the script to edit the file.
  10. #!/bin/sh
  11. exec scala -savecompiled "$0" $0 $@
  12. !#
  13. def generate(times: Int) = {
  14. def g(format: String, sep: String) = (for (i <- 1 to times) yield format.replaceAll("%", i.toString).replaceAll("#", (i - 1).toString)).mkString(sep)
  15. def aParams = g("A%", ", ")
  16. s"""
  17. class ObjectMapping$times[R, $aParams](apply: Function$times[$aParams, R], unapply: Function1[R, Option[($aParams)]], ${g("f%: (String, Mapping[A%])", ", ")}, val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  18. ${g("val field% = f%._2.withPrefix(f%._1).withPrefix(key)", "\n\n ")}
  19. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  20. merge(${g("field%.bind(data)", ", ")}) match {
  21. case Left(errors) => Left(errors)
  22. case Right(values) => {
  23. applyConstraints(apply(
  24. ${g("values(#).asInstanceOf[A%]", ",\n ")}
  25. ))
  26. }
  27. }
  28. }
  29. def unbind(value: R): Map[String, String] = {
  30. unapply(value).map { fields =>
  31. val (${g("v%", ", ")}) = fields
  32. ${g("field%.unbind(v%)", " ++ ")}
  33. }.getOrElse(Map.empty)
  34. }
  35. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  36. unapply(value).map { fields =>
  37. val (${g("v%", ", ")}) = fields
  38. ${g("val a% = field%.unbindAndValidate(v%)", "\n ")}
  39. (${g("a%._1", " ++ ")}) ->
  40. (${g("a%._2", " ++ ")})
  41. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  42. }
  43. def withPrefix(prefix: String): ObjectMapping$times[R, $aParams] = addPrefix(prefix).map(newKey =>
  44. new ObjectMapping$times(apply, unapply, ${g("f%", ", ")}, newKey, constraints)
  45. ).getOrElse(this)
  46. def verifying(addConstraints: Constraint[R]*): ObjectMapping$times[R, $aParams] = {
  47. new ObjectMapping$times(apply, unapply, ${g("f%", ", ")}, key, constraints ++ addConstraints.toSeq)
  48. }
  49. val mappings = Seq(this) ++ ${g("field%.mappings", " ++ ")}
  50. }
  51. """
  52. }
  53. val scriptSource = scala.io.Source.fromFile(argv(0)).getLines.mkString("\n")
  54. println(s"""/*
  55. * Copyright (C) 2009-2016 Lightbend Inc. <https://www.lightbend.com>
  56. */
  57. package play.api.data
  58. import format._
  59. import validation._
  60. /*
  61. DO NOT EDIT THE SCALA CODE IN THIS FILE, IT IS GENERATED.
  62. The script below will generate this file. Edit and run the script to edit the file.
  63. $scriptSource
  64. */
  65. """)
  66. println((for (i <- 1 to 22) yield generate(i)).mkString(""))
  67. */
  68. class ObjectMapping1[R, A1](apply: Function1[A1, R], unapply: Function1[R, Option[(A1)]], f1: (String, Mapping[A1]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  69. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  70. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  71. merge(field1.bind(data)) match {
  72. case Left(errors) => Left(errors)
  73. case Right(values) => {
  74. applyConstraints(apply(
  75. values(0).asInstanceOf[A1]
  76. ))
  77. }
  78. }
  79. }
  80. def unbind(value: R): Map[String, String] = {
  81. unapply(value).map { fields =>
  82. val (v1) = fields
  83. field1.unbind(v1)
  84. }.getOrElse(Map.empty)
  85. }
  86. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  87. unapply(value).map { fields =>
  88. val (v1) = fields
  89. val a1 = field1.unbindAndValidate(v1)
  90. (a1._1) ->
  91. (a1._2)
  92. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  93. }
  94. def withPrefix(prefix: String): ObjectMapping1[R, A1] = addPrefix(prefix).map(newKey =>
  95. new ObjectMapping1(apply, unapply, f1, newKey, constraints)
  96. ).getOrElse(this)
  97. def verifying(addConstraints: Constraint[R]*): ObjectMapping1[R, A1] = {
  98. new ObjectMapping1(apply, unapply, f1, key, constraints ++ addConstraints.toSeq)
  99. }
  100. val mappings = Seq(this) ++ field1.mappings
  101. }
  102. class ObjectMapping2[R, A1, A2](apply: Function2[A1, A2, R], unapply: Function1[R, Option[(A1, A2)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  103. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  104. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  105. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  106. merge(field1.bind(data), field2.bind(data)) match {
  107. case Left(errors) => Left(errors)
  108. case Right(values) => {
  109. applyConstraints(apply(
  110. values(0).asInstanceOf[A1],
  111. values(1).asInstanceOf[A2]
  112. ))
  113. }
  114. }
  115. }
  116. def unbind(value: R): Map[String, String] = {
  117. unapply(value).map { fields =>
  118. val (v1, v2) = fields
  119. field1.unbind(v1) ++ field2.unbind(v2)
  120. }.getOrElse(Map.empty)
  121. }
  122. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  123. unapply(value).map { fields =>
  124. val (v1, v2) = fields
  125. val a1 = field1.unbindAndValidate(v1)
  126. val a2 = field2.unbindAndValidate(v2)
  127. (a1._1 ++ a2._1) ->
  128. (a1._2 ++ a2._2)
  129. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  130. }
  131. def withPrefix(prefix: String): ObjectMapping2[R, A1, A2] = addPrefix(prefix).map(newKey =>
  132. new ObjectMapping2(apply, unapply, f1, f2, newKey, constraints)
  133. ).getOrElse(this)
  134. def verifying(addConstraints: Constraint[R]*): ObjectMapping2[R, A1, A2] = {
  135. new ObjectMapping2(apply, unapply, f1, f2, key, constraints ++ addConstraints.toSeq)
  136. }
  137. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings
  138. }
  139. class ObjectMapping3[R, A1, A2, A3](apply: Function3[A1, A2, A3, R], unapply: Function1[R, Option[(A1, A2, A3)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  140. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  141. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  142. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  143. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  144. merge(field1.bind(data), field2.bind(data), field3.bind(data)) match {
  145. case Left(errors) => Left(errors)
  146. case Right(values) => {
  147. applyConstraints(apply(
  148. values(0).asInstanceOf[A1],
  149. values(1).asInstanceOf[A2],
  150. values(2).asInstanceOf[A3]
  151. ))
  152. }
  153. }
  154. }
  155. def unbind(value: R): Map[String, String] = {
  156. unapply(value).map { fields =>
  157. val (v1, v2, v3) = fields
  158. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3)
  159. }.getOrElse(Map.empty)
  160. }
  161. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  162. unapply(value).map { fields =>
  163. val (v1, v2, v3) = fields
  164. val a1 = field1.unbindAndValidate(v1)
  165. val a2 = field2.unbindAndValidate(v2)
  166. val a3 = field3.unbindAndValidate(v3)
  167. (a1._1 ++ a2._1 ++ a3._1) ->
  168. (a1._2 ++ a2._2 ++ a3._2)
  169. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  170. }
  171. def withPrefix(prefix: String): ObjectMapping3[R, A1, A2, A3] = addPrefix(prefix).map(newKey =>
  172. new ObjectMapping3(apply, unapply, f1, f2, f3, newKey, constraints)
  173. ).getOrElse(this)
  174. def verifying(addConstraints: Constraint[R]*): ObjectMapping3[R, A1, A2, A3] = {
  175. new ObjectMapping3(apply, unapply, f1, f2, f3, key, constraints ++ addConstraints.toSeq)
  176. }
  177. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings
  178. }
  179. class ObjectMapping4[R, A1, A2, A3, A4](apply: Function4[A1, A2, A3, A4, R], unapply: Function1[R, Option[(A1, A2, A3, A4)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  180. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  181. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  182. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  183. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  184. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  185. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data)) match {
  186. case Left(errors) => Left(errors)
  187. case Right(values) => {
  188. applyConstraints(apply(
  189. values(0).asInstanceOf[A1],
  190. values(1).asInstanceOf[A2],
  191. values(2).asInstanceOf[A3],
  192. values(3).asInstanceOf[A4]
  193. ))
  194. }
  195. }
  196. }
  197. def unbind(value: R): Map[String, String] = {
  198. unapply(value).map { fields =>
  199. val (v1, v2, v3, v4) = fields
  200. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3) ++ field4.unbind(v4)
  201. }.getOrElse(Map.empty)
  202. }
  203. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  204. unapply(value).map { fields =>
  205. val (v1, v2, v3, v4) = fields
  206. val a1 = field1.unbindAndValidate(v1)
  207. val a2 = field2.unbindAndValidate(v2)
  208. val a3 = field3.unbindAndValidate(v3)
  209. val a4 = field4.unbindAndValidate(v4)
  210. (a1._1 ++ a2._1 ++ a3._1 ++ a4._1) ->
  211. (a1._2 ++ a2._2 ++ a3._2 ++ a4._2)
  212. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  213. }
  214. def withPrefix(prefix: String): ObjectMapping4[R, A1, A2, A3, A4] = addPrefix(prefix).map(newKey =>
  215. new ObjectMapping4(apply, unapply, f1, f2, f3, f4, newKey, constraints)
  216. ).getOrElse(this)
  217. def verifying(addConstraints: Constraint[R]*): ObjectMapping4[R, A1, A2, A3, A4] = {
  218. new ObjectMapping4(apply, unapply, f1, f2, f3, f4, key, constraints ++ addConstraints.toSeq)
  219. }
  220. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings ++ field4.mappings
  221. }
  222. class ObjectMapping5[R, A1, A2, A3, A4, A5](apply: Function5[A1, A2, A3, A4, A5, R], unapply: Function1[R, Option[(A1, A2, A3, A4, A5)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), f5: (String, Mapping[A5]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  223. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  224. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  225. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  226. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  227. val field5 = f5._2.withPrefix(f5._1).withPrefix(key)
  228. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  229. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data), field5.bind(data)) match {
  230. case Left(errors) => Left(errors)
  231. case Right(values) => {
  232. applyConstraints(apply(
  233. values(0).asInstanceOf[A1],
  234. values(1).asInstanceOf[A2],
  235. values(2).asInstanceOf[A3],
  236. values(3).asInstanceOf[A4],
  237. values(4).asInstanceOf[A5]
  238. ))
  239. }
  240. }
  241. }
  242. def unbind(value: R): Map[String, String] = {
  243. unapply(value).map { fields =>
  244. val (v1, v2, v3, v4, v5) = fields
  245. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3) ++ field4.unbind(v4) ++ field5.unbind(v5)
  246. }.getOrElse(Map.empty)
  247. }
  248. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  249. unapply(value).map { fields =>
  250. val (v1, v2, v3, v4, v5) = fields
  251. val a1 = field1.unbindAndValidate(v1)
  252. val a2 = field2.unbindAndValidate(v2)
  253. val a3 = field3.unbindAndValidate(v3)
  254. val a4 = field4.unbindAndValidate(v4)
  255. val a5 = field5.unbindAndValidate(v5)
  256. (a1._1 ++ a2._1 ++ a3._1 ++ a4._1 ++ a5._1) ->
  257. (a1._2 ++ a2._2 ++ a3._2 ++ a4._2 ++ a5._2)
  258. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  259. }
  260. def withPrefix(prefix: String): ObjectMapping5[R, A1, A2, A3, A4, A5] = addPrefix(prefix).map(newKey =>
  261. new ObjectMapping5(apply, unapply, f1, f2, f3, f4, f5, newKey, constraints)
  262. ).getOrElse(this)
  263. def verifying(addConstraints: Constraint[R]*): ObjectMapping5[R, A1, A2, A3, A4, A5] = {
  264. new ObjectMapping5(apply, unapply, f1, f2, f3, f4, f5, key, constraints ++ addConstraints.toSeq)
  265. }
  266. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings ++ field4.mappings ++ field5.mappings
  267. }
  268. class ObjectMapping6[R, A1, A2, A3, A4, A5, A6](apply: Function6[A1, A2, A3, A4, A5, A6, R], unapply: Function1[R, Option[(A1, A2, A3, A4, A5, A6)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), f5: (String, Mapping[A5]), f6: (String, Mapping[A6]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  269. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  270. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  271. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  272. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  273. val field5 = f5._2.withPrefix(f5._1).withPrefix(key)
  274. val field6 = f6._2.withPrefix(f6._1).withPrefix(key)
  275. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  276. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data), field5.bind(data), field6.bind(data)) match {
  277. case Left(errors) => Left(errors)
  278. case Right(values) => {
  279. applyConstraints(apply(
  280. values(0).asInstanceOf[A1],
  281. values(1).asInstanceOf[A2],
  282. values(2).asInstanceOf[A3],
  283. values(3).asInstanceOf[A4],
  284. values(4).asInstanceOf[A5],
  285. values(5).asInstanceOf[A6]
  286. ))
  287. }
  288. }
  289. }
  290. def unbind(value: R): Map[String, String] = {
  291. unapply(value).map { fields =>
  292. val (v1, v2, v3, v4, v5, v6) = fields
  293. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3) ++ field4.unbind(v4) ++ field5.unbind(v5) ++ field6.unbind(v6)
  294. }.getOrElse(Map.empty)
  295. }
  296. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  297. unapply(value).map { fields =>
  298. val (v1, v2, v3, v4, v5, v6) = fields
  299. val a1 = field1.unbindAndValidate(v1)
  300. val a2 = field2.unbindAndValidate(v2)
  301. val a3 = field3.unbindAndValidate(v3)
  302. val a4 = field4.unbindAndValidate(v4)
  303. val a5 = field5.unbindAndValidate(v5)
  304. val a6 = field6.unbindAndValidate(v6)
  305. (a1._1 ++ a2._1 ++ a3._1 ++ a4._1 ++ a5._1 ++ a6._1) ->
  306. (a1._2 ++ a2._2 ++ a3._2 ++ a4._2 ++ a5._2 ++ a6._2)
  307. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  308. }
  309. def withPrefix(prefix: String): ObjectMapping6[R, A1, A2, A3, A4, A5, A6] = addPrefix(prefix).map(newKey =>
  310. new ObjectMapping6(apply, unapply, f1, f2, f3, f4, f5, f6, newKey, constraints)
  311. ).getOrElse(this)
  312. def verifying(addConstraints: Constraint[R]*): ObjectMapping6[R, A1, A2, A3, A4, A5, A6] = {
  313. new ObjectMapping6(apply, unapply, f1, f2, f3, f4, f5, f6, key, constraints ++ addConstraints.toSeq)
  314. }
  315. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings ++ field4.mappings ++ field5.mappings ++ field6.mappings
  316. }
  317. class ObjectMapping7[R, A1, A2, A3, A4, A5, A6, A7](apply: Function7[A1, A2, A3, A4, A5, A6, A7, R], unapply: Function1[R, Option[(A1, A2, A3, A4, A5, A6, A7)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), f5: (String, Mapping[A5]), f6: (String, Mapping[A6]), f7: (String, Mapping[A7]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  318. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  319. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  320. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  321. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  322. val field5 = f5._2.withPrefix(f5._1).withPrefix(key)
  323. val field6 = f6._2.withPrefix(f6._1).withPrefix(key)
  324. val field7 = f7._2.withPrefix(f7._1).withPrefix(key)
  325. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  326. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data), field5.bind(data), field6.bind(data), field7.bind(data)) match {
  327. case Left(errors) => Left(errors)
  328. case Right(values) => {
  329. applyConstraints(apply(
  330. values(0).asInstanceOf[A1],
  331. values(1).asInstanceOf[A2],
  332. values(2).asInstanceOf[A3],
  333. values(3).asInstanceOf[A4],
  334. values(4).asInstanceOf[A5],
  335. values(5).asInstanceOf[A6],
  336. values(6).asInstanceOf[A7]
  337. ))
  338. }
  339. }
  340. }
  341. def unbind(value: R): Map[String, String] = {
  342. unapply(value).map { fields =>
  343. val (v1, v2, v3, v4, v5, v6, v7) = fields
  344. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3) ++ field4.unbind(v4) ++ field5.unbind(v5) ++ field6.unbind(v6) ++ field7.unbind(v7)
  345. }.getOrElse(Map.empty)
  346. }
  347. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  348. unapply(value).map { fields =>
  349. val (v1, v2, v3, v4, v5, v6, v7) = fields
  350. val a1 = field1.unbindAndValidate(v1)
  351. val a2 = field2.unbindAndValidate(v2)
  352. val a3 = field3.unbindAndValidate(v3)
  353. val a4 = field4.unbindAndValidate(v4)
  354. val a5 = field5.unbindAndValidate(v5)
  355. val a6 = field6.unbindAndValidate(v6)
  356. val a7 = field7.unbindAndValidate(v7)
  357. (a1._1 ++ a2._1 ++ a3._1 ++ a4._1 ++ a5._1 ++ a6._1 ++ a7._1) ->
  358. (a1._2 ++ a2._2 ++ a3._2 ++ a4._2 ++ a5._2 ++ a6._2 ++ a7._2)
  359. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  360. }
  361. def withPrefix(prefix: String): ObjectMapping7[R, A1, A2, A3, A4, A5, A6, A7] = addPrefix(prefix).map(newKey =>
  362. new ObjectMapping7(apply, unapply, f1, f2, f3, f4, f5, f6, f7, newKey, constraints)
  363. ).getOrElse(this)
  364. def verifying(addConstraints: Constraint[R]*): ObjectMapping7[R, A1, A2, A3, A4, A5, A6, A7] = {
  365. new ObjectMapping7(apply, unapply, f1, f2, f3, f4, f5, f6, f7, key, constraints ++ addConstraints.toSeq)
  366. }
  367. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings ++ field4.mappings ++ field5.mappings ++ field6.mappings ++ field7.mappings
  368. }
  369. class ObjectMapping8[R, A1, A2, A3, A4, A5, A6, A7, A8](apply: Function8[A1, A2, A3, A4, A5, A6, A7, A8, R], unapply: Function1[R, Option[(A1, A2, A3, A4, A5, A6, A7, A8)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), f5: (String, Mapping[A5]), f6: (String, Mapping[A6]), f7: (String, Mapping[A7]), f8: (String, Mapping[A8]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  370. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  371. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  372. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  373. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  374. val field5 = f5._2.withPrefix(f5._1).withPrefix(key)
  375. val field6 = f6._2.withPrefix(f6._1).withPrefix(key)
  376. val field7 = f7._2.withPrefix(f7._1).withPrefix(key)
  377. val field8 = f8._2.withPrefix(f8._1).withPrefix(key)
  378. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  379. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data), field5.bind(data), field6.bind(data), field7.bind(data), field8.bind(data)) match {
  380. case Left(errors) => Left(errors)
  381. case Right(values) => {
  382. applyConstraints(apply(
  383. values(0).asInstanceOf[A1],
  384. values(1).asInstanceOf[A2],
  385. values(2).asInstanceOf[A3],
  386. values(3).asInstanceOf[A4],
  387. values(4).asInstanceOf[A5],
  388. values(5).asInstanceOf[A6],
  389. values(6).asInstanceOf[A7],
  390. values(7).asInstanceOf[A8]
  391. ))
  392. }
  393. }
  394. }
  395. def unbind(value: R): Map[String, String] = {
  396. unapply(value).map { fields =>
  397. val (v1, v2, v3, v4, v5, v6, v7, v8) = fields
  398. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3) ++ field4.unbind(v4) ++ field5.unbind(v5) ++ field6.unbind(v6) ++ field7.unbind(v7) ++ field8.unbind(v8)
  399. }.getOrElse(Map.empty)
  400. }
  401. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  402. unapply(value).map { fields =>
  403. val (v1, v2, v3, v4, v5, v6, v7, v8) = fields
  404. val a1 = field1.unbindAndValidate(v1)
  405. val a2 = field2.unbindAndValidate(v2)
  406. val a3 = field3.unbindAndValidate(v3)
  407. val a4 = field4.unbindAndValidate(v4)
  408. val a5 = field5.unbindAndValidate(v5)
  409. val a6 = field6.unbindAndValidate(v6)
  410. val a7 = field7.unbindAndValidate(v7)
  411. val a8 = field8.unbindAndValidate(v8)
  412. (a1._1 ++ a2._1 ++ a3._1 ++ a4._1 ++ a5._1 ++ a6._1 ++ a7._1 ++ a8._1) ->
  413. (a1._2 ++ a2._2 ++ a3._2 ++ a4._2 ++ a5._2 ++ a6._2 ++ a7._2 ++ a8._2)
  414. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  415. }
  416. def withPrefix(prefix: String): ObjectMapping8[R, A1, A2, A3, A4, A5, A6, A7, A8] = addPrefix(prefix).map(newKey =>
  417. new ObjectMapping8(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, newKey, constraints)
  418. ).getOrElse(this)
  419. def verifying(addConstraints: Constraint[R]*): ObjectMapping8[R, A1, A2, A3, A4, A5, A6, A7, A8] = {
  420. new ObjectMapping8(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, key, constraints ++ addConstraints.toSeq)
  421. }
  422. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings ++ field4.mappings ++ field5.mappings ++ field6.mappings ++ field7.mappings ++ field8.mappings
  423. }
  424. class ObjectMapping9[R, A1, A2, A3, A4, A5, A6, A7, A8, A9](apply: Function9[A1, A2, A3, A4, A5, A6, A7, A8, A9, R], unapply: Function1[R, Option[(A1, A2, A3, A4, A5, A6, A7, A8, A9)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), f5: (String, Mapping[A5]), f6: (String, Mapping[A6]), f7: (String, Mapping[A7]), f8: (String, Mapping[A8]), f9: (String, Mapping[A9]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  425. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  426. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  427. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  428. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  429. val field5 = f5._2.withPrefix(f5._1).withPrefix(key)
  430. val field6 = f6._2.withPrefix(f6._1).withPrefix(key)
  431. val field7 = f7._2.withPrefix(f7._1).withPrefix(key)
  432. val field8 = f8._2.withPrefix(f8._1).withPrefix(key)
  433. val field9 = f9._2.withPrefix(f9._1).withPrefix(key)
  434. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  435. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data), field5.bind(data), field6.bind(data), field7.bind(data), field8.bind(data), field9.bind(data)) match {
  436. case Left(errors) => Left(errors)
  437. case Right(values) => {
  438. applyConstraints(apply(
  439. values(0).asInstanceOf[A1],
  440. values(1).asInstanceOf[A2],
  441. values(2).asInstanceOf[A3],
  442. values(3).asInstanceOf[A4],
  443. values(4).asInstanceOf[A5],
  444. values(5).asInstanceOf[A6],
  445. values(6).asInstanceOf[A7],
  446. values(7).asInstanceOf[A8],
  447. values(8).asInstanceOf[A9]
  448. ))
  449. }
  450. }
  451. }
  452. def unbind(value: R): Map[String, String] = {
  453. unapply(value).map { fields =>
  454. val (v1, v2, v3, v4, v5, v6, v7, v8, v9) = fields
  455. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3) ++ field4.unbind(v4) ++ field5.unbind(v5) ++ field6.unbind(v6) ++ field7.unbind(v7) ++ field8.unbind(v8) ++ field9.unbind(v9)
  456. }.getOrElse(Map.empty)
  457. }
  458. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  459. unapply(value).map { fields =>
  460. val (v1, v2, v3, v4, v5, v6, v7, v8, v9) = fields
  461. val a1 = field1.unbindAndValidate(v1)
  462. val a2 = field2.unbindAndValidate(v2)
  463. val a3 = field3.unbindAndValidate(v3)
  464. val a4 = field4.unbindAndValidate(v4)
  465. val a5 = field5.unbindAndValidate(v5)
  466. val a6 = field6.unbindAndValidate(v6)
  467. val a7 = field7.unbindAndValidate(v7)
  468. val a8 = field8.unbindAndValidate(v8)
  469. val a9 = field9.unbindAndValidate(v9)
  470. (a1._1 ++ a2._1 ++ a3._1 ++ a4._1 ++ a5._1 ++ a6._1 ++ a7._1 ++ a8._1 ++ a9._1) ->
  471. (a1._2 ++ a2._2 ++ a3._2 ++ a4._2 ++ a5._2 ++ a6._2 ++ a7._2 ++ a8._2 ++ a9._2)
  472. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  473. }
  474. def withPrefix(prefix: String): ObjectMapping9[R, A1, A2, A3, A4, A5, A6, A7, A8, A9] = addPrefix(prefix).map(newKey =>
  475. new ObjectMapping9(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, newKey, constraints)
  476. ).getOrElse(this)
  477. def verifying(addConstraints: Constraint[R]*): ObjectMapping9[R, A1, A2, A3, A4, A5, A6, A7, A8, A9] = {
  478. new ObjectMapping9(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, key, constraints ++ addConstraints.toSeq)
  479. }
  480. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings ++ field4.mappings ++ field5.mappings ++ field6.mappings ++ field7.mappings ++ field8.mappings ++ field9.mappings
  481. }
  482. class ObjectMapping10[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10](apply: Function10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, R], unapply: Function1[R, Option[(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), f5: (String, Mapping[A5]), f6: (String, Mapping[A6]), f7: (String, Mapping[A7]), f8: (String, Mapping[A8]), f9: (String, Mapping[A9]), f10: (String, Mapping[A10]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  483. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  484. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  485. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  486. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  487. val field5 = f5._2.withPrefix(f5._1).withPrefix(key)
  488. val field6 = f6._2.withPrefix(f6._1).withPrefix(key)
  489. val field7 = f7._2.withPrefix(f7._1).withPrefix(key)
  490. val field8 = f8._2.withPrefix(f8._1).withPrefix(key)
  491. val field9 = f9._2.withPrefix(f9._1).withPrefix(key)
  492. val field10 = f10._2.withPrefix(f10._1).withPrefix(key)
  493. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  494. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data), field5.bind(data), field6.bind(data), field7.bind(data), field8.bind(data), field9.bind(data), field10.bind(data)) match {
  495. case Left(errors) => Left(errors)
  496. case Right(values) => {
  497. applyConstraints(apply(
  498. values(0).asInstanceOf[A1],
  499. values(1).asInstanceOf[A2],
  500. values(2).asInstanceOf[A3],
  501. values(3).asInstanceOf[A4],
  502. values(4).asInstanceOf[A5],
  503. values(5).asInstanceOf[A6],
  504. values(6).asInstanceOf[A7],
  505. values(7).asInstanceOf[A8],
  506. values(8).asInstanceOf[A9],
  507. values(9).asInstanceOf[A10]
  508. ))
  509. }
  510. }
  511. }
  512. def unbind(value: R): Map[String, String] = {
  513. unapply(value).map { fields =>
  514. val (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) = fields
  515. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3) ++ field4.unbind(v4) ++ field5.unbind(v5) ++ field6.unbind(v6) ++ field7.unbind(v7) ++ field8.unbind(v8) ++ field9.unbind(v9) ++ field10.unbind(v10)
  516. }.getOrElse(Map.empty)
  517. }
  518. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  519. unapply(value).map { fields =>
  520. val (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) = fields
  521. val a1 = field1.unbindAndValidate(v1)
  522. val a2 = field2.unbindAndValidate(v2)
  523. val a3 = field3.unbindAndValidate(v3)
  524. val a4 = field4.unbindAndValidate(v4)
  525. val a5 = field5.unbindAndValidate(v5)
  526. val a6 = field6.unbindAndValidate(v6)
  527. val a7 = field7.unbindAndValidate(v7)
  528. val a8 = field8.unbindAndValidate(v8)
  529. val a9 = field9.unbindAndValidate(v9)
  530. val a10 = field10.unbindAndValidate(v10)
  531. (a1._1 ++ a2._1 ++ a3._1 ++ a4._1 ++ a5._1 ++ a6._1 ++ a7._1 ++ a8._1 ++ a9._1 ++ a10._1) ->
  532. (a1._2 ++ a2._2 ++ a3._2 ++ a4._2 ++ a5._2 ++ a6._2 ++ a7._2 ++ a8._2 ++ a9._2 ++ a10._2)
  533. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  534. }
  535. def withPrefix(prefix: String): ObjectMapping10[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10] = addPrefix(prefix).map(newKey =>
  536. new ObjectMapping10(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, newKey, constraints)
  537. ).getOrElse(this)
  538. def verifying(addConstraints: Constraint[R]*): ObjectMapping10[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10] = {
  539. new ObjectMapping10(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, key, constraints ++ addConstraints.toSeq)
  540. }
  541. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings ++ field4.mappings ++ field5.mappings ++ field6.mappings ++ field7.mappings ++ field8.mappings ++ field9.mappings ++ field10.mappings
  542. }
  543. class ObjectMapping11[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11](apply: Function11[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, R], unapply: Function1[R, Option[(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), f5: (String, Mapping[A5]), f6: (String, Mapping[A6]), f7: (String, Mapping[A7]), f8: (String, Mapping[A8]), f9: (String, Mapping[A9]), f10: (String, Mapping[A10]), f11: (String, Mapping[A11]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  544. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  545. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  546. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  547. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  548. val field5 = f5._2.withPrefix(f5._1).withPrefix(key)
  549. val field6 = f6._2.withPrefix(f6._1).withPrefix(key)
  550. val field7 = f7._2.withPrefix(f7._1).withPrefix(key)
  551. val field8 = f8._2.withPrefix(f8._1).withPrefix(key)
  552. val field9 = f9._2.withPrefix(f9._1).withPrefix(key)
  553. val field10 = f10._2.withPrefix(f10._1).withPrefix(key)
  554. val field11 = f11._2.withPrefix(f11._1).withPrefix(key)
  555. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  556. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data), field5.bind(data), field6.bind(data), field7.bind(data), field8.bind(data), field9.bind(data), field10.bind(data), field11.bind(data)) match {
  557. case Left(errors) => Left(errors)
  558. case Right(values) => {
  559. applyConstraints(apply(
  560. values(0).asInstanceOf[A1],
  561. values(1).asInstanceOf[A2],
  562. values(2).asInstanceOf[A3],
  563. values(3).asInstanceOf[A4],
  564. values(4).asInstanceOf[A5],
  565. values(5).asInstanceOf[A6],
  566. values(6).asInstanceOf[A7],
  567. values(7).asInstanceOf[A8],
  568. values(8).asInstanceOf[A9],
  569. values(9).asInstanceOf[A10],
  570. values(10).asInstanceOf[A11]
  571. ))
  572. }
  573. }
  574. }
  575. def unbind(value: R): Map[String, String] = {
  576. unapply(value).map { fields =>
  577. val (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) = fields
  578. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3) ++ field4.unbind(v4) ++ field5.unbind(v5) ++ field6.unbind(v6) ++ field7.unbind(v7) ++ field8.unbind(v8) ++ field9.unbind(v9) ++ field10.unbind(v10) ++ field11.unbind(v11)
  579. }.getOrElse(Map.empty)
  580. }
  581. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  582. unapply(value).map { fields =>
  583. val (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) = fields
  584. val a1 = field1.unbindAndValidate(v1)
  585. val a2 = field2.unbindAndValidate(v2)
  586. val a3 = field3.unbindAndValidate(v3)
  587. val a4 = field4.unbindAndValidate(v4)
  588. val a5 = field5.unbindAndValidate(v5)
  589. val a6 = field6.unbindAndValidate(v6)
  590. val a7 = field7.unbindAndValidate(v7)
  591. val a8 = field8.unbindAndValidate(v8)
  592. val a9 = field9.unbindAndValidate(v9)
  593. val a10 = field10.unbindAndValidate(v10)
  594. val a11 = field11.unbindAndValidate(v11)
  595. (a1._1 ++ a2._1 ++ a3._1 ++ a4._1 ++ a5._1 ++ a6._1 ++ a7._1 ++ a8._1 ++ a9._1 ++ a10._1 ++ a11._1) ->
  596. (a1._2 ++ a2._2 ++ a3._2 ++ a4._2 ++ a5._2 ++ a6._2 ++ a7._2 ++ a8._2 ++ a9._2 ++ a10._2 ++ a11._2)
  597. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  598. }
  599. def withPrefix(prefix: String): ObjectMapping11[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11] = addPrefix(prefix).map(newKey =>
  600. new ObjectMapping11(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, newKey, constraints)
  601. ).getOrElse(this)
  602. def verifying(addConstraints: Constraint[R]*): ObjectMapping11[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11] = {
  603. new ObjectMapping11(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, key, constraints ++ addConstraints.toSeq)
  604. }
  605. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings ++ field4.mappings ++ field5.mappings ++ field6.mappings ++ field7.mappings ++ field8.mappings ++ field9.mappings ++ field10.mappings ++ field11.mappings
  606. }
  607. class ObjectMapping12[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12](apply: Function12[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, R], unapply: Function1[R, Option[(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), f5: (String, Mapping[A5]), f6: (String, Mapping[A6]), f7: (String, Mapping[A7]), f8: (String, Mapping[A8]), f9: (String, Mapping[A9]), f10: (String, Mapping[A10]), f11: (String, Mapping[A11]), f12: (String, Mapping[A12]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  608. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  609. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  610. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  611. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  612. val field5 = f5._2.withPrefix(f5._1).withPrefix(key)
  613. val field6 = f6._2.withPrefix(f6._1).withPrefix(key)
  614. val field7 = f7._2.withPrefix(f7._1).withPrefix(key)
  615. val field8 = f8._2.withPrefix(f8._1).withPrefix(key)
  616. val field9 = f9._2.withPrefix(f9._1).withPrefix(key)
  617. val field10 = f10._2.withPrefix(f10._1).withPrefix(key)
  618. val field11 = f11._2.withPrefix(f11._1).withPrefix(key)
  619. val field12 = f12._2.withPrefix(f12._1).withPrefix(key)
  620. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  621. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data), field5.bind(data), field6.bind(data), field7.bind(data), field8.bind(data), field9.bind(data), field10.bind(data), field11.bind(data), field12.bind(data)) match {
  622. case Left(errors) => Left(errors)
  623. case Right(values) => {
  624. applyConstraints(apply(
  625. values(0).asInstanceOf[A1],
  626. values(1).asInstanceOf[A2],
  627. values(2).asInstanceOf[A3],
  628. values(3).asInstanceOf[A4],
  629. values(4).asInstanceOf[A5],
  630. values(5).asInstanceOf[A6],
  631. values(6).asInstanceOf[A7],
  632. values(7).asInstanceOf[A8],
  633. values(8).asInstanceOf[A9],
  634. values(9).asInstanceOf[A10],
  635. values(10).asInstanceOf[A11],
  636. values(11).asInstanceOf[A12]
  637. ))
  638. }
  639. }
  640. }
  641. def unbind(value: R): Map[String, String] = {
  642. unapply(value).map { fields =>
  643. val (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) = fields
  644. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3) ++ field4.unbind(v4) ++ field5.unbind(v5) ++ field6.unbind(v6) ++ field7.unbind(v7) ++ field8.unbind(v8) ++ field9.unbind(v9) ++ field10.unbind(v10) ++ field11.unbind(v11) ++ field12.unbind(v12)
  645. }.getOrElse(Map.empty)
  646. }
  647. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  648. unapply(value).map { fields =>
  649. val (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) = fields
  650. val a1 = field1.unbindAndValidate(v1)
  651. val a2 = field2.unbindAndValidate(v2)
  652. val a3 = field3.unbindAndValidate(v3)
  653. val a4 = field4.unbindAndValidate(v4)
  654. val a5 = field5.unbindAndValidate(v5)
  655. val a6 = field6.unbindAndValidate(v6)
  656. val a7 = field7.unbindAndValidate(v7)
  657. val a8 = field8.unbindAndValidate(v8)
  658. val a9 = field9.unbindAndValidate(v9)
  659. val a10 = field10.unbindAndValidate(v10)
  660. val a11 = field11.unbindAndValidate(v11)
  661. val a12 = field12.unbindAndValidate(v12)
  662. (a1._1 ++ a2._1 ++ a3._1 ++ a4._1 ++ a5._1 ++ a6._1 ++ a7._1 ++ a8._1 ++ a9._1 ++ a10._1 ++ a11._1 ++ a12._1) ->
  663. (a1._2 ++ a2._2 ++ a3._2 ++ a4._2 ++ a5._2 ++ a6._2 ++ a7._2 ++ a8._2 ++ a9._2 ++ a10._2 ++ a11._2 ++ a12._2)
  664. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  665. }
  666. def withPrefix(prefix: String): ObjectMapping12[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12] = addPrefix(prefix).map(newKey =>
  667. new ObjectMapping12(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, newKey, constraints)
  668. ).getOrElse(this)
  669. def verifying(addConstraints: Constraint[R]*): ObjectMapping12[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12] = {
  670. new ObjectMapping12(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, key, constraints ++ addConstraints.toSeq)
  671. }
  672. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings ++ field4.mappings ++ field5.mappings ++ field6.mappings ++ field7.mappings ++ field8.mappings ++ field9.mappings ++ field10.mappings ++ field11.mappings ++ field12.mappings
  673. }
  674. class ObjectMapping13[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13](apply: Function13[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, R], unapply: Function1[R, Option[(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), f5: (String, Mapping[A5]), f6: (String, Mapping[A6]), f7: (String, Mapping[A7]), f8: (String, Mapping[A8]), f9: (String, Mapping[A9]), f10: (String, Mapping[A10]), f11: (String, Mapping[A11]), f12: (String, Mapping[A12]), f13: (String, Mapping[A13]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  675. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  676. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  677. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  678. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  679. val field5 = f5._2.withPrefix(f5._1).withPrefix(key)
  680. val field6 = f6._2.withPrefix(f6._1).withPrefix(key)
  681. val field7 = f7._2.withPrefix(f7._1).withPrefix(key)
  682. val field8 = f8._2.withPrefix(f8._1).withPrefix(key)
  683. val field9 = f9._2.withPrefix(f9._1).withPrefix(key)
  684. val field10 = f10._2.withPrefix(f10._1).withPrefix(key)
  685. val field11 = f11._2.withPrefix(f11._1).withPrefix(key)
  686. val field12 = f12._2.withPrefix(f12._1).withPrefix(key)
  687. val field13 = f13._2.withPrefix(f13._1).withPrefix(key)
  688. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  689. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data), field5.bind(data), field6.bind(data), field7.bind(data), field8.bind(data), field9.bind(data), field10.bind(data), field11.bind(data), field12.bind(data), field13.bind(data)) match {
  690. case Left(errors) => Left(errors)
  691. case Right(values) => {
  692. applyConstraints(apply(
  693. values(0).asInstanceOf[A1],
  694. values(1).asInstanceOf[A2],
  695. values(2).asInstanceOf[A3],
  696. values(3).asInstanceOf[A4],
  697. values(4).asInstanceOf[A5],
  698. values(5).asInstanceOf[A6],
  699. values(6).asInstanceOf[A7],
  700. values(7).asInstanceOf[A8],
  701. values(8).asInstanceOf[A9],
  702. values(9).asInstanceOf[A10],
  703. values(10).asInstanceOf[A11],
  704. values(11).asInstanceOf[A12],
  705. values(12).asInstanceOf[A13]
  706. ))
  707. }
  708. }
  709. }
  710. def unbind(value: R): Map[String, String] = {
  711. unapply(value).map { fields =>
  712. val (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) = fields
  713. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3) ++ field4.unbind(v4) ++ field5.unbind(v5) ++ field6.unbind(v6) ++ field7.unbind(v7) ++ field8.unbind(v8) ++ field9.unbind(v9) ++ field10.unbind(v10) ++ field11.unbind(v11) ++ field12.unbind(v12) ++ field13.unbind(v13)
  714. }.getOrElse(Map.empty)
  715. }
  716. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  717. unapply(value).map { fields =>
  718. val (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) = fields
  719. val a1 = field1.unbindAndValidate(v1)
  720. val a2 = field2.unbindAndValidate(v2)
  721. val a3 = field3.unbindAndValidate(v3)
  722. val a4 = field4.unbindAndValidate(v4)
  723. val a5 = field5.unbindAndValidate(v5)
  724. val a6 = field6.unbindAndValidate(v6)
  725. val a7 = field7.unbindAndValidate(v7)
  726. val a8 = field8.unbindAndValidate(v8)
  727. val a9 = field9.unbindAndValidate(v9)
  728. val a10 = field10.unbindAndValidate(v10)
  729. val a11 = field11.unbindAndValidate(v11)
  730. val a12 = field12.unbindAndValidate(v12)
  731. val a13 = field13.unbindAndValidate(v13)
  732. (a1._1 ++ a2._1 ++ a3._1 ++ a4._1 ++ a5._1 ++ a6._1 ++ a7._1 ++ a8._1 ++ a9._1 ++ a10._1 ++ a11._1 ++ a12._1 ++ a13._1) ->
  733. (a1._2 ++ a2._2 ++ a3._2 ++ a4._2 ++ a5._2 ++ a6._2 ++ a7._2 ++ a8._2 ++ a9._2 ++ a10._2 ++ a11._2 ++ a12._2 ++ a13._2)
  734. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  735. }
  736. def withPrefix(prefix: String): ObjectMapping13[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13] = addPrefix(prefix).map(newKey =>
  737. new ObjectMapping13(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, newKey, constraints)
  738. ).getOrElse(this)
  739. def verifying(addConstraints: Constraint[R]*): ObjectMapping13[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13] = {
  740. new ObjectMapping13(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, key, constraints ++ addConstraints.toSeq)
  741. }
  742. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings ++ field4.mappings ++ field5.mappings ++ field6.mappings ++ field7.mappings ++ field8.mappings ++ field9.mappings ++ field10.mappings ++ field11.mappings ++ field12.mappings ++ field13.mappings
  743. }
  744. class ObjectMapping14[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14](apply: Function14[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, R], unapply: Function1[R, Option[(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), f5: (String, Mapping[A5]), f6: (String, Mapping[A6]), f7: (String, Mapping[A7]), f8: (String, Mapping[A8]), f9: (String, Mapping[A9]), f10: (String, Mapping[A10]), f11: (String, Mapping[A11]), f12: (String, Mapping[A12]), f13: (String, Mapping[A13]), f14: (String, Mapping[A14]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  745. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  746. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  747. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  748. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  749. val field5 = f5._2.withPrefix(f5._1).withPrefix(key)
  750. val field6 = f6._2.withPrefix(f6._1).withPrefix(key)
  751. val field7 = f7._2.withPrefix(f7._1).withPrefix(key)
  752. val field8 = f8._2.withPrefix(f8._1).withPrefix(key)
  753. val field9 = f9._2.withPrefix(f9._1).withPrefix(key)
  754. val field10 = f10._2.withPrefix(f10._1).withPrefix(key)
  755. val field11 = f11._2.withPrefix(f11._1).withPrefix(key)
  756. val field12 = f12._2.withPrefix(f12._1).withPrefix(key)
  757. val field13 = f13._2.withPrefix(f13._1).withPrefix(key)
  758. val field14 = f14._2.withPrefix(f14._1).withPrefix(key)
  759. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  760. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data), field5.bind(data), field6.bind(data), field7.bind(data), field8.bind(data), field9.bind(data), field10.bind(data), field11.bind(data), field12.bind(data), field13.bind(data), field14.bind(data)) match {
  761. case Left(errors) => Left(errors)
  762. case Right(values) => {
  763. applyConstraints(apply(
  764. values(0).asInstanceOf[A1],
  765. values(1).asInstanceOf[A2],
  766. values(2).asInstanceOf[A3],
  767. values(3).asInstanceOf[A4],
  768. values(4).asInstanceOf[A5],
  769. values(5).asInstanceOf[A6],
  770. values(6).asInstanceOf[A7],
  771. values(7).asInstanceOf[A8],
  772. values(8).asInstanceOf[A9],
  773. values(9).asInstanceOf[A10],
  774. values(10).asInstanceOf[A11],
  775. values(11).asInstanceOf[A12],
  776. values(12).asInstanceOf[A13],
  777. values(13).asInstanceOf[A14]
  778. ))
  779. }
  780. }
  781. }
  782. def unbind(value: R): Map[String, String] = {
  783. unapply(value).map { fields =>
  784. val (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) = fields
  785. field1.unbind(v1) ++ field2.unbind(v2) ++ field3.unbind(v3) ++ field4.unbind(v4) ++ field5.unbind(v5) ++ field6.unbind(v6) ++ field7.unbind(v7) ++ field8.unbind(v8) ++ field9.unbind(v9) ++ field10.unbind(v10) ++ field11.unbind(v11) ++ field12.unbind(v12) ++ field13.unbind(v13) ++ field14.unbind(v14)
  786. }.getOrElse(Map.empty)
  787. }
  788. def unbindAndValidate(value: R): (Map[String, String], Seq[FormError]) = {
  789. unapply(value).map { fields =>
  790. val (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) = fields
  791. val a1 = field1.unbindAndValidate(v1)
  792. val a2 = field2.unbindAndValidate(v2)
  793. val a3 = field3.unbindAndValidate(v3)
  794. val a4 = field4.unbindAndValidate(v4)
  795. val a5 = field5.unbindAndValidate(v5)
  796. val a6 = field6.unbindAndValidate(v6)
  797. val a7 = field7.unbindAndValidate(v7)
  798. val a8 = field8.unbindAndValidate(v8)
  799. val a9 = field9.unbindAndValidate(v9)
  800. val a10 = field10.unbindAndValidate(v10)
  801. val a11 = field11.unbindAndValidate(v11)
  802. val a12 = field12.unbindAndValidate(v12)
  803. val a13 = field13.unbindAndValidate(v13)
  804. val a14 = field14.unbindAndValidate(v14)
  805. (a1._1 ++ a2._1 ++ a3._1 ++ a4._1 ++ a5._1 ++ a6._1 ++ a7._1 ++ a8._1 ++ a9._1 ++ a10._1 ++ a11._1 ++ a12._1 ++ a13._1 ++ a14._1) ->
  806. (a1._2 ++ a2._2 ++ a3._2 ++ a4._2 ++ a5._2 ++ a6._2 ++ a7._2 ++ a8._2 ++ a9._2 ++ a10._2 ++ a11._2 ++ a12._2 ++ a13._2 ++ a14._2)
  807. }.getOrElse(Map.empty[String, String] -> Seq(FormError(key, "unbind.failed")))
  808. }
  809. def withPrefix(prefix: String): ObjectMapping14[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14] = addPrefix(prefix).map(newKey =>
  810. new ObjectMapping14(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, newKey, constraints)
  811. ).getOrElse(this)
  812. def verifying(addConstraints: Constraint[R]*): ObjectMapping14[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14] = {
  813. new ObjectMapping14(apply, unapply, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, key, constraints ++ addConstraints.toSeq)
  814. }
  815. val mappings = Seq(this) ++ field1.mappings ++ field2.mappings ++ field3.mappings ++ field4.mappings ++ field5.mappings ++ field6.mappings ++ field7.mappings ++ field8.mappings ++ field9.mappings ++ field10.mappings ++ field11.mappings ++ field12.mappings ++ field13.mappings ++ field14.mappings
  816. }
  817. class ObjectMapping15[R, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15](apply: Function15[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, R], unapply: Function1[R, Option[(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15)]], f1: (String, Mapping[A1]), f2: (String, Mapping[A2]), f3: (String, Mapping[A3]), f4: (String, Mapping[A4]), f5: (String, Mapping[A5]), f6: (String, Mapping[A6]), f7: (String, Mapping[A7]), f8: (String, Mapping[A8]), f9: (String, Mapping[A9]), f10: (String, Mapping[A10]), f11: (String, Mapping[A11]), f12: (String, Mapping[A12]), f13: (String, Mapping[A13]), f14: (String, Mapping[A14]), f15: (String, Mapping[A15]), val key: String = "", val constraints: Seq[Constraint[R]] = Nil) extends Mapping[R] with ObjectMapping {
  818. val field1 = f1._2.withPrefix(f1._1).withPrefix(key)
  819. val field2 = f2._2.withPrefix(f2._1).withPrefix(key)
  820. val field3 = f3._2.withPrefix(f3._1).withPrefix(key)
  821. val field4 = f4._2.withPrefix(f4._1).withPrefix(key)
  822. val field5 = f5._2.withPrefix(f5._1).withPrefix(key)
  823. val field6 = f6._2.withPrefix(f6._1).withPrefix(key)
  824. val field7 = f7._2.withPrefix(f7._1).withPrefix(key)
  825. val field8 = f8._2.withPrefix(f8._1).withPrefix(key)
  826. val field9 = f9._2.withPrefix(f9._1).withPrefix(key)
  827. val field10 = f10._2.withPrefix(f10._1).withPrefix(key)
  828. val field11 = f11._2.withPrefix(f11._1).withPrefix(key)
  829. val field12 = f12._2.withPrefix(f12._1).withPrefix(key)
  830. val field13 = f13._2.withPrefix(f13._1).withPrefix(key)
  831. val field14 = f14._2.withPrefix(f14._1).withPrefix(key)
  832. val field15 = f15._2.withPrefix(f15._1).withPrefix(key)
  833. def bind(data: Map[String, String]): Either[Seq[FormError], R] = {
  834. merge(field1.bind(data), field2.bind(data), field3.bind(data), field4.bind(data), field5.bind(data), field6.bind(data), field7

Large files files are truncated, but you can click here to view the full file