/** {@inheritDoc} */ @Override public void updateJobCountPerDays(final Calendar asOfDay) { final Calendar today = CalendarUtils.getCalendarWithoutTime(); today.setTime(asOfDay.getTime()); final Calendar yesterday = CalendarUtils.getCalendarWithoutTime(); yesterday.add(Calendar.DAY_OF_YEAR, -1); final List<JobCountPerDay> latestTwoJobCountPerDays = jobCountPerDayDao.getLatestTwoJobCounts(); // If nothing exists yet, create an entry with zero jobs. if (latestTwoJobCountPerDays.isEmpty()) { jobCountPerDayDao.save(new JobCountPerDay(yesterday.getTime(), 0L, 0L, 0L)); } boolean containsToday = false; // Let's make sure we have a value for today for (JobCountPerDay jobCountPerDay : latestTwoJobCountPerDays) { if (today.getTime().equals(jobCountPerDay.getJobDate())) { containsToday = true; break; } } if (!containsToday) { // We need to create a value for today final Long totalNumberOfJobs = this.getJobsCount(); jobCountPerDayDao.save(new JobCountPerDay(today.getTime(), 0L, 0L, totalNumberOfJobs)); } }