
org.openprovenance.prov.xml.KeyAdapter Maven / Gradle / Ivy
package org.openprovenance.prov.xml;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import org.openprovenance.prov.model.DOMProcessing;
import org.openprovenance.prov.model.QualifiedName;
import org.w3c.dom.Element;
public class KeyAdapter extends XmlAdapter {
final org.openprovenance.prov.model.ProvFactory pFactory;
final ValueConverter vconv;
final private DOMProcessing domProcessor;
final QualifiedName qualifiedName_PROV_KEY;
public KeyAdapter() {
pFactory= new ProvFactory();
domProcessor=new DOMProcessing(pFactory);
qualifiedName_PROV_KEY = pFactory.getName().PROV_KEY;
vconv=new ValueConverter(pFactory);
}
public KeyAdapter(org.openprovenance.prov.model.ProvFactory pFactory) {
this.pFactory=pFactory;
domProcessor=new DOMProcessing(pFactory);
qualifiedName_PROV_KEY = pFactory.getName().PROV_KEY;
vconv=new ValueConverter(pFactory);
}
@Override
public Element marshal(TypedValue value) throws Exception {
//System.out.println("==> KeyAdapter marshalling for " + value);
return DOMProcessing.marshalTypedValue(value,qualifiedName_PROV_KEY);
}
@Override
public TypedValue unmarshal(Element el) throws Exception {
//System.out.println("==> KeyAdapter unmarshalling for " + el);
//TODO: make sure I construct a typedvalue. Update newAttribute in xml.ProvFactory.
return (TypedValue) domProcessor.unmarshallAttribute(el,pFactory,vconv);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy