Для проекта, над которым я работаю, мы используем много перечислений.Сам объект модели состоит из множества крошечных классов;эту модель мы затем сериализуем в нашу БД в виде XML через JAXB.Теперь мы хотим иметь возможность сериализовать наши значения перечисления, используя возвращение определенного метода в перечислении;что дано:
public enum Qualifier {
FOO("1E", "Foo type document"),
BAR("2", "Bar object");
private String code, description;
public Qualifier(String code, String description) {
this.code = code;
this.description = description;
}
public String getCode() {
return this.code;
}
public String getDescription() {
return this.description;
}
}
и т. д.и т. д. В настоящее время при сериализации в XML мы получаем что-то вроде:
<qualifier>FOO</qualifier>
, как это обрабатывает JAXB.Однако нам нужно, чтобы значение было возвращением getCode (), и многие наши перечисления следуют этому соглашению (с соответствующим статическим методом для поиска через код), так что приведенный выше фрагмент XML выглядит следующим образом:
<qualifier>1E</qualifier>
вместо.Мы можем пометить его с помощью @XmlEnum
и @XmlEnumValue
, но это слишком утомительно - некоторые перечисления имеют до 30 перечисляемых значений, и ручное редактирование не очень хорошо.Мы также подумываем об использовании нестандартного сериализатора, но я бы пока не хотел идти по этому пути (но если это так, то у меня нет проблем с ним).
Любые идеито как?