1 package civitas.common;
2
3 import java.io.StringWriter;
4
5 import org.springframework.stereotype.Controller;
6
7 import jakarta.xml.bind.JAXBContext;
8 import jakarta.xml.bind.JAXBException;
9 import jakarta.xml.bind.Marshaller;
10
11 @Controller
12 public class ConvertToXml {
13
14 public <T> String apply(final T that) throws JAXBException {
15 JAXBContext context = JAXBContext.newInstance(that.getClass());
16
17 Marshaller marshaller = context.createMarshaller();
18 marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
19 marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);
20 marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
21
22 var writer = new StringWriter();
23 marshaller.marshal(that, writer);
24 return writer.toString();
25 }
26 }