如何从xml元素生成枚举,这些元素也实现与生成的类相同的接口?

时间:2014-08-04 01:48:13

标签: java xml jaxb xsd

给出以下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手动创建枚举的自定义代码,但我认为应该有一种更聪明的方法来做到这一点,不是吗?

0 个答案:

没有答案