Class ChannelServiceImpl
- java.lang.Object
 - 
- com.commercetools.sync.services.impl.ChannelServiceImpl
 
 
- 
- All Implemented Interfaces:
 ChannelService
public final class ChannelServiceImpl extends java.lang.Object implements ChannelService
 
- 
- 
Field Summary
Fields Modifier and Type Field Description protected com.github.benmanes.caffeine.cache.Cache<java.lang.String,java.lang.String>keyToIdCacheprotected static intMAXIMUM_ALLOWED_UPDATE_ACTIONS 
- 
Constructor Summary
Constructors Constructor Description ChannelServiceImpl(BaseSyncOptions syncOptions, java.util.Set<io.sphere.sdk.channels.ChannelRole> channelRoles) 
- 
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> channelKeys)Filters out the keys which are already cached and fetches only the not-cached channel keys from the CTP project defined in an injectedSphereClientand 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 suppliedkeyand 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 suppliedkey.java.util.concurrent.CompletionStage<java.util.Optional<java.lang.String>>fetchCachedChannelId(java.lang.String key)Given akey, this method first checks if a cached map of channel keys -> ids is not empty. 
 - 
 
- 
- 
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
- 
ChannelServiceImpl
public ChannelServiceImpl(@Nonnull BaseSyncOptions syncOptions, @Nonnull java.util.Set<io.sphere.sdk.channels.ChannelRole> channelRoles) 
 - 
 
- 
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> channelKeys)Description copied from interface:ChannelServiceFilters out the keys which are already cached and fetches only the not-cached channel keys from the CTP project defined in an injectedSphereClientand stores a mapping for every channel to id in the cached map of keys -> ids and returns this cached map.- Specified by:
 cacheKeysToIdsin interfaceChannelService- Parameters:
 channelKeys- - a set of channel keys to fetch and cache the ids for- Returns:
 CompletionStage<Map> in which the result of it's completion contains a map of requested tax channel -> ids
 
- 
fetchCachedChannelId
@Nonnull public java.util.concurrent.CompletionStage<java.util.Optional<java.lang.String>> fetchCachedChannelId(@Nonnull java.lang.String key)Description copied from interface:ChannelServiceGiven akey, 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 anOptionalwith the id inside of it or an emptyOptionalif noChannelwas found in the CTP project with this key.- Specified by:
 fetchCachedChannelIdin interfaceChannelService- Parameters:
 key- the key by which aChannelid should be fetched from the CTP project.- Returns:
 CompletionStage<Optional<String>> in which the result of it's completion could contain anOptionalwith the id inside of it or an emptyOptionalif noChannelwas found in the CTP project with this external id.
 
- 
createChannel
@Nonnull public java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.channels.Channel>> createChannel(@Nonnull java.lang.String key)Description copied from interface:ChannelServiceCreates a new channel with the suppliedkey.- Specified by:
 createChannelin interfaceChannelService- Parameters:
 key- key of supply channel.- Returns:
 - a future containing as a result the created 
Channelor a sphere exception. 
 
- 
createAndCacheChannel
@Nonnull public java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.channels.Channel>> createAndCacheChannel(@Nonnull java.lang.String key)Description copied from interface:ChannelServiceCreates a new channel with the suppliedkeyand puts a new mapping of it's key to id in a cache map.- Specified by:
 createAndCacheChannelin interfaceChannelService- Parameters:
 key- key of supply channel.- Returns:
 - a future containing as a result the created 
Channelor a sphere exception. 
 
 - 
 
 -