Package com.commercetools.sync.services
Interface CustomObjectService
-
- All Known Implementing Classes:
CustomObjectServiceImpl
public interface CustomObjectService
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.util.concurrent.CompletionStage<java.util.Map<java.lang.String,java.lang.String>>
cacheKeysToIds(java.util.Set<CustomObjectCompositeIdentifier> identifiers)
Filters out the custom object identifiers which are already cached and fetches only the not-cached custom object identifiers from the CTP project defined in an injectedSphereClient
and stores a mapping for every custom object to id in the cached map of keys -> ids and returns this cached map.java.util.concurrent.CompletionStage<java.util.Optional<java.lang.String>>
fetchCachedCustomObjectId(CustomObjectCompositeIdentifier identifier)
Given anidentifier
, this method first checks ifidentifier#toString()
is contained in a cached map ofCustomObjectCompositeIdentifier.toString()
-> ids .java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.customobjects.CustomObject<com.fasterxml.jackson.databind.JsonNode>>>
fetchCustomObject(CustomObjectCompositeIdentifier identifier)
Given a CustomObjectCompositeIdentifier identify which includes key and container of CustomObject, this method fetches a CustomObject that matches this given identifier in the CTP project defined in an injectedSphereClient
.java.util.concurrent.CompletionStage<java.util.Set<io.sphere.sdk.customobjects.CustomObject<com.fasterxml.jackson.databind.JsonNode>>>
fetchMatchingCustomObjects(java.util.Set<CustomObjectCompositeIdentifier> identifiers)
Given aSet
of CustomObjectCompositeIdentifier, this method fetches a set of all the CustomObjects, matching this given set of CustomObjectCompositeIdentifiers in the CTP project defined in an injectedSphereClient
.java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.customobjects.CustomObject<com.fasterxml.jackson.databind.JsonNode>>>
upsertCustomObject(io.sphere.sdk.customobjects.CustomObjectDraft<com.fasterxml.jackson.databind.JsonNode> customObjectDraft)
Given a resource draft of CustomObjectCustomObjectDraft
, this method attempts to create or update a resourceCustomObject
based on it in the CTP project defined by the sync options.
-
-
-
Method Detail
-
cacheKeysToIds
@Nonnull java.util.concurrent.CompletionStage<java.util.Map<java.lang.String,java.lang.String>> cacheKeysToIds(@Nonnull java.util.Set<CustomObjectCompositeIdentifier> identifiers)
Filters out the custom object identifiers which are already cached and fetches only the not-cached custom object identifiers from the CTP project defined in an injectedSphereClient
and stores a mapping for every custom object to id in the cached map of keys -> ids and returns this cached map.- Parameters:
identifiers
- - a set custom object identifiers to fetch and cache the ids for- Returns:
CompletionStage
<Map
> in which the result of it's completion contains a map of requested custom object identifiers -> ids
-
fetchCachedCustomObjectId
@Nonnull java.util.concurrent.CompletionStage<java.util.Optional<java.lang.String>> fetchCachedCustomObjectId(@Nonnull CustomObjectCompositeIdentifier identifier)
Given anidentifier
, this method first checks ifidentifier#toString()
is contained in a cached map ofCustomObjectCompositeIdentifier.toString()
-> ids . If it contains, it returns aCompletionStage
<Optional
<String
>> in which String is what this identifier maps to in the cache. If the cache doesn't contain the identifier, this method attempts to fetch the id of the identifier from the CTP project, caches it and returns aCompletionStage
<Optional
<String
>> in which theOptional
could contain the id inside of it.- Parameters:
identifier
- the identifier object containing CustomObject key and container, by which aCustomObject
id should be fetched from the CTP project.- Returns:
CompletionStage
<Optional
<String
>> in which the result of its completion could contain anOptional
with the id inside of it or an emptyOptional
if noCustomObject
was found in the CTP project with this identifier.
-
fetchMatchingCustomObjects
@Nonnull java.util.concurrent.CompletionStage<java.util.Set<io.sphere.sdk.customobjects.CustomObject<com.fasterxml.jackson.databind.JsonNode>>> fetchMatchingCustomObjects(@Nonnull java.util.Set<CustomObjectCompositeIdentifier> identifiers)
Given aSet
of CustomObjectCompositeIdentifier, this method fetches a set of all the CustomObjects, matching this given set of CustomObjectCompositeIdentifiers in the CTP project defined in an injectedSphereClient
. A mapping of the CustomObjectCompositeIdentifier to the id of the fetched CustomObject is persisted in an in-memory map.- Parameters:
identifiers
- set of CustomObjectCompositeIdentifiers. Each identifier includes key and container to fetch matching CustomObject.- Returns:
CompletionStage
<Map
> in which the result of its completion contains aSet
of all matching CustomObjects.
-
fetchCustomObject
@Nonnull java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.customobjects.CustomObject<com.fasterxml.jackson.databind.JsonNode>>> fetchCustomObject(@Nonnull CustomObjectCompositeIdentifier identifier)
Given a CustomObjectCompositeIdentifier identify which includes key and container of CustomObject, this method fetches a CustomObject that matches this given identifier in the CTP project defined in an injectedSphereClient
. If there is no matching CustomObject an emptyOptional
will be returned in the returned future.- Parameters:
identifier
- the identifier of the CustomObject to fetch.- Returns:
CompletionStage
<Optional
> in which the result of its completion contains anOptional
that contains the matchingCustomObject
if exists, otherwise empty.
-
upsertCustomObject
@Nonnull java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.customobjects.CustomObject<com.fasterxml.jackson.databind.JsonNode>>> upsertCustomObject(@Nonnull io.sphere.sdk.customobjects.CustomObjectDraft<com.fasterxml.jackson.databind.JsonNode> customObjectDraft)
Given a resource draft of CustomObjectCustomObjectDraft
, this method attempts to create or update a resourceCustomObject
based on it in the CTP project defined by the sync options.A completion stage containing an empty optional and the error callback will be triggered in those cases:
- the draft has a blank key
- the create request fails on CTP
On the other hand, if the resource gets created or updated successfully on CTP, then the created resource's id and key/container wrapped by
CustomObjectCompositeIdentifier
are cached and the method returns aCompletionStage
in which the result of its completion contains an instanceOptional
of the resource which was created or updated.If an object with the given container/key exists on CTP, the object will be replaced with the new value and the version is incremente.
- Parameters:
customObjectDraft
- the resource draft to create or update a resource based off of.- Returns:
- a
CompletionStage
containing an optional with the created/updated resource if successful otherwise an empty optional.
-
-