Class RecordServiceUtil

java.lang.Object
com.bluebell.greenhouse.radicle.services.RecordServiceUtil

public final class RecordServiceUtil extends Object
Utility functions shared by record services.
Version:
2.0.6
Author:
Stephen Prizio
  • Method Details

    • validateRecordParameters

      public static void validateRecordParameters(LocalDate start, LocalDate end, Account account, RecordTimeInterval interval, ZoneId zoneId)
      Validates standard parameters for account record services.
      Parameters:
      start - start date
      end - end date
      account - Account
      interval - RecordTimeInterval
      zoneId - ZoneId
    • validateRecordDateParameters

      public static void validateRecordDateParameters(LocalDate start, LocalDate end, RecordTimeInterval interval, ZoneId zoneId)
      Validates standard date parameters for record services.
      Parameters:
      start - start date
      end - end date
      interval - RecordTimeInterval
      zoneId - ZoneId
    • validateRecordLogParameters

      public static void validateRecordLogParameters(User user, LocalDate start, LocalDate end, RecordTimeInterval interval, ZoneId zoneId)
      Validates standard parameters for portfolio-level record log services.
      Parameters:
      user - User
      start - start date
      end - end date
      interval - RecordTimeInterval
      zoneId - ZoneId
    • buildRecordLogEntries

      public static <T> List<T> buildRecordLogEntries(List<Account> accounts, Function<Account,T> recordFactory, Predicate<T> recordFilter)
      Builds per-account record log entries for accounts with non-empty records.
      Type Parameters:
      T - log entry record type
      Parameters:
      accounts - accounts
      recordFactory - record factory
      recordFilter - record filter
      Returns:
      List of records
    • countDistinctAccounts

      public static <T> int countDistinctAccounts(List<T> records, Function<T,String> accountNumber)
      Counts the distinct accounts represented by record log entries.
      Type Parameters:
      T - log entry record type
      Parameters:
      records - records
      accountNumber - account number resolver
      Returns:
      count
    • convertLocalDateBoundaryToUtc

      public static LocalDateTime convertLocalDateBoundaryToUtc(LocalDate date, ZoneId zoneId)
      Converts a local calendar-day boundary to its UTC equivalent.
      Parameters:
      date - local date
      zoneId - source timezone
      Returns:
      UTC boundary
    • convertUtcToLocalDateTime

      public static LocalDateTime convertUtcToLocalDateTime(LocalDateTime utcDateTime, ZoneId zoneId)
      Converts a stored UTC timestamp into a local date/time for bucket calculations.
      Parameters:
      utcDateTime - stored UTC timestamp
      zoneId - target timezone
      Returns:
      localized date/time
    • convertUtcToLocalDate

      public static LocalDate convertUtcToLocalDate(LocalDateTime utcDateTime, ZoneId zoneId)
      Converts a stored UTC timestamp into a local date for bucket calculations.
      Parameters:
      utcDateTime - stored UTC timestamp
      zoneId - target timezone
      Returns:
      localized date
    • resolveFirstInterval

      public static RecordInterval resolveFirstInterval(LocalDate start, RecordTimeInterval interval)
      Resolves the first interval range for a start date.
      Parameters:
      start - requested start date
      interval - RecordTimeInterval
      Returns:
      RecordInterval
    • resolveRecentStart

      public static LocalDateTime resolveRecentStart(LocalDateTime firstEventDateTime, RecordTimeInterval interval)
      Resolves the first local date/time for recent records.
      Parameters:
      firstEventDateTime - first event date/time
      interval - RecordTimeInterval
      Returns:
      start date/time
    • resolveRecentEnd

      public static LocalDateTime resolveRecentEnd(LocalDateTime lastEventDateTime, RecordTimeInterval interval)
      Resolves the compare/end local date/time for recent records.
      Parameters:
      lastEventDateTime - last event date/time
      interval - RecordTimeInterval
      Returns:
      compare date/time
    • sortAndLimitRecords

      public static <T extends Comparable<? super T>> List<T> sortAndLimitRecords(List<T> records, int count)
      Applies standard record sorting and limiting.
      Type Parameters:
      T - comparable record type
      Parameters:
      records - records
      count - limit
      Returns:
      sorted and limited records