package reading.models import enumeratum._ sealed trait Grade extends EnumEntry with Ordered[Grade] { import Grade._ def compare(that: Grade): Int = { values.indexOf(this) - values.indexOf(that) } def prettyPrint(): String = this match { case Sixieme => "6ème" case Cinquieme => "5ème" case Quatrieme => "4ème" case Troisieme => "3ème" } } object Grade extends Enum[Grade] { val values = findValues case object Sixieme extends Grade case object Cinquieme extends Grade case object Quatrieme extends Grade case object Troisieme extends Grade def from(program: Program): Grade = { import Program._ program match { case Monstre | RecitsAventure | CreationPoetique | Resister => Sixieme case VoyageEtAventure | Autrui | UniversNouveaux | Heros | HommeEtNature => Cinquieme case DireAmour | Valeurs | Reel | Informer | Ville => Quatrieme case SeRaconter | TraversSociete | VisionsPoetiques | Agir | ProgresReveScientifique => Troisieme } } }