String printClassLoaders() {
// generate an ordered id
List< TreeEntry > rootNodes = new ArrayList< TreeEntry >();
for (TreeEntry entry : nodeHash.values()) {
if (entry.getType().equals("root"))
rootNodes.add(entry);
}
markupId(-1, rootNodes); // here root nodes have already been sorted
List< TreeEntry > allNodes = rootNodes;
for (TreeEntry entry : nodeHash.values()) {
if (!entry.getType().equals("root"))
allNodes.add(entry);
}
StringBuilder sb = new StringBuilder(512);
sb.append("{label:\"name\",identifier:\"id\",items:[");
Iterator< TreeEntry > list = allNodes.iterator();
while (list.hasNext()) {
TreeEntry curr = list.next();
sb.append("{name:\"").append(curr.getName())
.append("\",id:\"").append(curr.getId())
.append("\",type:\"").append(curr.getType())
.append("\",children:[");
Iterator< TreeEntry > children = curr.getChildren().iterator();
// the first child is Classes and the second one is Interfaces
printClasses(sb, children.next());
sb.append(",");
printClasses(sb, children.next());
while (children.hasNext()) {
TreeEntry child = children.next();
sb.append(",{_reference:\"").append(child.getId()).append("\"}");
}
if (list.hasNext())
sb.append("]},");
else
sb.append("]}");
}
sb.append("]}");
return sb.toString();
}
|