public final class ProductReferenceResolver extends BaseReferenceResolver<io.sphere.sdk.products.ProductDraft,ProductSyncOptions>
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CATEGORIES_DO_NOT_EXIST |
static java.lang.String |
FAILED_TO_RESOLVE_REFERENCE |
static java.lang.String |
PRODUCT_TYPE_DOES_NOT_EXIST |
static java.lang.String |
STATE_DOES_NOT_EXIST |
static java.lang.String |
TAX_CATEGORY_DOES_NOT_EXIST |
BLANK_ID_VALUE_ON_REFERENCE, BLANK_KEY_VALUE_ON_RESOURCE_IDENTIFIER, options
Constructor and Description |
---|
ProductReferenceResolver(ProductSyncOptions productSyncOptions,
ProductTypeService productTypeService,
CategoryService categoryService,
TypeService typeService,
ChannelService channelService,
CustomerGroupService customerGroupService,
TaxCategoryService taxCategoryService,
StateService stateService,
ProductService productService,
CustomObjectService customObjectService,
CustomerService customerService)
Takes a
ProductSyncOptions instance, a ProductTypeService , a CategoryService , a TypeService , a ChannelService , a CustomerGroupService , a TaxCategoryService , a StateService and a ProductService to instantiate a ProductReferenceResolver instance that could be used
to resolve the product type, categories, variants, tax category and product state references of
product drafts in the CTP project specified in the injected ProductSyncOptions
instance. |
Modifier and Type | Method and Description |
---|---|
java.util.concurrent.CompletableFuture<java.util.Map<java.lang.String,java.lang.String>> |
populateKeyToIdCachesForReferencedKeys(ProductBatchValidator.ReferencedKeys referencedKeys)
Calls the
cacheKeysToIds service methods to fetch all the referenced keys (i.e product
type, product attribute) from the commercetools to populate caches for the reference
resolution. |
java.util.concurrent.CompletionStage<io.sphere.sdk.products.ProductDraftBuilder> |
resolveCategoryReferences(io.sphere.sdk.products.ProductDraftBuilder draftBuilder)
Given a
ProductDraftBuilder this method attempts to resolve the categories and
categoryOrderHints to return a CompletionStage which contains a new instance of the
builder with the resolved references. |
java.util.concurrent.CompletionStage<io.sphere.sdk.products.ProductDraftBuilder> |
resolveProductTypeReference(io.sphere.sdk.products.ProductDraftBuilder draftBuilder)
Given a
ProductDraftBuilder this method attempts to resolve the product type to return
a CompletionStage which contains a new instance of the builder with the resolved
product type reference. |
java.util.concurrent.CompletionStage<io.sphere.sdk.products.ProductDraft> |
resolveReferences(io.sphere.sdk.products.ProductDraft productDraft)
Given a
ProductDraft this method attempts to resolve the product type, categories,
variants, tax category and product state references to return a CompletionStage which
contains a new instance of the draft with the resolved references. |
java.util.concurrent.CompletionStage<io.sphere.sdk.products.ProductDraftBuilder> |
resolveStateReference(io.sphere.sdk.products.ProductDraftBuilder draftBuilder)
Given a
ProductDraftBuilder this method attempts to resolve the state to return a
CompletionStage which contains a new instance of the builder with the resolved state
reference. |
java.util.concurrent.CompletionStage<io.sphere.sdk.products.ProductDraftBuilder> |
resolveTaxCategoryReference(io.sphere.sdk.products.ProductDraftBuilder draftBuilder)
Given a
ProductDraftBuilder this method attempts to resolve the tax category to return
a CompletionStage which contains a new instance of the builder with the resolved tax
category reference. |
getIdFromReference, getKeyFromResourceIdentifier
public static final java.lang.String FAILED_TO_RESOLVE_REFERENCE
public static final java.lang.String PRODUCT_TYPE_DOES_NOT_EXIST
public static final java.lang.String TAX_CATEGORY_DOES_NOT_EXIST
public static final java.lang.String CATEGORIES_DO_NOT_EXIST
public static final java.lang.String STATE_DOES_NOT_EXIST
public ProductReferenceResolver(@Nonnull ProductSyncOptions productSyncOptions, @Nonnull ProductTypeService productTypeService, @Nonnull CategoryService categoryService, @Nonnull TypeService typeService, @Nonnull ChannelService channelService, @Nonnull CustomerGroupService customerGroupService, @Nonnull TaxCategoryService taxCategoryService, @Nonnull StateService stateService, @Nonnull ProductService productService, @Nonnull CustomObjectService customObjectService, @Nonnull CustomerService customerService)
ProductSyncOptions
instance, a ProductTypeService
, a CategoryService
, a TypeService
, a ChannelService
, a CustomerGroupService
, a TaxCategoryService
, a StateService
and a ProductService
to instantiate a ProductReferenceResolver
instance that could be used
to resolve the product type, categories, variants, tax category and product state references of
product drafts in the CTP project specified in the injected ProductSyncOptions
instance.productSyncOptions
- the container of all the options of the sync process including the
CTP project client and/or configuration and other sync-specific options.productTypeService
- the service to fetch the product type for reference resolution.categoryService
- the service to fetch the categories for reference resolution.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.taxCategoryService
- the service to fetch tax categories for reference resolution.stateService
- the service to fetch product states for reference resolution.productService
- the service to fetch products for product reference resolution on
reference attributes.customObjectService
- the service to fetch custom objects for reference resolution.customerService
- the service to fetch customers for reference resolution.public java.util.concurrent.CompletionStage<io.sphere.sdk.products.ProductDraft> resolveReferences(@Nonnull io.sphere.sdk.products.ProductDraft productDraft)
ProductDraft
this method attempts to resolve the product type, categories,
variants, tax category and product state references to return a CompletionStage
which
contains a new instance of the draft with the resolved references.resolveReferences
in class BaseReferenceResolver<io.sphere.sdk.products.ProductDraft,ProductSyncOptions>
productDraft
- the productDraft to resolve it's references.CompletionStage
that contains as a result a new productDraft instance with
resolved references or, in case an error occurs during reference resolution, a ReferenceResolutionException
.@Nonnull public java.util.concurrent.CompletionStage<io.sphere.sdk.products.ProductDraftBuilder> resolveProductTypeReference(@Nonnull io.sphere.sdk.products.ProductDraftBuilder draftBuilder)
ProductDraftBuilder
this method attempts to resolve the product type to return
a CompletionStage
which contains a new instance of the builder with the resolved
product type reference.draftBuilder
- the productDraft to resolve its product type reference.CompletionStage
that contains as a result a new builder instance with
resolved product type reference or, in case an error occurs during reference resolution, a
ReferenceResolutionException
.@Nonnull public java.util.concurrent.CompletionStage<io.sphere.sdk.products.ProductDraftBuilder> resolveCategoryReferences(@Nonnull io.sphere.sdk.products.ProductDraftBuilder draftBuilder)
ProductDraftBuilder
this method attempts to resolve the categories and
categoryOrderHints to return a CompletionStage
which contains a new instance of the
builder with the resolved references.draftBuilder
- the productDraft to resolve its category and categoryOrderHints references.CompletionStage
that contains as a result a new builder instance with
resolved references or, in case an error occurs during reference resolution, a ReferenceResolutionException
.@Nonnull public java.util.concurrent.CompletionStage<io.sphere.sdk.products.ProductDraftBuilder> resolveTaxCategoryReference(@Nonnull io.sphere.sdk.products.ProductDraftBuilder draftBuilder)
ProductDraftBuilder
this method attempts to resolve the tax category to return
a CompletionStage
which contains a new instance of the builder with the resolved tax
category reference.draftBuilder
- the productDraft to resolve its tax category reference.CompletionStage
that contains as a result a new builder instance with
resolved tax category reference or, in case an error occurs during reference resolution, a
ReferenceResolutionException
.@Nonnull public java.util.concurrent.CompletionStage<io.sphere.sdk.products.ProductDraftBuilder> resolveStateReference(@Nonnull io.sphere.sdk.products.ProductDraftBuilder draftBuilder)
ProductDraftBuilder
this method attempts to resolve the state to return a
CompletionStage
which contains a new instance of the builder with the resolved state
reference.
Note: The key of the state reference taken from the value of the id field of the reference.
draftBuilder
- the productDraft to resolve its state reference.CompletionStage
that contains as a result a new builder instance with
resolved state reference or, in case an error occurs during reference resolution, the
future is completed exceptionally with a ReferenceResolutionException
.@Nonnull public java.util.concurrent.CompletableFuture<java.util.Map<java.lang.String,java.lang.String>> populateKeyToIdCachesForReferencedKeys(@Nonnull ProductBatchValidator.ReferencedKeys referencedKeys)
cacheKeysToIds
service methods to fetch all the referenced keys (i.e product
type, product attribute) 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.
referencedKeys
- a wrapper for the product references to fetch and cache the id's for.CompletionStage
<Map
<String
>String
>> in
which the results of it's completions contains a map of requested references keys -> ids
of product references.