package net.ms.designer.editors.workflow.xmlparse; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.util.Iterator; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import net.ms.designer.core.IOStreams; import net.ms.designer.editors.workflow.models.ApplicationActivity; import net.ms.designer.editors.workflow.models.ParameterEntire; import net.ms.designer.editors.workflow.models.WorkflowDiagram; import org.w3c.dom.CDATASection; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Text; public class WriteToApplicationsXML { private List applicationList; public WriteToApplicationsXML(List applicationList) { this.applicationList = applicationList; } public void writeApplicationsXML(String outFile) throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = null; try { db = dbf.newDocumentBuilder(); } catch (ParserConfigurationException pce) { System.err.println(pce); System.exit(1); } Document doc = null; doc = db.newDocument(); // �����ǽ���XML�ĵ����ݵĹ��̣��Ƚ�����Ԫ�� Element root = doc.createElement("wfapplications"); // ��Ԫ��������ĵ� doc.appendChild(root); Iterator it = this.applicationList.iterator(); while(it.hasNext()) { ApplicationActivity applicationActivity = (ApplicationActivity)it.next(); Element application = doc.createElement("application"); if(applicationActivity.getApplicationId() != null && applicationActivity.getApplicationId().length()>0) { Element id = doc.createElement("id"); Text id_model = doc.createTextNode(applicationActivity.getApplicationId()); id.appendChild(id_model); application.appendChild(id); } if(applicationActivity.getApplicationName() != null && applicationActivity.getApplicationName().length()>0) { Element name = doc.createElement("name"); Text name_model = doc.createTextNode(applicationActivity.getApplicationName()); name.appendChild(name_model); application.appendChild(name); } if(applicationActivity.getApplicationDesc() !=null && applicationActivity.getApplicationDesc().length()>0) { Element desc = doc.createElement("desc"); Text desc_model = doc.createTextNode(applicationActivity.getApplicationDesc()); desc.appendChild(desc_model); application.appendChild(desc); } if(applicationActivity.getApplicationType() != null && applicationActivity.getApplicationType().length()>0) { Element type = doc.createElement("type"); Text type_model = doc.createTextNode(applicationActivity.getApplicationType()); type.appendChild(type_model); application.appendChild(type); } if(applicationActivity.getApplicationPath() != null && applicationActivity.getApplicationPath().length()>0) { Element path = doc.createElement("path"); Text path_model = doc.createTextNode(applicationActivity.getApplicationPath()); path.appendChild(path_model); application.appendChild(path); } if(applicationActivity.getWfApplicationParam() != null && applicationActivity.getWfApplicationParam().size()>0) { Element params = doc.createElement("params"); Iterator itPara = applicationActivity.getWfApplicationParam().iterator(); while(itPara.hasNext()) { ParameterEntire parameter = (ParameterEntire)itPara.next(); Element param = doc.createElement("param"); if(parameter.getParaName() != null && parameter.getParaName().length()>0) { Element paramName = doc.createElement("name"); Text paramName_model = doc.createTextNode(parameter.getParaName()); paramName.appendChild(paramName_model); param.appendChild(paramName); } if(parameter.getParaType() != null && parameter.getParaType().length()>0) { Element paramType = doc.createElement("type"); Text paramType_model = doc.createTextNode(parameter.getParaType()); paramType.appendChild(paramType_model); param.appendChild(paramType); } Element paramIsInput = doc.createElement("isinput"); int isInputTemp; if(parameter.getIsInput() == true) isInputTemp = 1; else isInputTemp = 0; Text paramIsInput_model = doc.createTextNode(isInputTemp+""); paramIsInput.appendChild(paramIsInput_model); param.appendChild(paramIsInput); Element paramIsOutput = doc.createElement("isoutput"); int isOutputTemp; if(parameter.getIsOutput() == true) isOutputTemp = 1; else isOutputTemp = 0; Text paramIsOutput_model = doc.createTextNode(isOutputTemp+""); paramIsOutput.appendChild(paramIsOutput_model); param.appendChild(paramIsOutput); params.appendChild(param); } application.appendChild(params); } root.appendChild(application); } // FileOutputStream outStream = new FileOutputStream(outFile); // OutputStreamWriter outWriter = new OutputStreamWriter(outStream,"UTF-8"); // ((XmlDocument) doc).write(outWriter, "UTF-8"); // outWriter.close(); // outStream.close(); IOStreams ioStreams = new IOStreams (); ioStreams.transformToFile(doc,outFile); } }