aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStewart Stewart <stewinsalot@gmail.com>2016-12-12 14:18:24 -0800
committerStewart Stewart <stewinsalot@gmail.com>2016-12-12 15:37:02 -0800
commitd4d19ed3953b7f0530dd70b4f0c096cc68e2b7ec (patch)
treed0b99a9335aa89198e4e7a4c39cf5fabbd9908b1
parent33d826b408b6fc6c62128e4fa6612407eef7567c (diff)
downloaddriver-core-d4d19ed3953b7f0530dd70b4f0c096cc68e2b7ec.tar.gz
driver-core-d4d19ed3953b7f0530dd70b4f0c096cc68e2b7ec.tar.bz2
driver-core-d4d19ed3953b7f0530dd70b4f0c096cc68e2b7ec.zip
separate the clashing Id type mappers into traits
-rw-r--r--src/main/scala/xyz/driver/core/database.scala28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/main/scala/xyz/driver/core/database.scala b/src/main/scala/xyz/driver/core/database.scala
index d337b8b..80348d8 100644
--- a/src/main/scala/xyz/driver/core/database.scala
+++ b/src/main/scala/xyz/driver/core/database.scala
@@ -33,22 +33,38 @@ object database {
}
trait ColumnTypes {
- import java.util.UUID
-
val profile: JdbcProfile
import profile.api._
- implicit def `xyz.driver.core.Id.columnTypeFromLong`[T]: BaseColumnType[Id[T]] =
- MappedColumnType.base[Id[T], Long](_.value.toLong, serialId => Id[T](serialId.toString))
+ implicit def `xyz.driver.core.Id.columnType`[T]: BaseColumnType[Id[T]]
implicit def `xyz.driver.core.Name.columnType`[T]: BaseColumnType[Name[T]] =
MappedColumnType.base[Name[T], String](_.value, Name[T](_))
implicit def `xyz.driver.core.time.Time.columnType`: BaseColumnType[Time] =
MappedColumnType.base[Time, Long](_.millis, Time(_))
+ }
+
+ object ColumnTypes {
+ trait UUIDPrimaryKey extends ColumnTypes {
+ import java.util.UUID
+ import profile.api._
+
+ override implicit def `xyz.driver.core.Id.columnType`[T]: BaseColumnType[Id[T]] =
+ MappedColumnType.base[Id[T], UUID](id => UUID.fromString(id.value), uuid => Id[T](uuid.toString))
+ }
+ trait SerialIdPrimaryKey extends ColumnTypes {
+ import profile.api._
+
+ override implicit def `xyz.driver.core.Id.columnType`[T]: BaseColumnType[Id[T]] =
+ MappedColumnType.base[Id[T], Long](_.value.toLong, serialId => Id[T](serialId.toString))
+ }
+ trait NaturalPrimaryKey extends ColumnTypes {
+ import profile.api._
- implicit def `xyz.driver.core.Id.columnTypeFromUUID`[T]: BaseColumnType[Id[T]] =
- MappedColumnType.base[Id[T], UUID](id => UUID.fromString(id.value), uuid => Id[T](uuid.toString))
+ override implicit def `xyz.driver.core.Id.columnType`[T]: BaseColumnType[Id[T]] =
+ MappedColumnType.base[Id[T], String](_.value, Id[T](_))
+ }
}
trait DatabaseObject extends ColumnTypes {