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)
ChannelService
SphereClient
and stores a mapping for every
channel to id in the cached map of keys -> ids and returns this cached map.cacheKeysToIds
in interface ChannelService
channelKeys
- - 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)
ChannelService
key
, 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 ChannelService
key
- 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)
ChannelService
key
.createChannel
in interface ChannelService
key
- 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)
ChannelService
key
and puts a new mapping of it's key to id in
a cache map.createAndCacheChannel
in interface ChannelService
key
- key of supply channel.Channel
or a sphere exception.