public void execute(final VirtualFile file) throws VcsException {
    if (Depth.INFINITY.equals(myDepth)) {
      executeDown(file);
      return;
    }

    if (!operation(file)) {
      return;
    }

    if (Depth.EMPTY.equals(myDepth)) {
      return;
    }

    for (VirtualFile child : file.getChildren()) {
      if (Depth.FILES.equals(myDepth) && child.isDirectory()) {
        continue;
      }
      operation(child);
    }
  }
public void execute(final VirtualFile file)