diff options
author | Joris | 2016-12-21 20:04:26 +0100 |
---|---|---|
committer | Joris | 2016-12-21 20:07:24 +0100 |
commit | 797616a9f8aec4d1362ef9e53b3782327a0079cc (patch) | |
tree | 9f9ebcb976184b9f5f5f284d4514145e324ae9b9 /src/main/scala/reading/models/Filter.scala | |
parent | 92100eeb139e8de68620b3524519b66a641e2e0c (diff) | |
download | reading-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.scala | 11 |
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 { |