diff options
author | vlad <vlad@driver.xyz> | 2017-06-13 16:15:07 -0700 |
---|---|---|
committer | vlad <vlad@driver.xyz> | 2017-06-13 16:15:07 -0700 |
commit | 91a4120b4253dc4a1e9552ec39fcb25c303a21e1 (patch) | |
tree | 9173797ed8e3d780f98ac8d0f85507eeb10c8016 /src/main/scala/xyz/driver/pdsuicommon/db/EntityExtractorDerivation.scala | |
parent | cd1b635b2ae90d9ac2d8b1779183a1fbd8c5fd5c (diff) | |
download | rest-query-91a4120b4253dc4a1e9552ec39fcb25c303a21e1.tar.gz rest-query-91a4120b4253dc4a1e9552ec39fcb25c303a21e1.tar.bz2 rest-query-91a4120b4253dc4a1e9552ec39fcb25c303a21e1.zip |
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuicommon/db/EntityExtractorDerivation.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuicommon/db/EntityExtractorDerivation.scala | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/db/EntityExtractorDerivation.scala b/src/main/scala/xyz/driver/pdsuicommon/db/EntityExtractorDerivation.scala index e13ea39..02ba322 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/db/EntityExtractorDerivation.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/db/EntityExtractorDerivation.scala @@ -8,13 +8,12 @@ import io.getquill.dsl.EncodingDsl import scala.language.experimental.macros import scala.reflect.macros.blackbox -trait EntityExtractorDerivation[Naming <: NamingStrategy] { - this: EncodingDsl => +trait EntityExtractorDerivation[Naming <: NamingStrategy] { this: EncodingDsl => - /** - * Simple Quill extractor derivation for [[T]] - * Only case classes available. Type parameters is not supported - */ + /* + Simple Quill extractor derivation for [[T]] + Only case classes available. Type parameters is not supported + */ def entityExtractor[T]: (ResultSet => T) = macro EntityExtractorDerivation.impl[T] } @@ -34,16 +33,16 @@ object EntityExtractorDerivation { case cons: MethodSymbol if cons.isConstructor => // Create param list for constructor val params = cons.paramLists.flatten.map { param => - val t = param.typeSignature + val t = param.typeSignature val paramName = param.name.toString - val col = q"$namingStrategy.column($paramName)" + val col = q"$namingStrategy.column($paramName)" // Resolve implicit decoders (from SqlContext) and apply ResultSet for each val d = q"implicitly[${c.prefix}.Decoder[$t]]" // Minus 1 cause Quill JDBC decoders make plus one. // ¯\_(ツ)_/¯ - val i = q"row.findColumn($col) - 1" + val i = q"row.findColumn($col) - 1" val decoderName = TermName(paramName + "Decoder") - val valueName = TermName(paramName + "Value") + val valueName = TermName(paramName + "Value") ( q"val $decoderName = $d", q"val $valueName = $decoderName($i, row)", @@ -59,8 +58,7 @@ object EntityExtractorDerivation { } resultOpt match { case Some(result) => result - case None => c.abort(c.enclosingPosition, - s"Can not derive extractor for $tpe. Constructor not found.") + case None => c.abort(c.enclosingPosition, s"Can not derive extractor for $tpe. Constructor not found.") } } q"(row: java.sql.ResultSet) => $functionBody" |