MCPcopy Index your code
hub / github.com/apache/groovy / breadthFirstRest

Method breadthFirstRest

src/main/java/groovy/util/Node.java:690–713  ·  view source on GitHub ↗
(boolean preorder)

Source from the content-addressed store, hash-verified

688 }
689
690 private List breadthFirstRest(boolean preorder) {
691 List answer = new NodeList();
692 Stack stack = new Stack();
693 List nextLevelChildren = preorder ? getDirectChildren() : DefaultGroovyMethods.reverse(getDirectChildren());
694 while (!nextLevelChildren.isEmpty()) {
695 List working = new NodeList(nextLevelChildren);
696 nextLevelChildren = new NodeList();
697 for (Object child : working) {
698 if (preorder) {
699 answer.add(child);
700 } else {
701 stack.push(child);
702 }
703 if (child instanceof Node childNode) {
704 List children = childNode.getDirectChildren();
705 if (children.size() > 1 || (children.size() == 1 && !(children.get(0) instanceof String))) nextLevelChildren.addAll(preorder ? children : DefaultGroovyMethods.reverse(children));
706 }
707 }
708 }
709 while (!stack.isEmpty()) {
710 answer.add(stack.pop());
711 }
712 return answer;
713 }
714
715 /**
716 * Calls the provided closure for all the nodes in the tree

Callers 1

breadthFirstMethod · 0.95

Calls 12

getDirectChildrenMethod · 0.95
reverseMethod · 0.95
callClosureForNodeMethod · 0.95
addMethod · 0.65
sizeMethod · 0.65
getMethod · 0.65
isEmptyMethod · 0.45
pushMethod · 0.45
addAllMethod · 0.45
popMethod · 0.45
getV1Method · 0.45
getV2Method · 0.45

Tested by

no test coverage detected