📄 domtofile.java
字号:
currentNode = (Element) parentNode; if (tryToWriteFile(currentNode)) { return; } } else { return; } } } // writeFirstFileInPath /** * * @param nodeToWrite * @param nodeType * @param fileDir * @param filename * * @throws NumberFormatException */ public static void writeFileFromNode(Element nodeToWrite, int nodeType, String fileDir, String fileName) throws NumberFormatException, FailedToWriteFileException { System.out.println("current write file nodetype is :" + nodeType); System.out.println("nodeType :" + nodeType); switch (nodeType) { case GLOBAL: case DIGITAL_DIAL_PLAN: case IP_DIAL_PLAN: case FEATURE_SERVER: case MARSHAL_SERVER: case CDR_SERVER: case HEARTBEAT_SERVER: case PDP_SERVER: case OSP_SERVER: case DVR: case ENV: case REDIRECT_SERVER: { String fileType = null; if (nodeToWrite.hasAttribute("fileDir")) { nodeToWrite.removeAttribute("fileDir"); } if (nodeToWrite.hasAttribute("fileName")) { nodeToWrite.removeAttribute("fileName"); } if (nodeToWrite.hasAttribute("fileType")) { fileType = nodeToWrite.getAttribute("fileType"); nodeToWrite.removeAttribute("fileType"); } String xmlString = new XMLUtils().buildXMLString(nodeToWrite); writeAsIs(xmlString, fileDir, fileName); nodeToWrite.setAttribute("fileDir", fileDir); nodeToWrite.setAttribute("fileName", fileName); if (fileType != null) { nodeToWrite.setAttribute("fileType", fileType); } break; } case FEATURE_SERVERS: case MARSHAL_SERVERS: case CDR_SERVERS: case HEARTBEAT_SERVERS: case REDIRECT_SERVERS: case DVR_CLIENT: case ENV_CLIENT: case PDP_SERVERS: { writeListOfServers(nodeToWrite, fileDir, fileName); break; } /* case DVR_CLIENT: { writeListOfClient(nodeToWrite, fileDir, fileName); break; } case ENV_CLIENT: { writeListOfServers(nodeToWrite, fileDir, fileName); break; } */ default: { String nodeTypeString = null; try { nodeTypeString = TreeNodeTypes.strings[nodeType]; } catch (ArrayIndexOutOfBoundsException e) { nodeTypeString = Integer.toString(nodeType); } System.out.println("cannot write file for node of type " + nodeTypeString); throw new NumberFormatException(); } } } // writeFileFromNode /** * Write the given string to the given file. * My apologies for the connection kluge. It is for Deployment. * I realized at the last moment that I need to * establish a connection through something other * than the AdministrativeLogin screen. * @param xmlString content of file to be written * @param fileDir directory path of file to be written * @param filename name of file to be written * @throws FailedToWriteFileException if the write was not successful */ protected static void writeAsIs(String xmlString, String fileDir, String filename) throws FailedToWriteFileException { // if the AdministrativeLogin screen returns a null connection, // get one from the Deployment class. VPPTransactionWrapper connection = AdministrativeLogin.getConnection(); if (connection == null) { connection = DeployServers.getConnection(); if (connection == null) { System.out.println("Error: null connection"); return; } } try { connection.doPut(fileDir, filename, xmlString); } catch (VPPException e) { VPPTransactionWrapper.showVPPException(e, "Error writing " + filename + " to " + fileDir); throw new FailedToWriteFileException(e.getMessage()); } } private static void writeListOfClient(final Element nodeToWrite, String fileDir, String filename) throws FailedToWriteFileException { System.out.println("string :" + nodeToWrite); try { TransformerFactory tf = TransformerFactory.newInstance(); Class thisClass = Class.forName("vocal.data.DOMToFile"); java.io.InputStream resourceInput = thisClass.getResourceAsStream("resources/ListOfClient.xsl"); if(resourceInput == null) { System.out.println("resourceInput is null"); } StreamSource xslSource = new StreamSource(resourceInput); Transformer transformer = tf.newTransformer(xslSource); DOMSource source = new DOMSource(nodeToWrite); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); transformer.transform(source, result); System.out.println("string :" + writer.getBuffer().toString()); StringBuffer outputBuf = writer.getBuffer(); // delete the <? xml version line outputBuf.delete(0, outputBuf.indexOf("?>") + 3); writeAsIs(writer.getBuffer().toString(), fileDir, filename); } catch (TransformerConfigurationException e1) { e1.printStackTrace(); } catch (TransformerException e2) { e2.printStackTrace(); } catch (ClassNotFoundException e3) { e3.printStackTrace(); } } private static void writeListOfServers(final Element nodeToWrite, String fileDir, String filename) throws FailedToWriteFileException { try { TransformerFactory tf = TransformerFactory.newInstance(); Class thisClass = Class.forName("vocal.data.DOMToFile"); java.io.InputStream resourceInput = thisClass.getResourceAsStream("resources/ListOfServers.xsl"); if(resourceInput == null) { System.out.println("resourceInput is null"); } StreamSource xslSource = new StreamSource(resourceInput); Transformer transformer = tf.newTransformer(xslSource); //NodeList aaa = DOMSource source = new DOMSource(nodeToWrite); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); System.out.println("string :" + nodeToWrite); //System.out.println("string :" + writer.getBuffer().toString()); transformer.transform(source, result); System.out.println("string :" + writer.getBuffer().toString()); StringBuffer outputBuf = writer.getBuffer(); // delete the <? xml version line outputBuf.delete(0, outputBuf.indexOf("?>") + 3); writeAsIs(writer.getBuffer().toString(), fileDir, filename); } catch (TransformerConfigurationException e1) { e1.printStackTrace(); } catch (TransformerException e2) { e2.printStackTrace(); } catch (ClassNotFoundException e3) { e3.printStackTrace(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -