package gov.nysenate.openleg.client.view.agenda;
import gov.nysenate.openleg.client.view.base.ListView;
import gov.nysenate.openleg.client.view.base.ViewObject;
import gov.nysenate.openleg.model.agenda.AgendaInfoCommittee;
import gov.nysenate.openleg.model.agenda.AgendaVoteCommittee;
import gov.nysenate.openleg.service.bill.data.BillDataService;
import java.time.LocalDateTime;
import static java.util.stream.Collectors.toList;
public class AgendaCommAddendumView implements ViewObject
{
private String addendumId;
private LocalDateTime modifiedDateTime;
private boolean hasVotes = false;
private AgendaMeetingView meeting;
private ListView<AgendaItemView> bills;
private AgendaVoteView voteInfo;
public AgendaCommAddendumView(String addendumId, LocalDateTime modDateTime, AgendaInfoCommittee infoComm,
AgendaVoteCommittee voteComm, BillDataService billDataService) {
this.addendumId = addendumId;
if (infoComm != null) {
this.modifiedDateTime = modDateTime;
this.meeting = new AgendaMeetingView(infoComm.getChair(), infoComm.getLocation(),
infoComm.getMeetingDateTime(), infoComm.getNotes());
this.bills = ListView.of(infoComm.getItems().stream()
.map(i -> new AgendaItemView(i, billDataService))
.collect(toList()));
this.hasVotes = voteComm != null;
if (this.hasVotes) {
this.voteInfo = new AgendaVoteView(voteComm);
}
}
}
public String getAddendumId() {
return addendumId;
}
public LocalDateTime getModifiedDateTime() {
return modifiedDateTime;
}
public boolean isHasVotes() {
return hasVotes;
}
public AgendaMeetingView getMeeting() {
return meeting;
}
public ListView<AgendaItemView> getBills() {
return bills;
}
public AgendaVoteView getVoteInfo() {
return voteInfo;
}
@Override
public String getViewType() {
return "agenda-addendum";
}
}