|
From: <rv...@us...> - 2009-06-25 02:50:16
|
Revision: 112
http://treebase.svn.sourceforge.net/treebase/?rev=112&view=rev
Author: rvos
Date: 2009-06-25 02:50:10 +0000 (Thu, 25 Jun 2009)
Log Message:
-----------
Adding NexusServiceRDFa serialization service
Added Paths:
-----------
trunk/treebase-core/src/main/java/org/cipres/treebase/service/nexus/NexusServiceRDFa.java
Added: trunk/treebase-core/src/main/java/org/cipres/treebase/service/nexus/NexusServiceRDFa.java
===================================================================
--- trunk/treebase-core/src/main/java/org/cipres/treebase/service/nexus/NexusServiceRDFa.java (rev 0)
+++ trunk/treebase-core/src/main/java/org/cipres/treebase/service/nexus/NexusServiceRDFa.java 2009-06-25 02:50:10 UTC (rev 112)
@@ -0,0 +1,83 @@
+/**
+ *
+ */
+package org.cipres.treebase.service.nexus;
+
+import java.io.ByteArrayInputStream;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.cipres.treebase.domain.nexus.NexusDataSet;
+import org.cipres.treebase.domain.nexus.nexml.NexmlDocumentConverter;
+import org.cipres.treebase.domain.study.Study;
+import org.dom4j.DocumentException;
+import org.dom4j.io.DocumentResult;
+import org.dom4j.io.DocumentSource;
+import org.dom4j.io.SAXReader;
+import org.nexml.model.Document;
+import org.nexml.model.DocumentFactory;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamSource;
+
+
+/**
+ * @author rvosa
+ *
+ */
+public class NexusServiceRDFa extends NexusServiceNexml {
+ public String serialize(NexusDataSet nexusDataSet) {
+ Document document = null;
+ try {
+ document = DocumentFactory.createDocument();
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ }
+ NexmlDocumentConverter ndc = new NexmlDocumentConverter(null,getTaxonLabelHome(),document);
+ String NeXML = ndc.fromTreeBaseToXml(nexusDataSet).getXmlString();
+ return transform(NeXML);
+ }
+
+ public String serialize(Study study) {
+ Document document = null;
+ try {
+ document = DocumentFactory.createDocument();
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ }
+ NexmlDocumentConverter ndc = new NexmlDocumentConverter(study,getTaxonLabelHome(),document);
+ String NeXML = ndc.fromTreeBaseToXml(study).getXmlString();
+ return transform(NeXML);
+ }
+
+ private String transform(String input) {
+ SAXReader reader = new SAXReader();
+ ByteArrayInputStream bs = new ByteArrayInputStream(input.getBytes());
+ org.dom4j.Document jDomDocument = null;
+ try {
+ jDomDocument = reader.read( bs );
+ } catch (DocumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer = null;
+ try {
+ transformer = factory.newTransformer( new StreamSource( "http://www.nexml.org/nexml/xslt/RDFa2RDFXML.xsl" ) );
+ } catch (TransformerConfigurationException e1) {
+ e1.printStackTrace();
+ }
+ DocumentSource source = new DocumentSource( jDomDocument );
+ DocumentResult result = new DocumentResult();
+ try {
+ transformer.transform( source, result );
+ } catch (TransformerException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ org.dom4j.Document transformedDoc = result.getDocument();
+ return transformedDoc.asXML();
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|