Для проекта, над которым я работаю, у нас много перечислений. Сам объект модели состоит из множества крошечных классов; эту модель мы затем сериализуем в нашу БД как XML через JAXB. Теперь мы хотим иметь возможность сериализовать наши значения enum, используя возврат определенного метода в перечисление; который указан:
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 перечислимых значений, а редактирование вручную это не очень хорошо. Мы также думаем использовать пользовательский сериализатор вместо этого, но я бы хотел избежать этого маршрута на данный момент (но если это так, то у меня нет проблем с ним).
Любые идеи как?