code: public Set<ProjectModel> getAllProjects(boolean recursive)
      {
          if (!recursive)
              return Collections.singleton(getCanonicalProject());
          else
              return addProjects(new HashSet<ProjectModel>(), this);
      }
docs: Recursively crawls this {@link ProjectModelTraversal} and adds all of the {@link ProjectModel}s to a {@link Set}. The exact projects returns
  will be affected by the {@link TraversalStrategy} in use by the current traversal.