aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStewart Stewart <stewinsalot@gmail.com>2016-12-19 18:09:52 -0500
committerStewart Stewart <stewinsalot@gmail.com>2016-12-19 18:11:52 -0500
commit514c334dcd3a8b98f41610709b9cafd761899778 (patch)
treef5883e28553af2e699d3ac6556b8a760ef7d8791
parent2f6a2d763732285dc1cffb0d3a435a9e9c96cbd2 (diff)
downloaddriver-core-514c334dcd3a8b98f41610709b9cafd761899778.tar.gz
driver-core-514c334dcd3a8b98f41610709b9cafd761899778.tar.bz2
driver-core-514c334dcd3a8b98f41610709b9cafd761899778.zip
move java date helpers out of date.Date
-rw-r--r--src/main/scala/xyz/driver/core/database/database.scala2
-rw-r--r--src/main/scala/xyz/driver/core/database/package.scala17
-rw-r--r--src/main/scala/xyz/driver/core/date.scala26
-rw-r--r--src/main/scala/xyz/driver/core/time.scala2
4 files changed, 29 insertions, 18 deletions
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) {