public final class ChannelServiceImpl extends java.lang.Object implements ChannelService
| Modifier and Type | Field and Description |
|---|---|
protected com.github.benmanes.caffeine.cache.Cache<java.lang.String,java.lang.String> |
keyToIdCache |
protected static int |
MAXIMUM_ALLOWED_UPDATE_ACTIONS |
| Constructor and Description |
|---|
ChannelServiceImpl(BaseSyncOptions syncOptions,
java.util.Set<io.sphere.sdk.channels.ChannelRole> channelRoles) |
| Modifier and Type | Method and Description |
|---|---|
java.util.concurrent.CompletionStage<java.util.Map<java.lang.String,java.lang.String>> |
cacheKeysToIds(java.util.Set<java.lang.String> channelKeys)
Filters out the keys which are already cached and fetches only the not-cached channel keys from
the CTP project defined in an injected
SphereClient and stores a mapping for every
channel to id in the cached map of keys -> ids and returns this cached map. |
java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.channels.Channel>> |
createAndCacheChannel(java.lang.String key)
Creates a new channel with the supplied
key and puts a new mapping of it's key to id in
a cache map. |
java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.channels.Channel>> |
createChannel(java.lang.String key)
Creates a new channel with the supplied
key. |
java.util.concurrent.CompletionStage<java.util.Optional<java.lang.String>> |
fetchCachedChannelId(java.lang.String key)
Given a
key, this method first checks if a cached map of channel keys -> ids is not
empty. |
protected final com.github.benmanes.caffeine.cache.Cache<java.lang.String,java.lang.String> keyToIdCache
protected static final int MAXIMUM_ALLOWED_UPDATE_ACTIONS
public ChannelServiceImpl(@Nonnull
BaseSyncOptions syncOptions,
@Nonnull
java.util.Set<io.sphere.sdk.channels.ChannelRole> channelRoles)
@Nonnull
public java.util.concurrent.CompletionStage<java.util.Map<java.lang.String,java.lang.String>> cacheKeysToIds(@Nonnull
java.util.Set<java.lang.String> channelKeys)
ChannelServiceSphereClient and stores a mapping for every
channel to id in the cached map of keys -> ids and returns this cached map.cacheKeysToIds in interface ChannelServicechannelKeys - - a set of channel keys to fetch and cache the ids forCompletionStage<Map> in which the result of it's completion
contains a map of requested tax channel -> ids@Nonnull
public java.util.concurrent.CompletionStage<java.util.Optional<java.lang.String>> fetchCachedChannelId(@Nonnull
java.lang.String key)
ChannelServicekey, this method first checks if a cached map of channel keys -> ids is not
empty. If not, it returns a completed future that contains an optional that contains what this
key maps to in the cache. If the cache is empty, the method populates the cache with the
mapping of all channels' keys to ids in the CTP project, by querying the CTP project channels.
After that, the method returns a CompletionStage<Optional<String>> in which the result of it's completion could contain an Optional with
the id inside of it or an empty Optional if no Channel was found in the CTP
project with this key.
fetchCachedChannelId in interface ChannelServicekey - the key by which a Channel id should be fetched from the CTP project.CompletionStage<Optional<String>> in which the
result of it's completion could contain an Optional with the id inside of it or an
empty Optional if no Channel was found in the CTP project with this
external id.@Nonnull
public java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.channels.Channel>> createChannel(@Nonnull
java.lang.String key)
ChannelServicekey.createChannel in interface ChannelServicekey - key of supply channel.Channel or a sphere exception.@Nonnull
public java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.channels.Channel>> createAndCacheChannel(@Nonnull
java.lang.String key)
ChannelServicekey and puts a new mapping of it's key to id in
a cache map.createAndCacheChannel in interface ChannelServicekey - key of supply channel.Channel or a sphere exception.