aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuicommon/db/SqlContext.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuicommon/db/SqlContext.scala')
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/db/SqlContext.scala48
1 files changed, 24 insertions, 24 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/db/SqlContext.scala b/src/main/scala/xyz/driver/pdsuicommon/db/SqlContext.scala
index 5aa0084..7477e71 100644
--- a/src/main/scala/xyz/driver/pdsuicommon/db/SqlContext.scala
+++ b/src/main/scala/xyz/driver/pdsuicommon/db/SqlContext.scala
@@ -51,8 +51,7 @@ object SqlContext extends PhiLogging {
}
class SqlContext(dataSource: DataSource with Closeable, settings: Settings)
- extends MysqlJdbcContext[MysqlEscape](dataSource)
- with EntityExtractorDerivation[Literal] {
+ extends MysqlJdbcContext[MysqlEscape](dataSource) with EntityExtractorDerivation[Literal] {
private val tpe = Executors.newFixedThreadPool(settings.threadPoolSize)
@@ -77,31 +76,31 @@ class SqlContext(dataSource: DataSource with Closeable, settings: Settings)
implicit override def optionDecoder[T](implicit d: Decoder[T]): Decoder[Option[T]] =
decoder(
sqlType = d.sqlType,
- row => index => {
- try {
- val res = d(index - 1, row)
- if (row.wasNull) {
- None
+ row =>
+ index => {
+ try {
+ val res = d(index - 1, row)
+ if (row.wasNull) {
+ None
+ } else {
+ Some(res)
+ }
+ } catch {
+ case _: NullPointerException => None
+ case _: IncorrectIdException => None
}
- else {
- Some(res)
- }
- } catch {
- case _: NullPointerException => None
- case _: IncorrectIdException => None
- }
}
)
implicit def encodeStringId[T] = MappedEncoding[StringId[T], String](_.id)
implicit def decodeStringId[T] = MappedEncoding[String, StringId[T]] {
case "" => throw IncorrectIdException("'' is an invalid Id value")
- case x => StringId(x)
+ case x => StringId(x)
}
def decodeOptStringId[T] = MappedEncoding[Option[String], Option[StringId[T]]] {
case None | Some("") => None
- case Some(x) => Some(StringId(x))
+ case Some(x) => Some(StringId(x))
}
implicit def encodeLongId[T] = MappedEncoding[LongId[T], Long](_.id)
@@ -113,21 +112,22 @@ class SqlContext(dataSource: DataSource with Closeable, settings: Settings)
// TODO Dirty hack, see REP-475
def decodeOptLongId[T] = MappedEncoding[Option[Long], Option[LongId[T]]] {
case None | Some(0) => None
- case Some(x) => Some(LongId(x))
+ case Some(x) => Some(LongId(x))
}
implicit def encodeUuidId[T] = MappedEncoding[UuidId[T], String](_.toString)
implicit def decodeUuidId[T] = MappedEncoding[String, UuidId[T]] {
case "" => throw IncorrectIdException("'' is an invalid Id value")
- case x => UuidId(x)
+ case x => UuidId(x)
}
def decodeOptUuidId[T] = MappedEncoding[Option[String], Option[UuidId[T]]] {
case None | Some("") => None
- case Some(x) => Some(UuidId(x))
+ case Some(x) => Some(UuidId(x))
}
- implicit def encodeTextJson[T: Manifest] = MappedEncoding[TextJson[T], String](x => JsonSerializer.serialize(x.content))
+ implicit def encodeTextJson[T: Manifest] =
+ MappedEncoding[TextJson[T], String](x => JsonSerializer.serialize(x.content))
implicit def decodeTextJson[T: Manifest] = MappedEncoding[String, TextJson[T]] { x =>
TextJson(JsonSerializer.deserialize[T](x))
}
@@ -153,14 +153,14 @@ class SqlContext(dataSource: DataSource with Closeable, settings: Settings)
implicit val encodeFuzzyValue = {
MappedEncoding[FuzzyValue, String] {
- case FuzzyValue.No => "No"
- case FuzzyValue.Yes => "Yes"
+ case FuzzyValue.No => "No"
+ case FuzzyValue.Yes => "Yes"
case FuzzyValue.Maybe => "Maybe"
}
}
implicit val decodeFuzzyValue = MappedEncoding[String, FuzzyValue] {
- case "Yes" => FuzzyValue.Yes
- case "No" => FuzzyValue.No
+ case "Yes" => FuzzyValue.Yes
+ case "No" => FuzzyValue.No
case "Maybe" => FuzzyValue.Maybe
case x =>
Option(x).fold {