给出以下xml片段:
<colors>
<color name="red" favorite="true" />
<color name="green" favorite="false" />
<color name="blue" favorite="false" />
</colors>
我希望能够生成一个类(通过xsd使用jaxb),还能生成所有已知颜色的枚举。类和枚举都应该实现相同的接口。
接口:
public interface IColor {
String getName();
boolean isFavorite();
}
类别:
public class Color implements IColor {
// *snip*
}
枚举:
public enum ColorType implements IColor {
RED("red", true),
GREEN("green", false),
BLUE("blue", false);
private ColorType(String name, boolean isFavorite) {
// *snip*
}
}
我找到了一些文章,讨论如何生成实现接口的类,例如: here,但我无法找到有关生成枚举的任何信息。更糟糕的是,我不知道如何将两者结合起来。
只是为了澄清这个疯狂的想法来自何处:生成的类可以用于产品代码(实际上,最好尽可能地使用接口),并且枚举可以用于测试。
到目前为止,我已经编写了一些使用Sun的CodeModel手动创建枚举的自定义代码,但我认为应该有一种更聪明的方法来做到这一点,不是吗?