Trait

enumeratum

PlayEnum

Related Doc: package enumeratum

Permalink

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:

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]

    Permalink
    Definition Classes
    Enum

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. implicit def contraJsonWrites[B <: A]: Writes[B]

    Permalink
    Definition Classes
    PlayJsonEnum
  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. macro def findValues: IndexedSeq[A]

    Permalink
    Attributes
    protected
    Definition Classes
    Enum
  11. val formField: Mapping[A]

    Permalink

    Form field for this enum

    Form field for this enum

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

    Permalink

    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[_]

    Permalink
    Definition Classes
    AnyRef → Any
  14. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  15. def indexOf(member: A): Int

    Permalink
    Definition Classes
    Enum
  16. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  17. implicit val jsonFormat: Format[A]

    Permalink
    Definition Classes
    PlayJsonEnum
  18. final lazy val lowerCaseNamesToValuesMap: Map[String, A]

    Permalink
    Definition Classes
    Enum
  19. lazy val namesToValuesMap: Map[String, A]

    Permalink
    Definition Classes
    Enum
  20. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  21. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  22. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  23. implicit val pathBindable: PathBindable[A]

    Permalink

    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]

    Permalink
    Definition Classes
    PlayQueryBindableEnum
  25. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  26. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  27. final lazy val upperCaseNameValuesToMap: Map[String, A]

    Permalink
    Definition Classes
    Enum
  28. final lazy val valuesToIndex: Map[A, Int]

    Permalink
    Definition Classes
    Enum
  29. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  30. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. def withName(name: String): A

    Permalink
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  33. def withNameEither(name: String): Either[NoSuchMember[A], A]

    Permalink
    Definition Classes
    Enum
  34. def withNameInsensitive(name: String): A

    Permalink
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  35. def withNameInsensitiveEither(name: String): Either[NoSuchMember[A], A]

    Permalink
    Definition Classes
    Enum
  36. def withNameInsensitiveOption(name: String): Option[A]

    Permalink
    Definition Classes
    Enum
  37. def withNameLowercaseOnly(name: String): A

    Permalink
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  38. def withNameLowercaseOnlyEither(name: String): Either[NoSuchMember[A], A]

    Permalink
    Definition Classes
    Enum
  39. def withNameLowercaseOnlyOption(name: String): Option[A]

    Permalink
    Definition Classes
    Enum
  40. def withNameOption(name: String): Option[A]

    Permalink
    Definition Classes
    Enum
  41. def withNameUppercaseOnly(name: String): A

    Permalink
    Definition Classes
    Enum
    Annotations
    @SuppressWarnings()
  42. def withNameUppercaseOnlyEither(name: String): Either[NoSuchMember[A], A]

    Permalink
    Definition Classes
    Enum
  43. def withNameUppercaseOnlyOption(name: String): Option[A]

    Permalink
    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