package reading.models import enumeratum._ sealed trait GroupedTheme extends EnumEntry with Ordered[GroupedTheme] { import GroupedTheme._ def compare(that: GroupedTheme): Int = Compare.format(this.prettyPrint).compare(Compare.format(that.prettyPrint)) def prettyPrint(): String = this match { case Culture => "culture" case Decouverte => "découverte" case Histoire => "histoire" case Humour => "humour" case Stratageme => "stratagème" case Peur => "peur" case Quotidien => "quotidien" case Technologie => "technologie" case Violence => "violence" case Mort => "mort" case Difference => "différence" case Imaginaire => "imaginaire" } } object GroupedTheme extends Enum[GroupedTheme] { val values = findValues case object Culture extends GroupedTheme case object Decouverte extends GroupedTheme case object Histoire extends GroupedTheme case object Humour extends GroupedTheme case object Stratageme extends GroupedTheme case object Peur extends GroupedTheme case object Quotidien extends GroupedTheme case object Technologie extends GroupedTheme case object Violence extends GroupedTheme case object Mort extends GroupedTheme case object Difference extends GroupedTheme case object Imaginaire extends GroupedTheme def from(theme: Theme): GroupedTheme = { import Theme._ theme match { case Art | Americain | Danse | Litterature | Musique | Mythologie | Poetique | Reecriture | Sport => Culture case Nature | Aventure | Initiation | Pirate | Voyage | Animal => Decouverte case Dragon | Magie => Imaginaire case Mutant | Beaute | Handicap | Homosexualite | Laideur | Metamorphose | Marginalite | Migration | Metissage | Pauvrete | Discrimination => Difference case Maltraitance | Viol | Combat | Conflit | Crime | Harcelement | Exclusion | Racisme | Antisemitisme | SegregationRaciale | Prison => Violence case Chevalerie | Cour | Dictature | Guerre | Nazisme | Revolution => Histoire case Theme.Humour => GroupedTheme.Humour case Enquete | Manipulation | Mensonge | Secret | Espionnage | Complot => Stratageme case Fantome | Folie | Malediction | Vampire | Monstrueux => Peur case Suicide | Deuil | Maladie | Immortalite | Vieillesse => Mort case Adolescence | Amour | Amitie | Apprentissage | College | Ecole | Emancipation | Sentiment | Sexualite | Enfants | Femme | Parents | Famille => Quotidien case Genetique | Internet | JeuVideo | Robot => Technologie } } }