diff options
author | Stewart Stewart <stewinsalot@gmail.com> | 2016-12-12 14:18:24 -0800 |
---|---|---|
committer | Stewart Stewart <stewinsalot@gmail.com> | 2016-12-12 15:37:02 -0800 |
commit | d4d19ed3953b7f0530dd70b4f0c096cc68e2b7ec (patch) | |
tree | d0b99a9335aa89198e4e7a4c39cf5fabbd9908b1 /src/main/scala | |
parent | 33d826b408b6fc6c62128e4fa6612407eef7567c (diff) | |
download | driver-core-d4d19ed3953b7f0530dd70b4f0c096cc68e2b7ec.tar.gz driver-core-d4d19ed3953b7f0530dd70b4f0c096cc68e2b7ec.tar.bz2 driver-core-d4d19ed3953b7f0530dd70b4f0c096cc68e2b7ec.zip |
separate the clashing Id type mappers into traits
Diffstat (limited to 'src/main/scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/database.scala | 28 |
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 { |