Is that 'private' you see there? Omigod. It is.
Normally we eschew private because we feel like people should be
able to use our classes how they see fit.
However, you *really* shouldn't be futzing with these fields,
and them being protected would allow someone to write an Enum subclass
and fuck-up other unrelated Enum subclasses, so I'm making an exception here.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5365 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Ray Greenwell
2008-09-11 21:01:10 +00:00
parent c0a8e204da
commit 059e7f760d
+8 -3
View File
@@ -41,6 +41,11 @@ import flash.utils.Dictionary;
* super(name);
* }
*
* public static function valueOf (name :String) :Foo
* {
* return Enum.valueOf(Foo, name);
* }
*
* public static function values () :Array
* {
* return Enum.values(Foo);
@@ -53,7 +58,7 @@ import flash.utils.Dictionary;
* - declare your enum constants const, and with the same String as their name.
* - call finishedEnumerating() at the end of your constants.
* - your enum objects should be immutable
* - implement a static values() method for extra points, as above.
* - implement a static valueOf() and values() methods for extra points, as above.
*/
public class Enum
implements Hashable, Comparable
@@ -176,10 +181,10 @@ public class Enum
protected var _name :String;
/** An array of enums for each enum class. */
protected static const _enums :Dictionary = new Dictionary(true);
private static const _enums :Dictionary = new Dictionary(true);
/** Is further instantiation of enum constants for a class allowed? */
protected static const _blocked :Dictionary = new Dictionary(true);
private static const _blocked :Dictionary = new Dictionary(true);
finishedEnumerating(Enum); // do not allow any enums in this base class
}