package org.jvnet.hudson.plugins.jira.issueversioning.domain.api.model.rest;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import com.google.common.base.Preconditions;
/**
* @author Stig Kleppe-Jorgensen, 2009.12.28
* @fixme add description
*/
@XmlRootElement
public final class Build {
public static final Build EMPTY = new Build();
@XmlElement
private final int number;
@XmlElement
private final Set<String> issues;
/**
* JAXB need default constructor to work.
*/
private Build() {
number = -1;
issues = new HashSet<String>();
}
public Build(int number, Set<String> issues) {
Preconditions.checkArgument(number > 0, "number must be greater than 0");
Preconditions.checkNotNull(issues, "issues cannot be null");
this.number = number;
this.issues = issues;
}
public int getNumber() {
return number;
}
public Set<String> getIssues() {
return Collections.unmodifiableSet(issues);
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Build build = (Build) o;
return number == build.number && issues.equals(build.issues);
}
@Override
public int hashCode() {
return 31 * number + issues.hashCode();
}
}