t

enumeratum

PlayEnum

trait PlayEnum[A <: EnumEntry] extends Enum[A] with PlayJsonEnum[A] with PlayPathBindableEnum[A] with PlayQueryBindableEnum[A] with PlayFormFieldEnum[A]

An Enum that has a lot of the Play-related implicits built-in so you can avoid boilerplate.

Note, the binders created here are case-sensitive.

Things included are:

  • implicit JSON format
  • implicit PathBindable (for binding from request path)
  • implicit QueryStringBindable (for binding from query strings)
  • formField for doing things like Form("hello" -> MyEnum.formField)

Example:

scala> import enumeratum._
scala> import play.api.data.Form
scala> import play.api.libs.json._

scala> sealed trait Greeting extends EnumEntry

scala> object Greeting extends PlayEnum[Greeting] {
     |   val values = findValues
     |   case object Hello   extends Greeting
     |   case object GoodBye extends Greeting
     |   case object Hi      extends Greeting
     |   case object Bye     extends Greeting
     | }

scala> val form = Form("greeting" -> Greeting.formField)
scala> form.bind(Map("greeting" -> "Hello")).value
res0: Option[Greeting] = Some(Hello)

scala> Json.toJson(Greeting.Hello) res1: JsValue = "Hello"

Linear Supertypes
PlayFormFieldEnum[A], PlayQueryBindableEnum[A], PlayPathBindableEnum[A], PlayJsonEnum[A], Enum[A], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PlayEnum
  2. PlayFormFieldEnum
  3. PlayQueryBindableEnum
  4. PlayPathBindableEnum
  5. PlayJsonEnum
  6. Enum
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def values: IndexedSeq[A]
    Definition Classes
    Enum

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  9. macro def findValues: IndexedSeq[A]
    Attributes
    protected
    Definition Classes
    Enum
  10. val formField: Mapping[A]

    Form field for this enum

    Form field for this enum

    Definition Classes
    PlayFormFieldEnum
  11. lazy val fromPath: PathBindableExtractor[A]

    Binder for play.api.routing.sird router

    Binder for play.api.routing.sird router

    Example:

    scala> import play.api.routing.sird._
    scala> import play.api.routing._
    scala> import play.api.mvc._
    scala> import enumeratum._
    
    scala> sealed trait Greeting extends EnumEntry
    
    scala> object Greeting extends PlayEnum[Greeting] {
         |   val values = findValues
         |   case object Hello   extends Greeting
         |   case object GoodBye extends Greeting
         |   case object Hi      extends Greeting
         |   case object Bye     extends Greeting
         | }
    
    scala> val router = Router.from {
         |   case GET(p"/hello/${Greeting.fromPath(greeting)}") => Action {
         |     Results.Ok(s"$greeting")
         |   }
         | }
    scala> router.routes
    res0: Router.Routes = <function1>
    Definition Classes
    PlayPathBindableEnum
  12. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. def indexOf(member: A): Int
    Definition Classes
    Enum
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. implicit val jsonFormat: Format[A]
    Definition Classes
    PlayJsonEnum
  17. final lazy val lowerCaseNamesToValuesMap: Map[String, A]
    Definition Classes
    Enum
  18. lazy val namesToValuesMap: Map[String, A]
    Definition Classes
    Enum
  19. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. implicit val pathBindable: PathBindable[A]

    Implicit path binder for Play's default router

    Implicit path binder for Play's default router

    Definition Classes
    PlayPathBindableEnum
  23. implicit val queryBindable: QueryStringBindable[A]
    Definition Classes
    PlayQueryBindableEnum
  24. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  25. def toString(): String
    Definition Classes
    AnyRef → Any
  26. final lazy val upperCaseNameValuesToMap: Map[String, A]
    Definition Classes
    Enum
  27. final lazy val valuesToIndex: Map[A, Int]
    Definition Classes
    Enum
  28. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  29. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  30. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  31. def withName(name: String): A
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  32. def withNameInsensitive(name: String): A
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  33. def withNameInsensitiveOption(name: String): Option[A]
    Definition Classes
    Enum
  34. def withNameLowercaseOnly(name: String): A
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  35. def withNameLowercaseOnlyOption(name: String): Option[A]
    Definition Classes
    Enum
  36. def withNameOption(name: String): Option[A]
    Definition Classes
    Enum
  37. def withNameUppercaseOnly(name: String): A
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  38. def withNameUppercaseOnlyOption(name: String): Option[A]
    Definition Classes
    Enum

Inherited from PlayFormFieldEnum[A]

Inherited from PlayQueryBindableEnum[A]

Inherited from PlayPathBindableEnum[A]

Inherited from PlayJsonEnum[A]

Inherited from Enum[A]

Inherited from AnyRef

Inherited from Any

Ungrouped