X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.repo%2Fsrc%2Forg%2Fargeo%2Fslc%2Frepo%2FArtifactDistribution.java;fp=org.argeo.slc.repo%2Fsrc%2Forg%2Fargeo%2Fslc%2Frepo%2FArtifactDistribution.java;h=d76da463a044b06b8afbb56658bcce4e8486fe5f;hb=b9505fef5ba8186433e903e9de3c73c17bdf6562;hp=0000000000000000000000000000000000000000;hpb=04ef2e4533e909122a560a5cb6499fa62bac82ec;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.repo/src/org/argeo/slc/repo/ArtifactDistribution.java b/org.argeo.slc.repo/src/org/argeo/slc/repo/ArtifactDistribution.java new file mode 100644 index 000000000..d76da463a --- /dev/null +++ b/org.argeo.slc.repo/src/org/argeo/slc/repo/ArtifactDistribution.java @@ -0,0 +1,63 @@ +package org.argeo.slc.repo; + +import org.argeo.slc.CategorizedNameVersion; +import org.argeo.slc.build.Distribution; +import org.sonatype.aether.artifact.Artifact; +import org.sonatype.aether.util.artifact.DefaultArtifact; + +/** A {@link Distribution} based on an Aether {@link Artifact} */ +public class ArtifactDistribution implements Distribution, + CategorizedNameVersion { + private final Artifact artifact; + + public ArtifactDistribution(Artifact artifact) { + this.artifact = artifact; + } + + public ArtifactDistribution(String coords) { + this(new DefaultArtifact(coords)); + } + + /** Aether coordinates of the underlying artifact. */ + public String getDistributionId() { + return artifact.toString(); + } + + public Artifact getArtifact() { + return artifact; + } + + public String getName() { + return getArtifact().getArtifactId(); + } + + public String getVersion() { + return getArtifact().getVersion(); + } + + public String getCategory() { + return getArtifact().getGroupId(); + } + + @Override + public int hashCode() { + return artifact.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof CategorizedNameVersion) { + CategorizedNameVersion cnv = (CategorizedNameVersion) obj; + return getCategory().equals(cnv.getCategory()) + && getName().equals(cnv.getName()) + && getVersion().equals(cnv.getVersion()); + } else + return artifact.equals(obj); + } + + @Override + public String toString() { + return getDistributionId(); + } + +}