package net.ms.designer.editors.workflow.xmlparse; import java.io.File; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import net.ms.designer.editors.workflow.models.ApplicationActivity; import net.ms.designer.editors.workflow.models.ParameterEntire; import org.eclipse.core.resources.ResourcesPlugin; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class ReadFromApplicationXML { // private List applicationList; //��Ŷ�ȡ��� public ReadFromApplicationXML() { } public List readFromApplicationXML(String filePath) throws Exception { // String filePath = // ResourcesPlugin.getWorkspace().getRoot().getFullPath().toOSString(); File file = new File(filePath); if (!file.exists()) { return null; } DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(filePath); document.normalize(); List appList = new ArrayList(); if (document.getDocumentElement() == null) { return null; } if (document.getDocumentElement() != null) { Element wfapplications = document.getDocumentElement(); if (wfapplications.getElementsByTagName("application") != null || wfapplications.getElementsByTagName("application") .getLength() > 0) { NodeList applicationNodeList = wfapplications .getElementsByTagName("application"); if (applicationNodeList == null || applicationNodeList.getLength() < 1) { return null; } else { for (int i = 0; i < applicationNodeList.getLength(); i++) { Element applicationNode = (Element) applicationNodeList .item(i); ApplicationActivity applicationActivity = new ApplicationActivity(); if (applicationNode.getElementsByTagName("id") != null && applicationNode.getElementsByTagName("id") .getLength() > 0) { applicationActivity .setApplicationId(applicationNode .getElementsByTagName("id").item(0) .getFirstChild().getNodeValue()); } if (applicationNode.getElementsByTagName("name") != null && applicationNode.getElementsByTagName("name") .getLength() > 0) { applicationActivity .setApplicationName(applicationNode .getElementsByTagName("name") .item(0).getFirstChild() .getNodeValue()); } if (applicationNode.getElementsByTagName("desc") != null && applicationNode.getElementsByTagName("desc") .getLength() > 0) { applicationActivity .setApplicationDesc(applicationNode .getElementsByTagName("desc") .item(0).getFirstChild() .getNodeValue()); } if (applicationNode.getElementsByTagName("type") != null && applicationNode.getElementsByTagName("type") .getLength() > 0) { applicationActivity .setApplicationType(applicationNode .getElementsByTagName("type") .item(0).getFirstChild() .getNodeValue()); } if (applicationNode.getElementsByTagName("path") != null && applicationNode.getElementsByTagName("path") .getLength() > 0) { applicationActivity .setApplicationPath(applicationNode .getElementsByTagName("path") .item(0).getFirstChild() .getNodeValue()); } if (applicationNode.getElementsByTagName("params") != null && applicationNode.getElementsByTagName( "params").getLength() > 0) { List applicationParaList = new ArrayList(); NodeList applicationParaNodeList = ((Element) applicationNode .getElementsByTagName("params").item(0)) .getElementsByTagName("param"); if (applicationParaNodeList != null && applicationParaNodeList.getLength() > 0) { for (int j = 0; j < applicationParaNodeList .getLength(); j++) { Element applicationPara = (Element) applicationParaNodeList .item(j); ParameterEntire para = new ParameterEntire(); if (applicationPara .getElementsByTagName("name") != null && applicationPara .getElementsByTagName( "name").getLength() > 0) { para.setParaName(applicationPara .getElementsByTagName("name") .item(0).getFirstChild() .getNodeValue()); } if (applicationPara .getElementsByTagName("type") != null && applicationPara .getElementsByTagName( "type").getLength() > 0) { para.setParaType(applicationPara .getElementsByTagName("type") .item(0).getFirstChild() .getNodeValue()); } if (applicationPara .getElementsByTagName("isinput") != null && applicationPara .getElementsByTagName( "isinput") .getLength() > 0) { int isInputTemp = new Integer( applicationPara .getElementsByTagName( "isinput") .item(0) .getFirstChild() .getNodeValue()) .intValue(); if (isInputTemp == 1) { para.setIsInput(true); } if (isInputTemp == 0) { para.setIsInput(false); } } if (applicationPara .getElementsByTagName("isoutput") != null && applicationPara .getElementsByTagName( "isoutput") .getLength() > 0) { int isOutputTemp = new Integer( applicationPara .getElementsByTagName( "isoutput") .item(0) .getFirstChild() .getNodeValue()) .intValue(); if (isOutputTemp == 1) { para.setIsOutput(true); } if (isOutputTemp == 0) { para.setIsOutput(false); } } applicationParaList.add(para); } } applicationActivity .setWfApplicationParam(applicationParaList); } appList.add(applicationActivity); } } } } // this.applicationList = appList; return appList; } }