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. |