override def hashCode()

in multiversion/src/main/scala/multiversion/outputs/ArtifactOutput.scala [21:65]


  override def hashCode(): Int = this.repr.##

  val classifierRepr: String =
    if (dependency.publication.classifier.nonEmpty)
      s"_${dependency.publication.classifier.value}"
    else ""
  val label: String = dependency.bazelLabel
  val sourcesLabel: String = label + "_sources"
  val repr: String =
    s"""|Artifact(
        |  dep = "${label}",
        |  url = "${artifact.url}",
        |  sha = "${artifactSha256}"
        |)""".stripMargin
  val org: String = dependency.module.organization.value
  val moduleName: String = dependency.module.name.value
  val version: String = dependency.version
  val mavenLabel: String = dependency.mavenLabel
  val mavenSourcesLabel: String = dependency.mavenSourcesLabel
  def hasSources: Boolean = sourcesArtifact.isDefined && sourcesArtifactSha256.isDefined

  def httpFiles: List[TargetOutput] =
    List(httpFile) ::: sourcesHttpFile.toList

  def httpFile: TargetOutput =
    TargetOutput(
      kind = "http_file",
      "name" -> Docs.literal(label),
      "urls" -> Docs.array(artifact.url),
      "sha256" -> Docs.literal(artifactSha256)
    )

  def sourcesHttpFile: Option[TargetOutput] =
    (sourcesArtifact, sourcesArtifactSha256) match {
      case (Some(art), Some(sha)) =>
        Some(
          TargetOutput(
            kind = "http_file",
            "name" -> Docs.literal(sourcesLabel),
            "urls" -> Docs.array(art.url),
            "sha256" -> Docs.literal(sha)
          )
        )
      case _ => None
    }