MCPcopy Create free account
hub / github.com/rambaut/figtree / appendTree

Method appendTree

src/figtree/application/JSONTreeExporter.java:209–248  ·  view source on GitHub ↗

Prepare for writing a tree. If a taxa block exists and is suitable for tree, do nothing. If not, write a new taxa block. @param tree @param node @param builder

(RootedTree tree, Node node, StringBuilder builder, int indent)

Source from the content-addressed store, hash-verified

207 * @param builder
208 */
209 private void appendTree(RootedTree tree, Node node, StringBuilder builder, int indent) {
210 builder.append("{\n");
211
212 if (tree.isExternal(node)) {
213 appendIndent(builder, indent + 1);
214 appendTaxonName(tree.getTaxon(node), builder);
215 } else {
216 appendIndent(builder, indent + 1);
217 builder.append("\"children\": [\n");
218 java.util.List<Node> children = tree.getChildren(node);
219 final int last = children.size() - 1;
220 for (int i = 0; i < children.size(); i++) {
221 appendIndent(builder, indent + 2);
222 appendTree(tree, children.get(i), builder, indent + 2);
223 builder.append(i == last ? "\n" : ",\n");
224 }
225 appendIndent(builder, indent + 1);
226 builder.append("]");
227 }
228
229 Node parent = tree.getParent(node);
230 if (parent != null) {
231 if (tree.hasLengths()) {
232 builder.append(",\n");
233 appendIndent(builder, indent + 1);
234 builder.append("\"length\": ").append(tree.getLength(node));
235 }
236 }
237
238 builder.append(",\n");
239 appendIndent(builder, indent + 1);
240 builder.append("\"height\": ").append(tree.getHeight(node));
241
242 appendAttributes(node, builder, indent + 1);
243
244 builder.append("\n");
245
246 appendIndent(builder, indent);
247 builder.append("}");
248 }
249
250 public static double roundDouble(double value, int decimalPlace) {
251 double power_of_ten = 1;

Callers 1

writeTreesMethod · 0.95

Calls 12

appendIndentMethod · 0.95
appendTaxonNameMethod · 0.95
appendAttributesMethod · 0.95
hasLengthsMethod · 0.80
getMethod · 0.65
appendMethod · 0.45
isExternalMethod · 0.45
getTaxonMethod · 0.45
getChildrenMethod · 0.45
getParentMethod · 0.45
getLengthMethod · 0.45
getHeightMethod · 0.45

Tested by

no test coverage detected