diff options
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/Marshaller.java')
-rw-r--r-- | src/main/java/at/gv/egiz/moazs/Marshaller.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/Marshaller.java b/src/main/java/at/gv/egiz/moazs/Marshaller.java new file mode 100644 index 0000000..c126f03 --- /dev/null +++ b/src/main/java/at/gv/egiz/moazs/Marshaller.java @@ -0,0 +1,33 @@ +package at.gv.egiz.moazs; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.oxm.jaxb.Jaxb2Marshaller; +import org.springframework.stereotype.Component; + +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 + */ +@Component +public class Marshaller { + + @Autowired + private Jaxb2Marshaller 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)); + } +} |