diff options
author | Geoffrey Washburn <geoffrey.washburn@epfl.ch> | 2008-11-18 15:41:08 +0000 |
---|---|---|
committer | Geoffrey Washburn <geoffrey.washburn@epfl.ch> | 2008-11-18 15:41:08 +0000 |
commit | 65ba7e2bec96f07beba13fcf1035496a94ca76b3 (patch) | |
tree | 17bf38f9dc8149455b24f013c71efd89119a6b59 /src/library | |
parent | 7f72290295636bc98822dee5994260c480ff42bd (diff) | |
download | scala-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/library')
-rw-r--r-- | src/library/scala/Enumeration.scala | 15 |
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) |