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=bc496f18ff242e9692de403564445deedf3caa25;hb=825d60c5348dbe3f5be25b0bccf7bdebfe694219;hp=0000000000000000000000000000000000000000;hpb=5e991fff5cba01858dcc5747a27e637325bc5c8e;p=gpl%2Fargeo-jcr.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 0000000..bc496f1 --- /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.CategoryNameVersion; +import org.argeo.slc.build.Distribution; +import org.eclipse.aether.artifact.Artifact; +import org.eclipse.aether.artifact.DefaultArtifact; + +/** A {@link Distribution} based on an Aether {@link Artifact} */ +public class ArtifactDistribution implements Distribution, + CategoryNameVersion { + 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 CategoryNameVersion) { + CategoryNameVersion cnv = (CategoryNameVersion) 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(); + } + +}