private Optional<Period> resolve(DbSession dbSession, String projectUuid, String analysisProjectVersion, String propertyValue) { Integer days = parseDaysQuietly(propertyValue); if (days != null) { return resolveByDays(dbSession, projectUuid, days, propertyValue); } Instant date = parseDate(propertyValue); if (date != null) { return resolveByDate(dbSession, projectUuid, date, propertyValue); } List<EventDto> versions = dbClient.eventDao().selectVersionsByMostRecentFirst(dbSession, projectUuid); if (versions.isEmpty()) { return resolveWhenNoExistingVersion(dbSession, projectUuid, analysisProjectVersion, propertyValue); } String mostRecentVersion = Optional.ofNullable(versions.iterator().next().getName()) .orElseThrow(() -> new IllegalStateException("selectVersionsByMostRecentFirst returned a DTO which didn't have a name")); boolean previousVersionPeriod = LEAK_PERIOD_MODE_PREVIOUS_VERSION.equals(propertyValue); if (previousVersionPeriod) { if (versions.size() == 1) { return resolvePreviousVersionWithOnlyOneExistingVersion(dbSession, projectUuid); } return resolvePreviousVersion(dbSession, analysisProjectVersion, versions, mostRecentVersion); } return resolveVersion(dbSession, versions, propertyValue); }