public void outputDependencies(Set<String> output) {
    for (String artifactKey : artifactKeys) {
      Artifact artifact = getArtifact(artifactKey);

      if (artifact != null) // todo fix null artifacts
      { // todo need a map of the dependsOn tasks, and the revision THIS object asked for

        boolean isSameRevision = artifact.getRequestedRevision().equals(artifact.getRevision());
        String color = isSameRevision ? "black" : "red";
        String edgeLabel =
            isSameRevision ? "" : (" label=\"" + artifact.getRequestedRevision() + "\" , ");
        String line =
            getNiceDotName()
                + " -> "
                + artifact.getNiceDotName()
                + "  ["
                + edgeLabel
                + "color=\""
                + color
                + "\"];";

        output.add(line);
        artifact.outputDependencies(
            output); // todo will this do duplicates?  Need to do a set to reduce dups?
      }
    }
  }