Packages

  • package root
    Definition Classes
    root
  • package io
    Definition Classes
    root
  • package github
    Definition Classes
    io
  • package memo33
    Definition Classes
    github
  • package scalaenum
    Definition Classes
    memo33
  • abstract class Enum extends Serializable

    Defines a finite set of values specific to the enumeration.

    Defines a finite set of values specific to the enumeration. Typically these values enumerate all possible forms something can take and provide a lightweight alternative to case classes.

    Each call to a Value method adds a new unique value to the enumeration. To be accessible, these values are usually defined as val members of the enumeration.

    All values in an enumeration share a common, unique type defined as the abstract Value type member of the enumeration (Value selected on the stable identifier path of the enumeration instance). Besides, in contrast to Scala's built-in Enumeration, the Value type member can be extended in subclasses, such that it is possible to mix-in traits, for example. In this case, make sure to make the constructor of Value private. Example:

    // adding methods to Value
    class Day private extends Day.Val {
      def isWorkingDay: Boolean = this != Day.Saturday && this != Day.Sunday
    }
    object Day extends Enum {
      type Value = Day
      val Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday = new Day
    }
    
    // usage:
    Day.values filter (_.isWorkingDay) foreach println
    // output:
    // Monday
    // Tuesday
    // Wednesday
    // Thursday
    // Friday
    Definition Classes
    scalaenum
    Annotations
    @SerialVersionUID()
    Example:
    1. // Example of adding attributes to an enumeration by extending the Enumeration.Val class
      object Planet extends Enumeration {
        protected case class PlanetVal(mass: Double, radius: Double) extends super.Val {
          def surfaceGravity: Double = Planet.G * mass / (radius * radius)
          def surfaceWeight(otherMass: Double): Double = otherMass * surfaceGravity
        }
        import scala.language.implicitConversions
        implicit def valueToPlanetVal(x: Value): PlanetVal = x.asInstanceOf[PlanetVal]
      
        val G: Double = 6.67300E-11
        val Mercury = PlanetVal(3.303e+23, 2.4397e6)
        val Venus   = PlanetVal(4.869e+24, 6.0518e6)
        val Earth   = PlanetVal(5.976e+24, 6.37814e6)
        val Mars    = PlanetVal(6.421e+23, 3.3972e6)
        val Jupiter = PlanetVal(1.9e+27, 7.1492e7)
        val Saturn  = PlanetVal(5.688e+26, 6.0268e7)
        val Uranus  = PlanetVal(8.686e+25, 2.5559e7)
        val Neptune = PlanetVal(1.024e+26, 2.4746e7)
      }
      
      println(Planet.values.filter(_.radius > 7.0e6))
      // output:
      // Planet.ValueSet(Jupiter, Saturn, Uranus, Neptune)
  • Val
  • Value
  • ValueOrdering
  • ValueSet

implicit object ValueOrdering extends Ordering[Value]

An ordering by id for values of this set

Linear Supertypes
Ordering[Value], PartialOrdering[Value], Equiv[Value], Serializable, Comparator[Value], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ValueOrdering
  2. Ordering
  3. PartialOrdering
  4. Equiv
  5. Serializable
  6. Comparator
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. class OrderingOps extends AnyRef
    Definition Classes
    Ordering

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(classOf[java.lang.CloneNotSupportedException]) @native()
  6. def compare(x: Value, y: Value): Int
    Definition Classes
    ValueOrdering → Ordering → Comparator
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. def equiv(x: Value, y: Value): Boolean
    Definition Classes
    Ordering → PartialOrdering → Equiv
  10. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def gt(x: Value, y: Value): Boolean
    Definition Classes
    Ordering → PartialOrdering
  13. def gteq(x: Value, y: Value): Boolean
    Definition Classes
    Ordering → PartialOrdering
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. def isReverseOf(other: Ordering[_]): Boolean
    Definition Classes
    Ordering
  17. def lt(x: Value, y: Value): Boolean
    Definition Classes
    Ordering → PartialOrdering
  18. def lteq(x: Value, y: Value): Boolean
    Definition Classes
    Ordering → PartialOrdering
  19. def max[U <: Value](x: U, y: U): U
    Definition Classes
    Ordering
  20. def min[U <: Value](x: U, y: U): U
    Definition Classes
    Ordering
  21. implicit def mkOrderingOps(lhs: Value): OrderingOps
    Definition Classes
    Ordering
  22. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  23. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  24. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  25. def on[U](f: (U) => Value): Ordering[U]
    Definition Classes
    Ordering
  26. def orElse(other: Ordering[Value]): Ordering[Value]
    Definition Classes
    Ordering
  27. def orElseBy[S](f: (Value) => S)(implicit ord: Ordering[S]): Ordering[Value]
    Definition Classes
    Ordering
  28. def reverse: Ordering[Value]
    Definition Classes
    Ordering → PartialOrdering
  29. def reversed(): Comparator[Value]
    Definition Classes
    Comparator
  30. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  31. def thenComparing[U <: Comparable[_ >: U <: AnyRef]](arg0: Function[_ >: Value <: AnyRef, _ <: U]): Comparator[Value]
    Definition Classes
    Comparator
  32. def thenComparing[U <: AnyRef](arg0: Function[_ >: Value <: AnyRef, _ <: U], arg1: Comparator[_ >: U <: AnyRef]): Comparator[Value]
    Definition Classes
    Comparator
  33. def thenComparing(arg0: Comparator[_ >: Value <: AnyRef]): Comparator[Value]
    Definition Classes
    Comparator
  34. def thenComparingDouble(arg0: ToDoubleFunction[_ >: Value <: AnyRef]): Comparator[Value]
    Definition Classes
    Comparator
  35. def thenComparingInt(arg0: ToIntFunction[_ >: Value <: AnyRef]): Comparator[Value]
    Definition Classes
    Comparator
  36. def thenComparingLong(arg0: ToLongFunction[_ >: Value <: AnyRef]): Comparator[Value]
    Definition Classes
    Comparator
  37. def toString(): String
    Definition Classes
    AnyRef → Any
  38. def tryCompare(x: Value, y: Value): Some[Int]
    Definition Classes
    Ordering → PartialOrdering
  39. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  40. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  41. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Ordering[Value]

Inherited from PartialOrdering[Value]

Inherited from Equiv[Value]

Inherited from Serializable

Inherited from Comparator[Value]

Inherited from AnyRef

Inherited from Any

Ungrouped