package org.codehaus.mojo.ship; import org.apache.maven.artifact.Artifact; import org.codehaus.plexus.util.StringUtils; /** * Selects a specific project artifact. */ public final class Selector { private String classifier; private String type; public Selector(String type, String classifier) { this.type = type; this.classifier = classifier; } public Selector() { } public String getClassifier() { return classifier; } public void setClassifier(String classifier) { this.classifier = classifier; } public String getType() { return type; } public void setType(String type) { this.type = type; } public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } Selector selector = (Selector) o; if (classifier != null ? !classifier.equals(selector.classifier) : selector.classifier != null) { return false; } if (type != null ? !type.equals(selector.type) : selector.type != null) { return false; } return true; } public int hashCode() { return 0; } public String toString() { return "groupId:artifactId:version" + (type == null ? "" : ":" + type) + (classifier == null ? "" : ":" + classifier); } public boolean matches(Artifact artifact) { if (!StringUtils.isEmpty(type)) { if (!type.equals(artifact.getType()) && !type.equals(artifact.getArtifactHandler().getExtension()) && !type.equals(artifact.getArtifactHandler().getPackaging())) { return false; } } if (classifier == null) { return artifact.getClassifier() == null; } else { return classifier.equals(artifact.getClassifier()); } } }