/* * Moonlight|3D Copyright (C) 2005 The Moonlight|3D team * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * Created on Apr 15, 2005 */ package ml.backend.document; import java.io.File; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Result; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerFactoryConfigurationError; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import ml.backend.og.Link; import ml.backend.renderer.Manager; import ml.backend.renderer.RenderEngine; import ml.core.exceptions.Exception; import ml.core.helper.Property; import ml.core.helper.PropertyContainer; import org.w3c.dom.DOMException; import org.w3c.dom.Element; public class FileWriter { private Document document; private String filename; public FileWriter(Document document, String filename) { this.document=document; this.filename=filename; } private void exportCache(org.w3c.dom.Document doc, Element root) { Element cacheRoot=doc.createElement("cache"); for(String nodeName : document.getCacheManager().getNodes().keySet()) { ml.backend.sg.Node node=document.getCacheManager().getNode(nodeName); Element nodeElement=doc.createElement("cachenode"); nodeElement.setAttribute("name",nodeName); Element sgNodeElement=doc.createElement("sgnode"); node.saveToXML(doc,sgNodeElement); nodeElement.appendChild(sgNodeElement); cacheRoot.appendChild(nodeElement); } root.appendChild(cacheRoot); } private void writeProperty(org.w3c.dom.Document doc, Element propertyContainer, Property property) throws DOMException, Exception { property.writeToFile(doc,propertyContainer); } private void exportOG(org.w3c.dom.Document doc, Element root) throws Exception { Element ogRoot=doc.createElement("og"); root.appendChild(ogRoot); Element ogNodes=doc.createElement("nodes"); ogRoot.appendChild(ogNodes); Element ogLinks=doc.createElement("links"); ogRoot.appendChild(ogLinks); // iterate over OG nodes: ml.backend.og.Manager ogManager=document.getOGManager(); List nodeList=ogManager.getNodeList(); for(int i=0;i propertyList=node.getPropertyList(); for(int j=0;j linkList=ogManager.getLinkList(); for(int i=0;i renderEngines=ml.backend.renderer.Manager.getRenderEngines(); Element renderEnginesNode=doc.createElement("renderengines"); for(int i=0;i propertyList=engineProperties.getPropertyList(); for(int j=0;j