aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/reading/models/Filter.scala
diff options
context:
space:
mode:
authorJoris2016-12-21 20:04:26 +0100
committerJoris2016-12-21 20:07:24 +0100
commit797616a9f8aec4d1362ef9e53b3782327a0079cc (patch)
tree9f9ebcb976184b9f5f5f284d4514145e324ae9b9 /src/main/scala/reading/models/Filter.scala
parent92100eeb139e8de68620b3524519b66a641e2e0c (diff)
downloadreading-797616a9f8aec4d1362ef9e53b3782327a0079cc.tar.gz
reading-797616a9f8aec4d1362ef9e53b3782327a0079cc.tar.bz2
reading-797616a9f8aec4d1362ef9e53b3782327a0079cc.zip
Add period and difficulty
Diffstat (limited to 'src/main/scala/reading/models/Filter.scala')
-rw-r--r--src/main/scala/reading/models/Filter.scala11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main/scala/reading/models/Filter.scala b/src/main/scala/reading/models/Filter.scala
index c4836bb..5e96cf9 100644
--- a/src/main/scala/reading/models/Filter.scala
+++ b/src/main/scala/reading/models/Filter.scala
@@ -7,8 +7,10 @@ trait Filter {
}
sealed trait FilterKind
+case object PeriodKind extends FilterKind
case object ThemeKind extends FilterKind
case object GenreKind extends FilterKind
+case object DifficultyKind extends FilterKind
object Filter {
def apply[T](in: T)(implicit filterFactory: FilterFactory[T]): Filter =
@@ -26,6 +28,15 @@ trait FilterFactory[T] {
}
object FilterFactory {
+ implicit object PeriodFilter extends FilterFactory[Period] {
+ def create(period: Period): Filter =
+ new Filter {
+ def filter(book: Book): Boolean = book.period == period
+ val kind: FilterKind = PeriodKind
+ val name: String = period.toString()
+ }
+ }
+
implicit object ThemeFilter extends FilterFactory[Theme] {
def create(theme: Theme): Filter =
new Filter {