我不想在代码中直接使用XmlJavaTypeAdapter
批注与XmlAdapter的类。 所以,我写了一些包装:@XmlJavaTypeAdapter和包装
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);
}
}
这是我的wrappes粘合剂 - 例如XmlAdapter
秒。我所有的粘合剂将实现Binder
接口
public interface Binder<MODEL, BEAN> {
MODEL unBean(BEAN bean);
BEAN toBean(MODEL model);
}
但是有一个问题。 @XmlJavaTypeAdapter
需要XmlAdapter类没有任何包装。我如何解决这个问题? - 使用其他注释/写一些配置/写一些神奇的注释/ ..
谢谢。
UPD
我有没有的JavaBeans模型类。所以我想做两个步骤映射:在bean中而不是在xml中。我也想做第一步的注释。可能我很需要这个豆不仅为JAXB。真正的问题是:我可以用一些非JAXB注释做第一步吗?
为什么你不希望直接使用@XmlJavaTypeAdapter注释?我不确定你的方法会带来什么。 – 2010-12-10 19:53:20
@Blaise Doughan,嗯..我想它会乱丢我的代码。 – 2010-12-10 20:00:49
@Blaise Doughan,问题已更新。 – 2010-12-10 20:09:57