package gov.nysenate.openleg.service.spotcheck.base; import gov.nysenate.openleg.dao.base.LimitOffset; import gov.nysenate.openleg.dao.base.PaginatedList; import gov.nysenate.openleg.dao.base.SortOrder; import gov.nysenate.openleg.dao.spotcheck.SpotCheckReportDao; import gov.nysenate.openleg.model.spotcheck.*; import org.springframework.dao.EmptyResultDataAccessException; import java.time.LocalDateTime; import java.util.List; import java.util.Set; /** * Provides base functionality for implementors of SpotCheckReportService */ public abstract class BaseSpotCheckReportService<ContentKey> implements SpotCheckReportService<ContentKey> { /** * @return SpotCheckReportDao - the report dao that is used by the implementing report service */ protected abstract SpotCheckReportDao<ContentKey> getReportDao(); /** {@inheritDoc} */ @Override public PaginatedList<DeNormSpotCheckMismatch> getMismatches(MismatchQuery query, LimitOffset limitOffset){ return getReportDao().getMismatches(query, limitOffset); } /** {@inheritDoc} */ @Override public MismatchSummary getMismatchSummary(SpotCheckDataSource dataSource, LocalDateTime summaryDateTime){ return getReportDao().getMismatchSummary(dataSource, summaryDateTime); } /** {@inheritDoc} */ @Override public void saveReport(SpotCheckReport<ContentKey> report) { getReportDao().saveReport(report); } /** {@inheritDoc} */ @Override public void setMismatchIgnoreStatus(int mismatchId, SpotCheckMismatchIgnore ignoreStatus) { getReportDao().setMismatchIgnoreStatus(mismatchId, ignoreStatus); } /** {@inheritDoc} */ @Override public void addIssueId(int mismatchId, String issueId) { getReportDao().addIssueId(mismatchId, issueId); } /** {@inheritDoc} */ @Override public void updateIssueId(int mismatchId, String issueIds) { getReportDao().updateIssueId(mismatchId, issueIds); } /** {@inheritDoc} */ @Override public void deleteIssueId(int mismatchId, String issueId) { getReportDao().deleteIssueId(mismatchId, issueId); } /** * Removes all issues corresponding to given mismatch id * * @param mismatchId int mismatch id */ @Override public void deleteAllIssueId(int mismatchId) { getReportDao().deleteAllIssueId(mismatchId); } }