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
}