public static <T> boolean processAll(@NotNull T root, @NotNull TreeGuide<T> treeGuide, final @NotNull Processor<? super T> processor) {
    final boolean[] result = {true};
    new WalkingState<T>(treeGuide) {
      @Override
      public void visit(@NotNull T element) {
        if (!processor.process(element)) {
          stopWalking();
          result[0] = false;
        }
        else {
          super.visit(element);
        }
      }
    }.visit(root);
    return result[0];
  }
public static <T> boolean processAll(@NotNull T root, @NotNull TreeGuide<T> treeGuide, final @NotNull Processor<? super T> processor)