diff options
author | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-05-08 13:41:27 +0200 |
---|---|---|
committer | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-05-08 13:41:27 +0200 |
commit | 6f450a1d3ff60557b1081f9e8ef6bd5f375db842 (patch) | |
tree | 336068552025782ec3f9716999fb3c391fbed9ea /src/main/java/at/gv/egiz/moazs/scheme/Marshaller.java | |
parent | 36fd031d1f0218e323b50e6d63eff4a7cee99cd7 (diff) | |
download | moa-zs-6f450a1d3ff60557b1081f9e8ef6bd5f375db842.tar.gz moa-zs-6f450a1d3ff60557b1081f9e8ef6bd5f375db842.tar.bz2 moa-zs-6f450a1d3ff60557b1081f9e8ef6bd5f375db842.zip |
Refactor: Consolidate Schema-Related Components
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/scheme/Marshaller.java')
-rw-r--r-- | src/main/java/at/gv/egiz/moazs/scheme/Marshaller.java | 33 |
1 files changed, 33 insertions, 0 deletions
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 <T> String marshallXml(final T obj) { + StringWriter sw = new StringWriter(); + Result result = new StreamResult(sw); + marshaller.marshal(obj, result); + return sw.toString(); + } + + public <T> T unmarshallXml(final InputStream xml) { + return (T) marshaller.unmarshal(new StreamSource(xml)); + } +} |