Class PriceReferenceResolver

    • Constructor Detail

      • PriceReferenceResolver

        public PriceReferenceResolver​(@Nonnull
                                      ProductSyncOptions options,
                                      @Nonnull
                                      TypeService typeService,
                                      @Nonnull
                                      ChannelService channelService,
                                      @Nonnull
                                      CustomerGroupService customerGroupService)
        Takes a ProductSyncOptions instance, TypeService, a ChannelService and a CustomerGroupService to instantiate a PriceReferenceResolver instance that could be used to resolve the prices of variant drafts in the CTP project specified in the injected ProductSyncOptions instance.
        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 channels for reference resolution.
        customerGroupService - the service to fetch the customer groups for reference resolution.
    • Method Detail

      • resolveReferences

        public java.util.concurrent.CompletionStage<com.commercetools.api.models.common.PriceDraft> resolveReferences​(@Nonnull
                                                                                                                      com.commercetools.api.models.common.PriceDraft priceDraft)
        Given a PriceDraft this method attempts to resolve the custom type and channel references to return a CompletionStage which contains a new instance of the draft with the resolved references.

        The method then tries to fetch the key of the customer group, optimistically from a cache. If the id is not found in cache nor the CTP project the ReferenceResolutionException will be thrown.

        Specified by:
        resolveReferences in class BaseReferenceResolver<com.commercetools.api.models.common.PriceDraft,​ProductSyncOptions>
        Parameters:
        priceDraft - the priceDraft to resolve it's references.
        Returns:
        a CompletionStage that contains as a result a new inventoryEntryDraft instance with resolved references or, in case an error occurs during reference resolution a ReferenceResolutionException.
      • resolveCustomTypeReference

        @Nonnull
        protected java.util.concurrent.CompletionStage<com.commercetools.api.models.common.PriceDraftBuilder> resolveCustomTypeReference​(@Nonnull
                                                                                                                                         com.commercetools.api.models.common.PriceDraftBuilder 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.common.PriceDraft,​com.commercetools.api.models.common.PriceDraftBuilder,​ProductSyncOptions>
        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.