package gov.nysenate.openleg.model.bill;
import gov.nysenate.openleg.model.base.PublishStatus;
import gov.nysenate.openleg.model.base.Version;
import java.time.LocalDateTime;
import java.util.*;
/**
* Contains a sample of the fields in {@link gov.nysenate.openleg.model.bill.Bill}.
* This is useful for retrieving a quick summary of a bill instead of composing
* the entire Bill model which may take longer to create.
*/
public class BillInfo
{
protected BillId billId;
protected Version activeVersion;
protected int year;
protected LocalDateTime publishedDateTime;
protected String title;
protected String summary;
protected BillStatus status;
protected BillSponsor sponsor;
protected List<BillStatus> milestones = new ArrayList<>();
protected List<BillAction> actions = new ArrayList<>();
protected Map<Version, PublishStatus> amendPublishStatusMap = new TreeMap<>();
protected BillId substitutedBy;
protected ProgramInfo programInfo;
/** --- Constructors --- */
public BillInfo() {}
public BillInfo(Bill bill) {
this.billId = bill.getBaseBillId();
this.activeVersion = bill.getActiveVersion();
this.year = bill.getYear();
this.publishedDateTime = bill.getPublishedDateTime();
this.title = bill.getTitle();
this.summary = bill.getSummary();
this.status = bill.getStatus();
this.sponsor = bill.getSponsor();
this.substitutedBy = bill.getSubstitutedBy();
this.programInfo = bill.getProgramInfo();
this.milestones = bill.getMilestones();
this.actions = bill.getActions();
this.amendPublishStatusMap = new TreeMap<>(bill.getAmendPublishStatusMap());
}
/** --- Basic Getters/Setters --- */
public BillId getBillId() {
return billId;
}
public void setBillId(BillId billId) {
this.billId = billId;
}
public Version getActiveVersion() {
return activeVersion;
}
public void setActiveVersion(Version activeVersion) {
this.activeVersion = activeVersion;
}
public int getYear() {
return year;
}
public LocalDateTime getPublishedDateTime() {
return publishedDateTime;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getSummary() {
return summary;
}
public void setSummary(String summary) {
this.summary = summary;
}
public BillStatus getStatus() {
return status;
}
public void setStatus(BillStatus status) {
this.status = status;
}
public BillSponsor getSponsor() {
return sponsor;
}
public void setSponsor(BillSponsor sponsor) {
this.sponsor = sponsor;
}
public List<BillStatus> getMilestones() {
return milestones;
}
public void setMilestones(List<BillStatus> milestones) {
this.milestones = milestones;
}
public List<BillAction> getActions() {
return actions;
}
public ProgramInfo getProgramInfo() {
return programInfo;
}
public void setProgramInfo(ProgramInfo programInfo) {
this.programInfo = programInfo;
}
public BillId getSubstitutedBy() {
return substitutedBy;
}
public void setSubstitutedBy(BillId substitutedBy) {
this.substitutedBy = substitutedBy;
}
public Map<Version, PublishStatus> getAmendPublishStatusMap() {
return amendPublishStatusMap;
}
public void setAmendPublishStatusMap(Map<Version, PublishStatus> amendPublishStatusMap) {
this.amendPublishStatusMap = amendPublishStatusMap;
}
}