Class CounterStorageKeyFunction

    • Constructor Detail

      • CounterStorageKeyFunction

        public CounterStorageKeyFunction()
        Constructor.
    • Method Detail

      • setInterceptorContextLookupStrategy

        public void setInterceptorContextLookupStrategy​(@Nonnull
                                                        Function<ProfileRequestContext,​ProfileInterceptorContext> strategy)
        Set the profile interceptor context lookup strategy.
        Parameters:
        strategy - the profile interceptor context lookup strategy
      • setStorageContextLookupStrategy

        public void setStorageContextLookupStrategy​(@Nonnull
                                                    Function<ProfileRequestContext,​String> strategy)
        Set the storage context lookup strategy.
        Parameters:
        strategy - the storage context lookup strategy
      • getStorageService

        @Nonnull
        protected StorageService getStorageService​(@Nonnull
                                                   ProfileRequestContext profileRequestContext)
        Get the storage service from the flow descriptor of the profile interceptor context. The profile interceptor context is retrieved by applying the profile interceptor context lookup strategy to the profile request context. The storage service is retrieved from the flow descriptor of the last interceptor flow which was attempted.
        Parameters:
        profileRequestContext - the profile request context
        Returns:
        the storage service
        Throws:
        ConstraintViolationException - if the lookup strategy returns null, the interceptor flow descriptor is null, or the storage service is null
      • getStorageContext

        @Nonnull
        protected String getStorageContext​(@Nonnull
                                           ProfileRequestContext profileRequestContext)
        Get the storage context by applying the storage context lookup strategy to the profile request context.
        Parameters:
        profileRequestContext - the profile request context
        Returns:
        the storage context
        Throws:
        ConstraintViolationException - if the lookup strategy returns null
      • getCounterStorageKey

        @Nonnull
        protected String getCounterStorageKey​(@Nonnull
                                              String storageKey)
        Get the storage key for the storage record whose value is a counter.
        Parameters:
        storageKey - the storage key
        Returns:
        the storage key for the storage record whose value is a counter
      • getStorageKeyCounter

        @Nullable
        protected Long getStorageKeyCounter​(@Nonnull
                                            StorageService storageService,
                                            @Nonnull
                                            String storageContext,
                                            @Nonnull
                                            String storageKey)
                                     throws IOException
        Get the counter for the given storage key.
        Parameters:
        storageService - the storage service
        storageContext - the storage context
        storageKey - the storage key
        Returns:
        the counter for the given storage key
        Throws:
        IOException - if a storage service error occurs
        NumberFormatException - if the storage record value cannot be parsed as an integer
      • getStorageKeyCounters

        @Nonnull
        protected Map<String,​Long> getStorageKeyCounters​(@Nonnull
                                                               ProfileRequestContext profileRequestContext,
                                                               @Nonnull
                                                               List<String> storageKeys)
        Get the map of storage keys to counters.
        Parameters:
        profileRequestContext - the profile request context
        storageKeys - the storage keys
        Returns:
        map of storage keys to counters