X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Fplugins%2Fruntime%2Forg.argeo.slc.client.oxm%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Foxm%2FOxmBean.java;fp=eclipse%2Fplugins%2Fruntime%2Forg.argeo.slc.client.oxm%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Foxm%2FOxmBean.java;h=5ea94d2b8054bf9322bdcc7b45cc0b60c82f91d3;hb=328d06a6f9d10624020aa5dce94e01c998bb422e;hp=0000000000000000000000000000000000000000;hpb=361e8a67af2d44130d0df61e6f379364b4b59a28;p=gpl%2Fargeo-slc.git diff --git a/eclipse/plugins/runtime/org.argeo.slc.client.oxm/src/main/java/org/argeo/slc/client/oxm/OxmBean.java b/eclipse/plugins/runtime/org.argeo.slc.client.oxm/src/main/java/org/argeo/slc/client/oxm/OxmBean.java new file mode 100644 index 000000000..5ea94d2b8 --- /dev/null +++ b/eclipse/plugins/runtime/org.argeo.slc.client.oxm/src/main/java/org/argeo/slc/client/oxm/OxmBean.java @@ -0,0 +1,48 @@ +package org.argeo.slc.client.oxm; + +import org.argeo.slc.SlcException; +import org.springframework.oxm.Marshaller; +import org.springframework.oxm.Unmarshaller; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; + +public class OxmBean implements OxmInterface { + + private Marshaller marshaller; + private Unmarshaller unmarshaller; + + public void init() { + } + + public Object unmarshal(String result) { + Object res; + if (result == null) + throw new SlcException("Cannot unmarshall empty string "); + try { + res = unmarshaller.unmarshal(new StringSource(result)); + } catch (Exception e) { + throw new SlcException("Could not unmarshall " + result, e); + } + return res; + } + + public String marshal(Object graph) { + StringResult result = new StringResult(); + try { + marshaller.marshal(graph, result); + } catch (Exception e) { + throw new SlcException("Cannot Marshal object " + graph.toString() + + " - " + e); + } + return result.toString(); + } + + // IoC + public void setMarshaller(Marshaller marshaller) { + this.marshaller = marshaller; + } + + public void setUnmarshaller(Unmarshaller unmarshaller) { + this.unmarshaller = unmarshaller; + } +}