Action (@NotNull TreePath path, @NotNull AbstractTreeNode node, @NotNull T element) { if (matches(node, element)) { LOG.debug("found ", path); if (predicate == null) return Action.INTERRUPT; if (predicate.test(path)) return Action.CONTINUE; } else if (contains(node, element)) { LOG.debug("visit ", path); return Action.CONTINUE; } return Action.SKIP_CHILDREN; }