diff options
Diffstat (limited to 'src/main/scala/reading/models/FilterFactory.scala')
-rw-r--r-- | src/main/scala/reading/models/FilterFactory.scala | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/scala/reading/models/FilterFactory.scala b/src/main/scala/reading/models/FilterFactory.scala index 269af82..c7b9fbf 100644 --- a/src/main/scala/reading/models/FilterFactory.scala +++ b/src/main/scala/reading/models/FilterFactory.scala @@ -15,6 +15,16 @@ object FilterFactory { } } + implicit object GroupedTheme extends FilterFactory[GroupedTheme] { + def create(groupedTheme: GroupedTheme): Filter = + new Filter { + def filter(book: Book): Boolean = book.themes.map(Theme.groupedTheme).contains(groupedTheme) + val kind: FilterKind = FilterKind.GroupedTheme + val nonFormattedName: String = groupedTheme.toString() + val name: String = groupedTheme.prettyPrint() + } + } + implicit object ThemeFilter extends FilterFactory[Theme] { def create(theme: Theme): Filter = new Filter { |