package org.trianacode.http;
import org.trianacode.taskgraph.tool.Tool;
import org.trianacode.taskgraph.tool.ToolboxTree;
/**
* @author Andrew Harrison
* @version 1.0.0 Oct 30, 2010
*/
public class XmlSerializer implements TreeSerializer {
@Override
public String begin() {
return "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
}
@Override
public String end() {
return "";
}
@Override
public String endBranch(boolean toolbox) {
if (toolbox) {
return "</toolbox>";
}
return "</package>";
}
@Override
public String endLeaf() {
return "";
}
@Override
public String startNode(ToolboxTree.TreeNode node) {
boolean leaf = node.isLeaf();
if (!leaf) {
if (node.isToolbox()) {
return "<toolbox name=\"" + node.getName() + "\">";
}
return "<package name=\"" + node.getName() + "\">";
} else {
Tool tool = node.getTool();
if (tool == null) {
return "<tool name=\"" + node.getName() + "\"/>";
} else {
return "<tool name=\"" + node.getName() + "\" href=\"" + PathController.getInstance().getToolPath(tool) + "\"/>";
}
}
}
@Override
public String startRoot(ToolboxTree.TreeNode node) {
return "<toolboxes>";
}
@Override
public String endRoot() {
return "</toolboxes>";
}
}