package de.jpaw.enums.examples; import de.jpaw.enums.AbstractXEnumBase; import de.jpaw.enums.XEnumFactory; /** Extendable enum instance type. This class has immutable instances. Also, after static initialization, no additional members can be created. */ public class XAccountType0 extends AbstractXEnumBase<XAccountType0> { public static final int MAX_TOKEN_LENGTH = 1; public static final String PQON = "base.XAccountType0"; public static final int NUM_VALUES_TOTAL = AccountType0.values().length; // root class builds the factory public static final XEnumFactory<XAccountType0> myFactory = new XEnumFactory<XAccountType0>(MAX_TOKEN_LENGTH, XAccountType0.class, PQON); static { // create all the instances // create a factory instance AccountType0 [] values = AccountType0.values(); for (int i = 0; i < values.length; ++i) { AccountType0 e = values[i]; myFactory.publishInstance(new XAccountType0(e, i, e.name(), e.getToken(), myFactory)); } myFactory.register(PQON, XAccountType0.class); } public static final XEnumFactory<XAccountType0> class$Factory() { return myFactory; } public static XAccountType0 valueOf(AccountType0 enumVal) { return myFactory.getByEnum(enumVal); } // constructor may not be accessible from the outside protected XAccountType0(Enum<?> enumVal, int ordinal, String name, String token, XEnumFactory<XAccountType0> myFactory) { super(enumVal, ordinal, name, token, myFactory); } }