Iteração sobre um traço selado em Scala?

Eu só queria saber se é possível fazer uma iteração sobre um traço selado em Scala? Se não, por que não é possível? Desde que o traço é selado, deveria ser possível não?

O que eu quero fazer é algo assim:

sealed trait ResizedImageKey {

  /**
   * Get the dimensions to use on the resized image associated with this key
   */
  def getDimension(originalDimension: Dimension): Dimension

}

case class Dimension(width: Int,  height: Int)

case object Large extends ResizedImageKey {
  def getDimension(originalDimension: Dimension) = Dimension(1000,1000)
}

case object Medium extends ResizedImageKey{
  def getDimension(originalDimension: Dimension) = Dimension(500,500)
}

case object Small extends ResizedImageKey{
  def getDimension(originalDimension: Dimension) = Dimension(100,100)
}

O que eu quero pode ser feito em Java, dando uma implementação para os valores enum. Existe um equivalente em Scala?

questionAnswers(6)

yourAnswerToTheQuestion