Re: Dynamic enums
On 10/12/2011 4:58 AM, Eric Sosman wrote:
Stepping back a bit, it's not clear to me why you need a separate
data structure just to hold the keys. In your original post you wrote
of pairings in "a table called foobar," matching A with 1, B with 2,
and so forth. This sounds very much like a Map with entries {A,1},
{B,2} and so on,
Because if the "enums" are dynamic, he needs someplace to store them.
IF the database table lists enums as strings or ints, he needs a place
to lookup up "A" or 1 and get the singleton class back that represents
the enum.
Regular singleton:
class MyEnum {
public static final MyEnum A = new MyEnum();
public static final MyEnum B = new MyEnum();
private MyEnum() {}
}
Dynamic:
class MyEnum {
private MyEnum() {}
private final HashMap enums = new HashMap();
public void addEnum( String name ) {
if( enums.get( name ) == null )
enums.put( name, new MyEnum() );
}
public MyEnum getEnum( String name ) {
return enums.get( name );
}
}
Probably need some fields for getting the name of the enum or it's
ordinal value, but that's how I see the out line of the dynamic part of
the code.