Я не хочу использовать XmlJavaTypeAdapter
аннотации с классом XmlAdapter в моем коде напрямую.
Итак, я написал какую-то обертку:
class BinderWrapper<MODEL, BEAN> extends XmlAdapter<BEAN, MODEL>{
private final Binder<MODEL, BEAN> target;
private BinderWrapper(Binder<MODEL, BEAN> target){
this.target = target;
}
static <MODEL, BEAN> BinderWrapper<MODEL, BEAN> createInstance(Binder<MODEL, BEAN> binder){
return new BinderWrapper<MODEL, BEAN>(binder);
}
@Override
public MODEL unmarshal(BEAN v) throws Exception {
return target.unBean(v);
}
@Override
public BEAN marshal(MODEL v) throws Exception {
return target.toBean(v);
}
}
это окутывает мои связующие как XmlAdapter
с. Все мои связующие будут реализованы Binder
интерфейс
public interface Binder<MODEL, BEAN> {
MODEL unBean(BEAN bean);
BEAN toBean(MODEL model);
}
Но есть проблема. @XmlJavaTypeAdapter
требует класс XmlAdapter без какой-либо оболочки. Как я могу решить эту проблему? - использовать другую аннотацию / написать некоторую конфигурацию / написать некоторую волшебную аннотацию / ..
Спасибо.
UPD
У меня есть классы моделей, которые не JavaBeans . Поэтому я хочу сделать два шага отображения: в bean-компонентах и затем в xml. Я хочу сделать первый шаг с аннотациями тоже. Наверное, мне нужны эти бобы не только для JAXB . Реальный вопрос: могу ли я сделать первый шаг с некоторыми аннотациями не JAXB ?