private int getMaxDepth(Tree<N> tree) { int maxChildDepth = tree.getPathToRoot().size(); return tree.getChildren().stream().mapToInt(this::getMaxDepth).max().orElse(maxChildDepth); } }
private int getMaxDepth(Tree<N> tree) { int maxChildDepth = tree.getPathToRoot().size(); return tree.getChildren().stream().mapToInt(this::getMaxDepth).max().orElse(maxChildDepth); } }
private int getMaxDepth(Tree<N> tree) { int maxChildDepth = tree.getPathToRoot().size(); return tree.getChildren().stream().mapToInt(this::getMaxDepth).max().orElse(maxChildDepth); } }
private int getMaxDepth(Tree<N> tree) { int maxChildDepth = tree.getPathToRoot().size(); return tree.getChildren().stream().mapToInt(this::getMaxDepth).max().orElse(maxChildDepth); } }
private static void fill(Tree<OWLAxiom> tree, List<OWLAxiom> ordering, Map<OWLAxiom, Integer> indentMap) { if (!tree.isRoot()) { ordering.add(tree.getUserObject()); indentMap.put(tree.getUserObject(), tree.getPathToRoot().size() - 2); } for(Tree<OWLAxiom> child : tree.getChildren()) { fill(child, ordering, indentMap); } }
/** * Render axiom tree in indented Markdown using the provided renderer. * * @param tree indented collection of axioms * @param renderer renderer for displaying axioms and entities * @return */ private static String renderTree(Tree<OWLAxiom> tree, OWLObjectRenderer renderer) { StringBuilder builder = new StringBuilder(); if (tree.isRoot()) { builder.append("## "); builder.append(renderer.render(tree.getUserObject())); builder.append(" ##"); builder.append("\n"); } else { String padding = tree.getPathToRoot().stream().skip(1).map(x -> " ").collect(Collectors.joining()); builder.append(padding); builder.append("- "); builder.append(renderer.render(tree.getUserObject())); } if (!tree.isLeaf()) builder.append("\n"); String children = tree.getChildren() .stream() .map(child -> renderTree(child, renderer)) .collect(Collectors.joining("\n")); builder.append(children); return builder.toString(); }