Class CustomerGroupServiceImpl

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected com.github.benmanes.caffeine.cache.Cache<java.lang.String,​java.lang.String> keyToIdCache  
      protected static int MAXIMUM_ALLOWED_UPDATE_ACTIONS  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.concurrent.CompletionStage<java.util.Map<java.lang.String,​java.lang.String>> cacheKeysToIds​(java.util.Set<java.lang.String> customerGroupKeys)
      Filters out the keys which are already cached and fetches only the not-cached customer group keys from the CTP project defined in an injected ProjectApiRoot and stores a mapping for every customer group to id in the cached map of keys -> ids and returns this cached map.
      java.util.concurrent.CompletionStage<java.util.Map<java.lang.String,​java.lang.String>> cacheKeysToIdsUsingGraphQl​(java.util.Set<java.lang.String> keysToCache, GraphQlQueryResource queryResource)  
      java.util.concurrent.CompletionStage<java.util.Optional<java.lang.String>> fetchCachedCustomerGroupId​(java.lang.String key)
      Given a key, this method first checks if a cached map of customer group keys -> ids contains the key.
      protected java.util.Set<java.lang.String> getKeysNotCached​(java.util.Set<java.lang.String> keys)
      Given a set of keys this method collects all keys which aren't already contained in the cache keyToIdCache
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • keyToIdCache

        protected final com.github.benmanes.caffeine.cache.Cache<java.lang.String,​java.lang.String> keyToIdCache
      • MAXIMUM_ALLOWED_UPDATE_ACTIONS

        protected static final int MAXIMUM_ALLOWED_UPDATE_ACTIONS
        See Also:
        Constant Field Values
    • Constructor Detail

      • CustomerGroupServiceImpl

        public CustomerGroupServiceImpl​(@Nonnull
                                        BaseSyncOptions syncOptions)
    • Method Detail

      • cacheKeysToIds

        @Nonnull
        public java.util.concurrent.CompletionStage<java.util.Map<java.lang.String,​java.lang.String>> cacheKeysToIds​(@Nonnull
                                                                                                                           java.util.Set<java.lang.String> customerGroupKeys)
        Description copied from interface: CustomerGroupService
        Filters out the keys which are already cached and fetches only the not-cached customer group keys from the CTP project defined in an injected ProjectApiRoot and stores a mapping for every customer group to id in the cached map of keys -> ids and returns this cached map.
        Specified by:
        cacheKeysToIds in interface CustomerGroupService
        Parameters:
        customerGroupKeys - - a set customer group keys to fetch and cache the ids for
        Returns:
        CompletionStage<Map> in which the result of it's completion contains a map of requested customer group keys -> ids
      • fetchCachedCustomerGroupId

        @Nonnull
        public java.util.concurrent.CompletionStage<java.util.Optional<java.lang.String>> fetchCachedCustomerGroupId​(@Nonnull
                                                                                                                     java.lang.String key)
        Description copied from interface: CustomerGroupService
        Given a key, this method first checks if a cached map of customer group keys -> ids contains the key. If not, it returns a completed future that contains an Optional that contains what this key maps to in the cache. If the cache doesn't contain the key; this method attempts to fetch the id of the key from the CTP project, caches it and returns a CompletionStage<Optional<String>> in which the result of its completion could contain an Optional with the id inside of it or an empty Optional if no CustomerGroup was found in the CTP project with this key.
        Specified by:
        fetchCachedCustomerGroupId in interface CustomerGroupService
        Parameters:
        key - the key by which a CustomerGroup id should be fetched from the CTP project.
        Returns:
        CompletionStage<Optional<String>> in which the result of its completion could contain an Optional with the id inside of it or an empty Optional if no CustomerGroup was found in the CTP project with this key or a blank (null/empty string) key was supplied.
      • getKeysNotCached

        @Nonnull
        protected java.util.Set<java.lang.String> getKeysNotCached​(@Nonnull
                                                                   java.util.Set<java.lang.String> keys)
        Given a set of keys this method collects all keys which aren't already contained in the cache keyToIdCache
        Parameters:
        keys - Set of keys
        Returns:
        a Set of keys which aren't already contained in the cache or empty
      • cacheKeysToIdsUsingGraphQl

        @Nonnull
        public java.util.concurrent.CompletionStage<java.util.Map<java.lang.String,​java.lang.String>> cacheKeysToIdsUsingGraphQl​(@Nonnull
                                                                                                                                       java.util.Set<java.lang.String> keysToCache,
                                                                                                                                       @Nonnull
                                                                                                                                       GraphQlQueryResource queryResource)