Enum and map
object ViewsEnumeration extends Enumeration {
val One = Value("/one", "some info")
val Two = Value("/two", "some info")
val Three = Value("/three", "some info")
case class ViewVal(val viewId: String, val someNewInfo: String) extends Val(viewId)
protected final def Value(viewId: String, someNewInfo: String): ViewVal = ViewVal(viewId, someNewInfo)
def get(name: String): ViewVal = withName(name).asInstanceOf[ViewVal]
}
println(ViewsEnumeration.One.someNewInfo)
ViewsEnumeration.get("/two").someNewInfo