sealed trait ValueEnum[ValueType, EntryType <: ValueEnumEntry[ValueType]] extends AnyRef
Base trait for a Value-based enums.
Example:
sealed abstract class Greeting(val value: Int) extends IntEnumEntry object Greeting extends IntEnum[Greeting] { val values = findValues case object Hello extends Greeting(1) case object GoodBye extends Greeting(2) case object Hi extends Greeting(3) case object Bye extends Greeting(4) } Greeting.withValueOpt(1) == Some(GreetingHello) Greeting.withValueOpt(6) == None
- Source
- ValueEnum.scala
Linear Supertypes
Known Subclasses
Ordering
- Alphabetic
- By Inheritance
Inherited
- ValueEnum
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Abstract Value Members
- abstract def values: IndexedSeq[EntryType]
The sequence of values for your Enum.
The sequence of values for your Enum. You will typically want to implement this in your extending class as a
val
so thatwithValue
and friends are as efficient as possible.Feel free to implement this however you'd like (including messing around with ordering, etc) if that fits your needs better.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final lazy val valuesToEntriesMap: Map[ValueType, EntryType]
Map of
ValueType
toEntryType
members - final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def withValue(i: ValueType): EntryType
Tries to get an
EntryType
by the supplied value.Tries to get an
EntryType
by the supplied value. The value corresponds to the .value of the case objects implementingEntryType
Like withValue, this method will throw if the value does not match any of the values'
.value
values. - def withValueOpt(i: ValueType): Option[EntryType]
Optionally returns an
EntryType
for a given value.