Naming convention about the Scala enumeration types? -


what's naming convention scala enumeration type? example, in below code:

object eventtype extends enumeration {     type eventtype = value      val registered = value("registered")     val started = value("started") }  /**  * event fires under specific life cycle  *  * @param eventtype [[eventtype.eventtype]]  */  case class event(eventtype: eventtype.eventtype) 

the above code follows same style described in scala doc. question here can see name of "eventtype.eventtype" quite redundant , quite strange when compared enum definitions in other languages java or c#.

so i'm wondering if there recommended naming style improve readability?

thanks in advance.

to shorten can use import underscore import object eventtype. instead of import eventtype use import eventtype._. here example:

scala> object eventtype extends enumeration {      |     type eventtype = value      |      |     val registered = value("registered")      |     val started = value("started")      | } defined object eventtype  scala> object test {      | import eventtype._      |      | case class event(eventtype: eventtype)      | } defined object test 

things might seem confusing because eventtype name of object , eventtype.eventtype type of enum. if use way:

eventtype.registered 

then in case it's name of object, not type. on contrary, here:

case class event(eventtype: eventtype) 

it's name of type, i.e. 1 defined type eventtype.

if want avoid confusion can give different name type:

scala> object events extends enumeration {      |           type eventtype = value      |           val registered = value("registered")      |           val started = value("started")      | } defined object events scala> object test {      | import events._      | case class event(eventtype: eventtype)      | val = event(registered)      | } defined object test 

Comments