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[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. implicit def contraJsonWrites[B <: A]: Writes[B]
    Definition Classes
    PlayJsonEnum
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. macro def findValues: IndexedSeq[A]
    Attributes
    protected
    Definition Classes
    Enum
  11. val formField: Mapping[A]

    Form field for this enum

    Form field for this enum

    Definition Classes
    PlayFormFieldEnum
  12. 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
  13. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. def indexOf(member: A): Int
    Definition Classes
    Enum
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. implicit val jsonFormat: Format[A]
    Definition Classes
    PlayJsonEnum
  18. final lazy val lowerCaseNamesToValuesMap: Map[String, A]
    Definition Classes
    Enum
  19. lazy val namesToValuesMap: Map[String, A]
    Definition Classes
    Enum
  20. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  21. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. implicit val pathBindable: PathBindable[A]

    Implicit path binder for Play's default router

    Implicit path binder for Play's default router

    Definition Classes
    PlayPathBindableEnum
  24. implicit val queryBindable: QueryStringBindable[A]
    Definition Classes
    PlayQueryBindableEnum
  25. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  26. def toString(): String
    Definition Classes
    AnyRef → Any
  27. final lazy val upperCaseNameValuesToMap: Map[String, A]
    Definition Classes
    Enum
  28. final lazy val valuesToIndex: Map[A, Int]
    Definition Classes
    Enum
  29. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  30. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  32. def withName(name: String): A
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  33. def withNameEither(name: String): Either[NoSuchMember[A], A]
    Definition Classes
    Enum
  34. def withNameInsensitive(name: String): A
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  35. def withNameInsensitiveEither(name: String): Either[NoSuchMember[A], A]
    Definition Classes
    Enum
  36. def withNameInsensitiveOption(name: String): Option[A]
    Definition Classes
    Enum
  37. def withNameLowercaseOnly(name: String): A
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  38. def withNameLowercaseOnlyEither(name: String): Either[NoSuchMember[A], A]
    Definition Classes
    Enum
  39. def withNameLowercaseOnlyOption(name: String): Option[A]
    Definition Classes
    Enum
  40. def withNameOption(name: String): Option[A]
    Definition Classes
    Enum
  41. def withNameUppercaseOnly(name: String): A
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  42. def withNameUppercaseOnlyEither(name: String): Either[NoSuchMember[A], A]
    Definition Classes
    Enum
  43. 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