protected String groupsToString(StringBuffer buf, Collection<CallGraphNode> clusters) { int groupNumber = 1; String clusterFormat = parameters.getParameter( ParameterConstants.CLUSTER_TEXT_FORMAT_KEY, ClusterTextFormatEnum.NEWICK.toString()); ClusterTextFormatEnum textFormatEnum = ClusterTextFormatEnum.valueOf(clusterFormat); for (CallGraphNode node : clusters) { buf.append("Group ").append(groupNumber).append(": "); buf.append(node.getSimpleName()).append(":\n"); if (node instanceof CallGraphCluster) { CallGraphCluster cluster = (CallGraphCluster) node; if (ClusterTextFormatEnum.FLAT.equals(textFormatEnum)) { clusterToFlatGroupString(buf, cluster); } else { cluster.toNestedString(1, buf); } } else { // Regular CallGraphNode buf.append(" ").append(node.getSimpleName()).append("\n"); } groupNumber++; } String clustersString = buf.toString(); return clustersString; }
protected void clusterToFlatGroupString(StringBuffer buf, CallGraphCluster cluster) { SortedSet<CallGraphNode> subnodes = cluster.getElements(); ArrayList<CallGraphNode> subNodeList = new ArrayList<CallGraphNode>(subnodes); Collections.sort(subNodeList, nodeNameComparator); for (CallGraphNode subnode : subNodeList) { buf.append(" ").append(subnode.getSimpleName()).append("\n"); } }