From 6f450a1d3ff60557b1081f9e8ef6bd5f375db842 Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Wed, 8 May 2019 13:41:27 +0200 Subject: Refactor: Consolidate Schema-Related Components --- .../java/at/gv/egiz/moazs/scheme/Marshaller.java | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/main/java/at/gv/egiz/moazs/scheme/Marshaller.java (limited to 'src/main/java/at/gv/egiz/moazs/scheme/Marshaller.java') diff --git a/src/main/java/at/gv/egiz/moazs/scheme/Marshaller.java b/src/main/java/at/gv/egiz/moazs/scheme/Marshaller.java new file mode 100644 index 0000000..2dbb6a0 --- /dev/null +++ b/src/main/java/at/gv/egiz/moazs/scheme/Marshaller.java @@ -0,0 +1,33 @@ +package at.gv.egiz.moazs.scheme; + +import org.springframework.oxm.jaxb.Jaxb2Marshaller; + +import javax.xml.transform.Result; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; +import java.io.InputStream; +import java.io.StringWriter; + +/** + * @author xerx593 + * Source: https://stackoverflow.com/questions/44676532/how-to-use-spring-to-marshal-and-unmarshal-xml + */ +public class Marshaller { + + private final Jaxb2Marshaller marshaller; + + public Marshaller(Jaxb2Marshaller marshaller) { + this.marshaller = marshaller; + } + + public String marshallXml(final T obj) { + StringWriter sw = new StringWriter(); + Result result = new StreamResult(sw); + marshaller.marshal(obj, result); + return sw.toString(); + } + + public T unmarshallXml(final InputStream xml) { + return (T) marshaller.unmarshal(new StreamSource(xml)); + } +} -- cgit v1.2.3