package eu.clarin.cmdi.mdservice.action; import org.apache.commons.lang.*; import com.opensymphony.xwork2.ActionSupport; import net.sf.json.JSON; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JSONSerializer; import net.sf.json.JSONException; import net.sf.json.xml.XMLSerializer; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.StringReader; import java.io.StringWriter; import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; import java.io.ByteArrayInputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; 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 org.apache.commons.io.IOUtils; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import eu.clarin.cmdi.mdservice.model.Query; /** * Query load , save from PROFILE * * @author * */ public class SaveWorkspaceAction extends GenericProxyAction { /** * */ private static final long serialVersionUID = 1L; private String q; private String id; private String base_path; /* public XMLSerializer getXMLSerializer(){ if (serializer == null){ serializer = new XMLSerializer(); } return serializer; } public JSONSerializer getJSONSerializer(){ if (json_serializer == null){ json_serializer = new JSONSerializer(); } return json_serializer; } */ public String getQ() { return q; } public void setQ(String q) { this.q = q; } public String getID() { return id; } public void setID(String _id) { this.id = _id; } public String getWorkspaceProfile() { return "WorkspaceProfile.xml"; } public String getBasePath() { if (base_path == null) { base_path = Admin.getConfig().getProperty("query.path"); } return base_path; } public String getPath() { String targetPath = getBasePath() + getWorkspaceProfile(); return targetPath; } public String getProxyKey() { return ""; } public String getFullFormat() { return ""; } public void changeNodeName(Document doc, Node node, String new_name){ // Create an element with the new name Node node2 = (Node ) doc.createElement(new_name); // Copy the attributes to the new element NamedNodeMap attrs = element.getAttributes(); for (int i=0; i 0){ Admin.notifyUser(0 + "::" + list.item(0).getNodeName() + "::" + list.item(0).getParentNode().getNodeName()); if (list.item(0).getParentNode().getNodeName().equals("Queries")){ changeNodeName(document, list.item(0),"Query"); }else{ if (list.item(0).getParentNode().getNodeName().equals("Querysets")){ changeNodeName(document, list.item(0),"Queryset"); } else{ if (list.item(0).getParentNode().getNodeName().equals("collections")){ changeNodeName(document, list.item(0),"item"); } } } list = document.getElementsByTagName("e"); } Transformer transformer; try { transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); StreamResult result = new StreamResult(new StringWriter()); DOMSource source = new DOMSource(document); try { transformer.transform(source, result); String xmlString = result.getWriter().toString(); Admin.notifyUser("XML:" + xmlString); InputStream is_xml = new ByteArrayInputStream( xmlString.getBytes( ) ); Admin.writeToFile(getPath(), is_xml); } catch (TransformerException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } catch (TransformerConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransformerFactoryConfigurationError e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public String execute() throws Exception { prepare(); return SUCCESS; } }