Class InventoryReferenceResolver


  • public final class InventoryReferenceResolver
    extends CustomReferenceResolver<com.commercetools.api.models.inventory.InventoryEntryDraft,​com.commercetools.api.models.inventory.InventoryEntryDraftBuilder,​InventorySyncOptions>
    • Constructor Detail

      • InventoryReferenceResolver

        public InventoryReferenceResolver​(@Nonnull
                                          InventorySyncOptions options,
                                          @Nonnull
                                          TypeService typeService,
                                          @Nonnull
                                          ChannelService channelService)
        Takes a InventorySyncOptions instance, a TypeService and a ChannelService to instantiate a InventoryReferenceResolver instance that could be used to resolve the type and supply channel references of inventory drafts.
        Parameters:
        options - the container of all the options of the sync process including the CTP project client and/or configuration and other sync-specific options.
        typeService - the service to fetch the custom types for reference resolution.
        channelService - the service to fetch the supply channels for reference resolution.
    • Method Detail

      • resolveReferences

        public java.util.concurrent.CompletionStage<com.commercetools.api.models.inventory.InventoryEntryDraft> resolveReferences​(@Nonnull
                                                                                                                                  com.commercetools.api.models.inventory.InventoryEntryDraft draft)
        Given a InventoryEntryDraft this method attempts to resolve the custom type and supply channel resource identifiers to return a CompletionStage which contains a new instance of the draft with the resolved resource identifiers.
        Specified by:
        resolveReferences in class BaseReferenceResolver<com.commercetools.api.models.inventory.InventoryEntryDraft,​InventorySyncOptions>
        Parameters:
        draft - the inventoryEntryDraft to resolve its resource identifiers.
        Returns:
        a CompletionStage that contains as a result a new inventoryEntryDraft instance with resolved resource identifiers or, in case an error occurs during reference resolution, a ReferenceResolutionException.
      • resolveCustomTypeReference

        @Nonnull
        protected java.util.concurrent.CompletionStage<com.commercetools.api.models.inventory.InventoryEntryDraftBuilder> resolveCustomTypeReference​(@Nonnull
                                                                                                                                                     com.commercetools.api.models.inventory.InventoryEntryDraftBuilder draftBuilder)
        Description copied from class: CustomReferenceResolver
        Given a draft of D (e.g. CategoryDraft) this method attempts to resolve it's custom type reference to return CompletionStage which contains a new instance of the draft with the resolved custom type reference.

        The method then tries to fetch the key of the custom type, optimistically from a cache. If the key is is not found, the resultant draft would remain exactly the same as the passed draft (without a custom type reference resolution).

        Specified by:
        resolveCustomTypeReference in class CustomReferenceResolver<com.commercetools.api.models.inventory.InventoryEntryDraft,​com.commercetools.api.models.inventory.InventoryEntryDraftBuilder,​InventorySyncOptions>
        Parameters:
        draftBuilder - the draft builder to resolve it's references.
        Returns:
        a CompletionStage that contains as a result a new draft instance with resolved custom type references or, in case an error occurs during reference resolution, a ReferenceResolutionException.
      • populateKeyToIdCachesForReferencedKeys

        @Nonnull
        public java.util.concurrent.CompletableFuture<java.util.List<java.util.Map<java.lang.String,​java.lang.String>>> populateKeyToIdCachesForReferencedKeys​(@Nonnull
                                                                                                                                                                     InventoryBatchValidator.ReferencedKeys referencedKeys)
        Calls the cacheKeysToIds service methods to fetch all the referenced keys (supply channel and type) from the commercetools to populate caches for the reference resolution.

        Note: This method is meant be only used internally by the library to improve performance.

        Parameters:
        referencedKeys - a wrapper for the inventory references to fetch and cache the id's for.
        Returns:
        CompletionStage<List<Map<String>String>>> in which the results of it's completions contains a map of requested references keys -> ids of it's references.