Show TestHierarchyDocument.java syntax highlighted
package ca.ucalgary.cpsc.ebe.fitClipse.ui.testHierarchy;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.internal.UIPlugin;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import ca.ucalgary.cpsc.ebe.fitClipse.connector.IServerConnector;
import ca.ucalgary.cpsc.ebe.fitClipse.connector.ServerConnectorFactory;
import ca.ucalgary.cpsc.ebe.fitClipse.ui.testHierarchy.model.WikiPageModel;
public class TestHierarchyDocument {
public TestHierarchyDocument(){
}
public WikiPageModel buildModel() throws Exception{
IServerConnector instance = ServerConnectorFactory.getServerInstance(null);
String xmlDoc = "<fit-tree></fit-tree>";
if(instance != null){
xmlDoc = instance.getWikiPageTree();
}else{
System.out.println("NULL POINTER (CONNECTOR)");
MessageDialog.openWarning(UIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(), "Warning", "You have not connected to a server!");
}
InputStream xmlStream = new ByteArrayInputStream(xmlDoc.getBytes());
System.out.println(xmlDoc);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
WikiPageModel root = new WikiPageModel(null);
root.setName("root");
try{
DocumentBuilder db = dbf.newDocumentBuilder();
Document dom = null;
dom = db.parse(xmlStream);
Node node = dom.getFirstChild().getFirstChild();
while(node != null){
if(node.getNodeType() == Node.ELEMENT_NODE){
Element element = (Element)node;
WikiPageModel model = new WikiPageModel(root);
model.setName(element.getAttribute("name").substring(1, element.getAttribute("name").length()));
if("true".equals(element.getAttribute("project"))){
model.setProject(true);
}
if("true".equals(element.getAttribute("storyCard"))){
model.setStoryCard(true);
}
if("true".equals(element.getAttribute("fitTest"))){
model.setFitTest(true);
}
if("true".equals(element.getAttribute("release"))){
model.setRelease(true);
}
if("true".equals(element.getAttribute("task"))){
model.setTask(true);
}if("true".equals(element.getAttribute("iteration"))){
model.setIteration(true);
}
root.addChild(model);
doChildren(element, "", model);
}
node = node.getNextSibling();
}
}catch(Exception e){
return null;
}
return root;
}
private void doChildren(Element element, String nameSpace, WikiPageModel parent){
nameSpace += element.getAttribute("name");
Node child = element.getFirstChild();
//we have at least one child node
while(child != null){
if(child.getNodeType() == Node.ELEMENT_NODE){
Element childElement = (Element)child;
WikiPageModel model = new WikiPageModel(parent);
model.setName(childElement.getAttribute("name").substring(1, childElement.getAttribute("name").length()));
model.setNameSpace(nameSpace);
if("true".equals(childElement.getAttribute("project"))){
model.setProject(true);
}
if("true".equals(childElement.getAttribute("storyCard"))){
model.setStoryCard(true);
}
if("true".equals(childElement.getAttribute("fitTest"))){
model.setFitTest(true);
}
if("true".equals(childElement.getAttribute("release"))){
model.setRelease(true);
}
if("true".equals(childElement.getAttribute("task"))){
model.setTask(true);
}if("true".equals(childElement.getAttribute("iteration"))){
model.setIteration(true);
}
parent.addChild(model);
doChildren(childElement, nameSpace, model);
}
child = child.getNextSibling();
}
}
}
See more files for this project here