Enumeration

scala.Enumeration
abstract class Enumeration(initial: Int) extends Serializable

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 Value type member of the enumeration (Value selected on the stable identifier path of the enumeration instance).

Values SHOULD NOT be added to an enumeration after its construction; doing so makes the enumeration thread-unsafe. If values are added to an enumeration from multiple threads (in a non-synchronized fashion) after construction, the behavior of the enumeration is undefined.

Attributes

initial

The initial value from which to count the integers that identifies values at run-time.

Example:

// Define a new enumeration with a type alias and work with the full set of enumerated values
object WeekDay extends Enumeration {
 type WeekDay = Value
 val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
import WeekDay._
def isWorkingDay(d: WeekDay) = ! (d == Sat || d == Sun)
WeekDay.values filter isWorkingDay foreach println
// output:
// Mon
// Tue
// Wed
// Thu
// Fri

// 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)
Source:
Enumeration.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object RoundingMode.type
Self type

Members list

Concise view

Type members

Classlikes

protected class Val(i: Int, name: String) extends Value with Serializable

A class implementing the scala.Enumeration.Value type.

A class implementing the scala.Enumeration.Value type. This class can be overridden to change the enumeration's naming and integer identification behaviour.

Attributes

Source:
Enumeration.scala
Graph
Supertypes
class Value
trait Ordered[Value]
class Object
trait Matchable
class Any
abstract class Value extends Ordered[Value] with Serializable

The type of the enumerated values.

The type of the enumerated values.

Attributes

Source:
Enumeration.scala
Graph
Supertypes
trait Ordered[Value]
class Object
trait Matchable
class Any
Known subtypes
class Val
object ValueOrdering extends Ordering[Value]

An ordering by id for values of this set

An ordering by id for values of this set

Attributes

Source:
Enumeration.scala
Graph
Supertypes
Self type

A class for sets of values.

A class for sets of values. Iterating through this set will yield values in increasing order of their ids.

Attributes

nnIds

The set of ids of values (adjusted so that the lowest value does not fall below zero), organized as a BitSet.

Companion:
object
Source:
Enumeration.scala
Graph
Supertypes

A factory object for value sets

A factory object for value sets

Attributes

Companion:
class
Source:
Enumeration.scala
Graph
Supertypes
Self type

Value members

Constructors

def this()

Attributes

Source:
Enumeration.scala

Concrete methods

final protected def Value: Value

Creates a fresh value, part of this enumeration.

Creates a fresh value, part of this enumeration.

Attributes

Source:
Enumeration.scala
final protected def Value(i: Int): Value

Creates a fresh value, part of this enumeration, identified by the integer i.

Creates a fresh value, part of this enumeration, identified by the integer i.

Attributes

i

An integer that identifies this value at run-time. It must be unique amongst all values of the enumeration.

Returns:

Fresh value identified by i.

Source:
Enumeration.scala
final protected def Value(name: String): Value

Creates a fresh value, part of this enumeration, called name.

Creates a fresh value, part of this enumeration, called name.

Attributes

name

A human-readable name for that value.

Returns:

Fresh value called name.

Source:
Enumeration.scala
final protected def Value(i: Int, name: String): Value

Creates a fresh value, part of this enumeration, called name and identified by the integer i.

Creates a fresh value, part of this enumeration, called name and identified by the integer i.

Attributes

i

An integer that identifies this value at run-time. It must be unique amongst all values of the enumeration.

name

A human-readable name for that value.

Returns:

Fresh value with the provided identifier i and name name.

Source:
Enumeration.scala
final def apply(x: Int): Value

The value of this enumeration with given id x

The value of this enumeration with given id x

Attributes

Source:
Enumeration.scala
final def maxId: Int

The one higher than the highest integer amongst those used to identify values in this enumeration.

The one higher than the highest integer amongst those used to identify values in this enumeration.

Attributes

Source:
Enumeration.scala
protected def readResolve(): AnyRef

Attributes

Source:
Enumeration.scala
override def toString: String

The name of this enumeration.

The name of this enumeration.

Attributes

Definition Classes
Source:
Enumeration.scala

The values of this enumeration as a set.

The values of this enumeration as a set.

Attributes

Source:
Enumeration.scala
final def withName(s: String): Value

Return a Value from this Enumeration whose name matches the argument s.

Return a Value from this Enumeration whose name matches the argument s. The names are determined automatically via reflection.

Attributes

s

an Enumeration name

Returns:

the Value of this Enumeration if its name matches s

Throws:

NoSuchElementException if no Value with a matching name is in this Enumeration

Source:
Enumeration.scala

Concrete fields

protected var nextId: Int

The integer to use to identify the next created value.

The integer to use to identify the next created value.

Attributes

Source:
Enumeration.scala
protected var nextName: Iterator[String]

The string to use to name the next created value.

The string to use to name the next created value.

Attributes

Source:
Enumeration.scala