From 514c334dcd3a8b98f41610709b9cafd761899778 Mon Sep 17 00:00:00 2001 From: Stewart Stewart Date: Mon, 19 Dec 2016 18:09:52 -0500 Subject: move java date helpers out of date.Date --- .../scala/xyz/driver/core/database/database.scala | 2 +- .../scala/xyz/driver/core/database/package.scala | 17 ++++++++++++++ src/main/scala/xyz/driver/core/date.scala | 26 +++++++++------------- src/main/scala/xyz/driver/core/time.scala | 2 +- 4 files changed, 29 insertions(+), 18 deletions(-) (limited to 'src/main/scala/xyz/driver') diff --git a/src/main/scala/xyz/driver/core/database/database.scala b/src/main/scala/xyz/driver/core/database/database.scala index 3db9c9e..a8aec63 100644 --- a/src/main/scala/xyz/driver/core/database/database.scala +++ b/src/main/scala/xyz/driver/core/database/database.scala @@ -39,7 +39,7 @@ package database { MappedColumnType.base[Time, Long](_.millis, Time(_)) implicit def `xyz.driver.core.time.Date.columnType`: BaseColumnType[Date] = - MappedColumnType.base[Date, java.sql.Date](_.toJavaSqlDate, Date.fromJavaDate(_)) + MappedColumnType.base[Date, java.sql.Date](dateToSqlDate(_), sqlDateToDate(_)) } object ColumnTypes { diff --git a/src/main/scala/xyz/driver/core/database/package.scala b/src/main/scala/xyz/driver/core/database/package.scala index a664cff..295e556 100644 --- a/src/main/scala/xyz/driver/core/database/package.scala +++ b/src/main/scala/xyz/driver/core/database/package.scala @@ -1,8 +1,25 @@ +package xyz.driver.core + +import java.sql.{Date => SqlDate} +import java.util.Calendar + +import date.{Date, javaDateToDate} import slick.dbio.{DBIOAction, NoStream} + package object database { type Schema = { def create: DBIOAction[Unit, NoStream, slick.dbio.Effect.Schema] def drop: DBIOAction[Unit, NoStream, slick.dbio.Effect.Schema] } + + private[database] def sqlDateToDate(date: SqlDate): Date = javaDateToDate(date) + + private[database] def dateToSqlDate(date: Date): SqlDate = { + val cal = Calendar.getInstance() + cal.set(Calendar.YEAR, date.year - 1900) + cal.set(Calendar.MONTH, date.month) + cal.set(Calendar.DAY_OF_MONTH, date.day) + new SqlDate(cal.getTime.getTime) + } } diff --git a/src/main/scala/xyz/driver/core/date.scala b/src/main/scala/xyz/driver/core/date.scala index b954749..476cd13 100644 --- a/src/main/scala/xyz/driver/core/date.scala +++ b/src/main/scala/xyz/driver/core/date.scala @@ -21,22 +21,16 @@ object date { val DECEMBER = tagMonth(Calendar.DECEMBER) } - final case class Date(year: Int, month: Month, day: Int) { - def toJavaSqlDate = new java.sql.Date(toJavaDate.getTime) - def toJavaDate: java.util.Date = { - val cal = Calendar.getInstance() - cal.set(Calendar.YEAR, year - 1900) - cal.set(Calendar.MONTH, month) - cal.set(Calendar.DAY_OF_MONTH, day) - cal.getTime - } - } + final case class Date(year: Int, month: Month, day: Int) - object Date { - def fromJavaDate(date: java.util.Date) = { - val cal = Calendar.getInstance() - cal.setTime(date) - Date(cal.get(Calendar.YEAR), tagMonth(cal.get(Calendar.MONTH)), cal.get(Calendar.DAY_OF_MONTH)) - } + private[core] def javaDateToDate(javaDate: java.util.Date): Date = { + val cal = Calendar.getInstance() + cal.setTime(javaDate) + Date( + cal.get(Calendar.YEAR), + date.tagMonth(cal.get(Calendar.MONTH)), + cal.get(Calendar.DAY_OF_MONTH)) } + + } diff --git a/src/main/scala/xyz/driver/core/time.scala b/src/main/scala/xyz/driver/core/time.scala index 9d3f655..6d76939 100644 --- a/src/main/scala/xyz/driver/core/time.scala +++ b/src/main/scala/xyz/driver/core/time.scala @@ -27,7 +27,7 @@ object time { def advanceBy(duration: Duration): Time = Time(millis + duration.toMillis) - def toDate: date.Date = date.Date.fromJavaDate(new java.util.Date(millis)) + def toDate: date.Date = date.javaDateToDate(new java.util.Date(millis)) } final case class TimeRange(start: Time, end: Time) { -- cgit v1.2.3