📄 writecnfstring.java
字号:
package org.osu.ogsa.stream.info;import org.osu.ogsa.stream.util.xmlconfig.*;import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import java.io.File;import java.io.IOException;import java.io.*;import org.w3c.dom.Document;import org.w3c.dom.DOMException;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.apache.axis.utils.XMLUtils;import org.apache.log4j.*;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class WriteCnfString{ Document doc; Element app; int nStart = 7; String strDest = "osumed13";// private static Category log = Category.getInstance(WriteCnfString.class.getName()); static Log log = LogFactory.getLog(WriteCnfString.class.getName()); public WriteCnfString() throws javax.xml.parsers.ParserConfigurationException { doc = XMLUtils.newDocument(); app = doc.createElement("Application"); app.setAttribute("name", "client"); app.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation", "schema/stream/Stream/XMLConfigurator.xsd"); } public WriteCnfString(String schema) throws javax.xml.parsers.ParserConfigurationException { doc = XMLUtils.newDocument(); app = doc.createElement("Application"); app.setAttribute("name", "client"); app.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation", schema); } // public void initXMLConfig(XMLConfigurator xmlConfig) public void initXMLConfig(int nStart, int nDest) { this.nStart = nStart; if(nDest >= 10) strDest = "osumed" + nDest; else strDest = "osumed0" + nDest; Integer tempInt; int numSpots, numStages; if(((Boolean)XMLConfigurator.getParameter("filelogging")).booleanValue()) addPara("filelogging", "Boolean", "true"); else addPara("filelogging", "Boolean", "false"); numStages = ((Integer)XMLConfigurator.getParameter("numStages")).intValue(); addPara("numStages", "Integer", Integer.toString(numStages)); addPara("fakeNumStages", "Integer", Integer.toString(numStages)); Node topStages = addTopic("stages"); int temp; String strIp; for(int i = 1; i <= numStages; i ++) { log.debug(topStages); String strStage = "stage" + i; Node topStageI = addTopic(topStages, strStage); if(i == 1) { //the number of placements (sources) tempInt = (Integer)XMLConfigurator.getParameter("sources|numSpots"); numSpots= tempInt.intValue(); addPara(topStageI, "numPlacements", "Integer", Integer.toString(numSpots)); for(int j = 1; j <= numSpots; j++) { //The placements' information// String strIp = (String)(XMLConfigurator.getParameter("sources|spot" + j)); temp = nStart + j - 1; if(nStart >= 10) strIp = "osumed" + temp; else strIp = "osumed0" + temp; addObject(topStageI, "placement" + j, "java.net.URL", "String", "http://"+strIp+":8080/ogsa/services/Stream/StreamService"); } } //The class's information String strClassName = "stages|" + "stage"+ i+ "|class|class_name"; String strClass = (String)XMLConfigurator.getParameter(strClassName); String strClassLocation = "stages|" + "stage" + (i) + "|class|location"; String strLocation = (String)XMLConfigurator.getParameter(strClassLocation); addClass(topStageI, strClass, strLocation); //The destination if(i == numStages) { //the number of placements (sources) addPara(topStageI, "numPlacements", "Integer", "1"); //The placements' information// String strIp = (String)(XMLConfigurator.getParameter("destination")); addObject(topStageI, "placement1", "java.net.URL", "String", "http://"+strDest+":8080/ogsa/services/Stream/StreamService"); } }// XMLUtils.PrettyElementToStream((Element)app, System.out); } public void writeToFile(String filename) { try{ FileWriter f = new FileWriter(filename); String strCnfResults = XMLUtils.ElementToString(getApp()); //log.debug(strCnfResults); int index; String result = new String(""); String result1; while(true) { index = strCnfResults.indexOf('>'); if(index < 0) break; result1 = strCnfResults.substring(0, index + 1); if(result1.lastIndexOf("</") < 0) result += result1; else result += result1 + "\n"; if(index + 1 == strCnfResults.length()) break; strCnfResults = strCnfResults.substring(index + 1, strCnfResults.length()); } //log.debug(result); f.write(result, 0, result.length()); f.close(); } catch(IOException e) { } } public Node addTopic(String name) { return addTopic(app, name); } public Node addTopic(Node father, String name) { log.debug(name); Node en = __createTopic(name); log.debug(en); father.appendChild(en); return en; } private Node __createTopic(String name) { Element en = doc.createElement("Topic"); if(en == null) System.out.println("aksdjfaskdjf"); log.debug(en); en.setAttribute("name", name); return en; } public Node addPara(Node father, String name, String type, String value) { Node en = __createParameter(name, type, value); father.appendChild(en); return en; } public Node addPara(String name, String type, String value) { return addPara(app, name, type, value); } private Node __createParameter(String name, String type, String value) { Element en = doc.createElement("Parameter"); Element child_en = doc.createElement(type); Node nodeValue = doc.createTextNode(value); en.appendChild(child_en); child_en.appendChild(nodeValue); en.setAttribute("name", name); return en; } public Node addObject(String name, String class_name, String type, String type_value) { return addObject(app, name, class_name, type, type_value); } public Node addObject(Node father, String name, String class_name, String type, String type_value) { Node en = __createObject(name, class_name, type, type_value); father.appendChild(en); return en; } public Node __createObject(String name, String class_name, String type, String type_value) { Element en = doc.createElement("Object"); Element child_en = doc.createElement(type); Node nodeValue = doc.createTextNode(type_value); en.appendChild(child_en); child_en.appendChild(nodeValue); en.setAttribute("name", name); en.setAttribute("class", class_name); return en; } public Node addObject(int nstage, String name, String class_name, String type, String type_value) { String strStage = "stage" + nstage; log.debug(strStage); Element stage = getElementByAttr("Topic", "name", strStage); if(stage != null) { log.debug("there is a node named "+ strStage); //Node stage = ndlist.item(0); return addObject(stage, name, class_name, type, type_value); } else //Create a stage node { log.debug("there is not a node named "+ strStage); Element stages = getElementByAttr("Topic", "name", "stages"); //Node stages = stageslist.item(0); Node n1 = addTopic(stages, strStage); return addObject(n1, name, class_name, type, type_value); } } public Node addPara(int nstage, String name, String type, String value) { String strStage = "stage" + nstage; Element stage = getElementByAttr("Topic", "name", strStage); if(stage != null) {// Node stage = ndlist.item(0); return addPara(stage, name, type, value); } else //Create a stage node { log.debug("there is not a node named "+ strStage); Element stages = getElementByAttr("Topic", "name", "stages"); //Node stages = stageslist.item(0); Node n1 = addTopic(stages, strStage); return addPara(n1, name, type, value); } } public void addClass(int nstage, String class_name, String location) { String strStage = "stage" + nstage; Element stage = getElementByAttr("Topic", "name", strStage); if(stage != null) {// Node stage = ndlist.item(0); addClass(stage, class_name, location); } else //Create a stage node { Element stages = getElementByAttr("Topic", "name", "stages");// Node stages = stageslist.item(0); Node n1 = addTopic(stages, strStage); addClass(n1, class_name, location); } } private void addClass(Node stage, String class_name, String location) { Node topClass = addTopic(stage, "class"); addPara(topClass, "class_name", "String", class_name); addObject(topClass, "location", "java.net.URL", "String", location); } public Element getElementByAttr(String tagName, String attrName, String attrValue) { NodeList elementList = app.getElementsByTagName(tagName); int len = elementList.getLength(); log.debug("length:"+len); while(len > 0) { Element foundNode = (Element)elementList.item(len-1); if(attrValue.equals(foundNode.getAttribute(attrName))) return foundNode; len --; } return null; } public Element getApp() { return app; } public static void main(String args[] ) { try{ WriteCnfString xml = new WriteCnfString(); xml.addPara("filelogging", "Boolean", "false"); xml.addPara("numStages", "Integer", "3"); Node topStages = xml.addTopic("stages"); Node topStage1 = xml.addTopic(topStages, "stage1"); xml.addPara(topStage1, "numPlacements", "Integer", "4"); Node topClass = xml.addTopic(topStage1, "class"); xml.addPara(topClass, "class_name", "String", "counting.Producer"); xml.addObject(topClass, "location", "java.net.URL", "String", "http://localhost/"); xml.addObject(topStage1, "placement1", "java.net.URL", "String", "http://localhost:8080/ogsa/services/Stream/StreamService"); xml.addPara(topStage1, "connection1", "String", "placement1"); XMLUtils.PrettyElementToStream(xml.getApp(), System.out); } catch(Exception e) { System.out.println(e); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -