diff options
Diffstat (limited to 'src/main/scala/reading/models/Level.scala')
-rw-r--r-- | src/main/scala/reading/models/Level.scala | 41 |
1 files changed, 22 insertions, 19 deletions
diff --git a/src/main/scala/reading/models/Level.scala b/src/main/scala/reading/models/Level.scala index c297912..ebec020 100644 --- a/src/main/scala/reading/models/Level.scala +++ b/src/main/scala/reading/models/Level.scala @@ -1,22 +1,25 @@ package reading.models -object Level { - val filters: Seq[Filter] = - Seq( - new Filter { - def filter(book: Book): Boolean = book.pages < 200 - val kind: FilterKind = LevelKind - val name: String = "facile" - }, - new Filter { - def filter(book: Book): Boolean = book.pages >= 200 && book.pages < 400 - val kind: FilterKind = LevelKind - val name: String = "moyen" - }, - new Filter { - def filter(book: Book): Boolean = book.pages > 400 - val kind: FilterKind = LevelKind - val name: String = "difficile" - } - ) +import enumeratum._ + +sealed trait Level extends EnumEntry with Ordered[Level] { + import Level._ + + def compare(that: Level): Int = { + values.indexOf(that) - values.indexOf(this) + } + + override def toString(): String = this match { + case Facile => "facile" + case Moyen => "moyen" + case Difficile => "difficile" + } +} + +object Level extends Enum[Level] { + val values = findValues + + case object Facile extends Level + case object Moyen extends Level + case object Difficile extends Level } |