package gr.ntua.ivml.mint.util;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import gr.ntua.ivml.mint.persistent.DataUpload;
import gr.ntua.ivml.mint.persistent.XpathHolder;
public class JSTree {
public JSTree() {
}
public JSONArray getJSON(DataUpload du) {
JSONArray result = new JSONArray();
List<? extends TraversableI> children = du.getRootXpath().getChildren();
result = this.getJSON(children);
return result;
}
public JSONArray getJSON(List<? extends TraversableI> children) {
JSONArray result = new JSONArray();
for(TraversableI t : children) {
XpathHolder xp = (XpathHolder) t;
JSONObject child = this.getJSON(xp);
result.add(child);
}
return result;
}
public JSONObject getJSON(XpathHolder xp) {
JSONObject result = new JSONObject();
JSONObject data = new JSONObject();
data.element("title", xp.getName());
result.element("data", data);
result.element("metadata", new JSONObject().element("xpath", xp.getXpathWithPrefix(true)));
List<? extends TraversableI> children = xp.getChildren();
result.element("children", this.getJSON(children));
return result;
}
}