diff options
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" |