package gov.nysenate.openleg.model.bill; import com.google.common.collect.ComparisonChain; import java.io.Serializable; public class ApprovalId implements Serializable, Comparable<ApprovalId>{ private static final long serialVersionUID = -814579920389237357L; /** The year in which the approval was signed */ private int year; /** The number id for the approval */ private int approvalNumber; /** --- Constructors --- */ public ApprovalId(int year, int approvalNumber) { this.year = year; this.approvalNumber = approvalNumber; } /** --- Overrides --- */ @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ApprovalId approvalId = (ApprovalId) o; if (approvalNumber != approvalId.approvalNumber) return false; if (year != approvalId.year) return false; return true; } @Override public int hashCode() { int result = year; result = 31 * result + approvalNumber; return result; } @Override public int compareTo(ApprovalId o) { return ComparisonChain.start() .compare(this.year, o.year) .compare(this.approvalNumber, o.approvalNumber) .result(); } @Override public String toString() { return year + "-" + approvalNumber; } /** --- Getters/Setters --- */ public int getYear() { return year; } public int getApprovalNumber() { return approvalNumber; } }