package gov.nysenate.openleg.model.agenda;
import gov.nysenate.openleg.model.entity.SessionMember;
import java.io.Serializable;
import java.util.Objects;
public class AgendaVoteAttendance implements Serializable, Comparable<AgendaVoteAttendance>
{
private static final long serialVersionUID = -4328021920936602603L;
/** Member in the attendance list. */
private SessionMember member;
/** The order in which this member is listed. */
private int rank;
/** Indicates the political party of the member. */
private String party;
/** Indicates the attendance status (e.g. Present) */
private String attendStatus;
/** --- Constructors --- */
public AgendaVoteAttendance() {}
public AgendaVoteAttendance(SessionMember member, int rank, String party, String attendStatus) {
this();
this.setMember(member);
this.setRank(rank);
this.setParty(party);
this.setAttendStatus(attendStatus);
}
/** --- Overrides --- */
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
final AgendaVoteAttendance other = (AgendaVoteAttendance) obj;
return Objects.equals(this.member, other.member) &&
Objects.equals(this.rank, other.rank) &&
Objects.equals(this.party, other.party) &&
Objects.equals(this.attendStatus, other.attendStatus);
}
@Override
public int hashCode() {
return Objects.hash(member, rank, party, attendStatus);
}
@Override
public int compareTo(AgendaVoteAttendance o) {
return this.getRank().compareTo(o.getRank());
}
/** --- Basic Getters/Setters --- */
public SessionMember getMember() {
return member;
}
public void setMember(SessionMember member) {
this.member = member;
}
public Integer getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
public String getParty() {
return party;
}
public void setParty(String party) {
this.party = party;
}
public String getAttendStatus () {
return attendStatus;
}
public void setAttendStatus (String attendStatus) {
this.attendStatus = attendStatus;
}
}