enhancement
If you want the names with which you write enum constants, e.g. in a typed configuration (XML attributes), to differ from the Java constant names (e.g. because you do not want an all-uppercase), then you can have the enum implement the ExternallyNamed interface. The enum constant thus declares another method (externalName()), which is then used in the serialization.
However, the implementation of ExternallyNamed is relatively complex. It would be nicer if the same effect could be achieved by annotating the constants with the @Name annotation, just as it works with properties of the typed configuration.