]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/XsltMarshallerView.java
Introduce PDF/Excel views
[gpl/argeo-slc.git] / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / XsltMarshallerView.java
index ce14848d03f07c6ee3ea258135089950769d523a..bec44e8d1fd57663e0547ded8dce774950720385 100644 (file)
@@ -5,36 +5,38 @@ import javax.xml.transform.Source;
 import javax.xml.transform.dom.DOMResult;\r
 import javax.xml.transform.dom.DOMSource;\r
 \r
+import org.argeo.slc.core.SlcException;\r
+import org.argeo.slc.core.process.SlcExecution;\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
 import org.springframework.oxm.Marshaller;\r
 import org.springframework.web.servlet.view.xslt.XsltView;\r
 import org.w3c.dom.Document;\r
 \r
-import org.argeo.slc.core.test.tree.TreeTestResult;\r
-\r
 public class XsltMarshallerView extends XsltView {\r
 \r
        private Marshaller marshaller;\r
-       \r
-       \r
 \r
        @Override\r
        protected Class<?>[] getSourceTypes() {\r
-               return new Class[]{TreeTestResult.class};\r
+               return new Class[] { TreeTestResult.class,\r
+                               TreeTestResultCollection.class, SlcExecution.class };\r
        }\r
 \r
        @Override\r
        protected Source convertSource(Object source) throws Exception {\r
-               Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();\r
+               Document document = DocumentBuilderFactory.newInstance()\r
+                               .newDocumentBuilder().newDocument();\r
                DOMResult result = new DOMResult(document);\r
+               if (!marshaller.supports(source.getClass()))\r
+                       throw new SlcException("Object of type " + source.getClass()\r
+                                       + " not supported.");\r
                marshaller.marshal(source, result);\r
                return new DOMSource(result.getNode());\r
        }\r
 \r
-\r
-\r
        public void setMarshaller(Marshaller marshaller) {\r
                this.marshaller = marshaller;\r
        }\r
 \r
-       \r
 }\r