summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeoffrey Washburn <geoffrey.washburn@epfl.ch>2008-11-18 15:41:08 +0000
committerGeoffrey Washburn <geoffrey.washburn@epfl.ch>2008-11-18 15:41:08 +0000
commit65ba7e2bec96f07beba13fcf1035496a94ca76b3 (patch)
tree17bf38f9dc8149455b24f013c71efd89119a6b59 /src
parent7f72290295636bc98822dee5994260c480ff42bd (diff)
downloadscala-65ba7e2bec96f07beba13fcf1035496a94ca76b3.tar.gz
scala-65ba7e2bec96f07beba13fcf1035496a94ca76b3.tar.bz2
scala-65ba7e2bec96f07beba13fcf1035496a94ca76b3.zip
Applied patch from #1505, modified supplied exa...
Applied patch from #1505, modified supplied example to be a test.
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/Enumeration.scala15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/library/scala/Enumeration.scala b/src/library/scala/Enumeration.scala
index 6d6203e415..283c60beeb 100644
--- a/src/library/scala/Enumeration.scala
+++ b/src/library/scala/Enumeration.scala
@@ -130,6 +130,21 @@ abstract class Enumeration(initial: Int, names: String*) {
override def toString(): String = updateCache.mkString("{", ", ", "}")
+ /** Returns a Value from this Enumeration whose name matches
+ * the argument <var>s</var>.
+ * You must pass a String* set of names to the constructor,
+ * or initialize each Enumeration with Value(String),
+ * for valueOf to work.
+ * @param s an enumeration name
+ * @return <tt>Some(Value)</tt> if an enumeration's name matches <var>s</var>,
+ * else <tt>None</tt>
+ */
+ def valueOf(s:String) = {
+ var v: Option[Value] = None
+ for( e <- elements ) if (s == e.toString()) v = Some(e)
+ v
+ }
+
/** Creates a fresh value, part of this enumeration. */
protected final def Value: Value =
new Val(nextId, if (nextName.hasNext) nextName.next else null)