private void createParentLink(JavaTree tree) { if (!tree.isLeaf()) { for (Iterator<Tree> iter = tree.childrenIterator(); iter.hasNext(); ) { Tree next = iter.next(); if (next != null) { parentLink.put(next, tree); createParentLink((JavaTree) next); } } } }
private void visitChildren(Tree tree) { JavaTree javaTree = (JavaTree) tree; if (!javaTree.isLeaf()) { for (Iterator<Tree> iter = javaTree.childrenIterator(); iter.hasNext(); ) { Tree next = iter.next(); if (next != null) { visit(next); } } } }
private void visitChildren(Tree tree) { JavaTree javaTree = (JavaTree) tree; if (!javaTree.isLeaf()) { for (Iterator<Tree> iter = javaTree.childrenIterator(); iter.hasNext(); ) { Tree next = iter.next(); if (next != null && !isExcluded(next)) { visit(next); } } } }
private static boolean areEquivalent(@Nullable JavaTree leftNode, @Nullable JavaTree rightNode) { if (leftNode == rightNode) { return true; } if (leftNode == null || rightNode == null) { return false; } if (leftNode.getKind() != rightNode.getKind()) { return false; } else if (leftNode.isLeaf()) { return areLeafsEquivalent(leftNode, rightNode); } else if (leftNode.getKind() == Tree.Kind.OTHER) { return false; } Iterator<Tree> iteratorA = leftNode.childrenIterator(); Iterator<Tree> iteratorB = rightNode.childrenIterator(); while (iteratorA.hasNext() && iteratorB.hasNext()) { if (!areEquivalent(iteratorA.next(), iteratorB.next())) { return false; } } return !iteratorA.hasNext() && !iteratorB.hasNext(); }
private boolean containsChildrenOfKind(JavaTree tree, Tree.Kind... kinds) { for (Tree.Kind kind : kinds) { if (tree.is(kind)) { return true; } } if (!tree.isLeaf()) { Iterator<Tree> treeIterator = tree.childrenIterator(); while (treeIterator.hasNext()) { JavaTree javaTree = (JavaTree) treeIterator.next(); if (javaTree != null && containsChildrenOfKind(javaTree, kinds)) { return true; } } } return false; }