public static ProductProjectionSearchBuilder of(final ProductProjectionType productProjectionType) { return new ProductProjectionSearchBuilder(ProductProjectionSearch.of(productProjectionType)); }
@Override public RangeTermFacetSearchModel<ProductProjection, ZonedDateTime> lastModifiedAt() { return super.lastModifiedAt(); } }
/** * Creates a search request object with the product projection type specified by {@code productProjectionType}. * @param productProjectionType the desired projection type for the search results * @see #ofStaged() * @see #ofCurrent() * @return search request for current data */ static ProductProjectionSearch of(final ProductProjectionType productProjectionType) { return new ProductProjectionSearchImpl(productProjectionType); }
ProductProjectionSearchImpl(final ProductProjectionType productProjectionType){ super("/product-projections/search", ProductProjectionSearch.resultTypeReference(), ProductProjectionSearchModel.of().sort(), ProductProjectionSearchModel.of().filter(), ProductProjectionSearchModel.of().facet(), ProductProjectionExpansionModel.of(), ProductProjectionSearchImpl::new, additionalParametersOf(productProjectionType)); }
private MultiValueSortSearchModel<ProductProjection> sortModel() { return ProductProjectionSearchModel.of().sort().allVariants().attribute().ofString("size"); } }
/** * Creates a search request object for the staged data of a product. * @return search request for staged data */ static ProductProjectionSearch ofStaged() { return of(ProductProjectionType.STAGED); }
private static PagedSearchResult<ProductProjection> executeSearchWithFacets(final FacetExpression<ProductProjection> facetExpr) { return executeSearch(ProductProjectionSearch.ofStaged().withFacets(facetExpr)); } }
@Override public ChannelsProductVariantAvailabilityFilterSearchModel<T> channels() { return new ChannelsProductVariantAvailabilityFilterSearchModelImpl<>(this, "channels"); } }
@Override public ChannelsProductVariantAvailabilityFacetSearchModel<T> channels() { return new ChannelsProductVariantAvailabilityFacetSearchModelImpl<>(this, "channels"); } }
@Override public RangeTermFacetedSearchSearchModel<ProductProjection> lastModifiedAt() { return super.lastModifiedAt(); } }
@Override public ReviewRatingStatisticsFilterSearchModel<ProductProjection> reviewRatingStatistics() { return super.reviewRatingStatistics(); } }
@Override public ChannelProductVariantAvailabilitySortSearchModel<T> channelId(final String channelId) { return new ProductVariantAvailabilitySortSearchModelImpl<>(this, channelId); } }
/** * Gets the EXPERIMENTAL model to easily build product projection search requests. * Being it experimental, it can be modified in future releases therefore introducing breaking changes. * @return the experimental model for product projection search requests. */ public static ExperimentalProductProjectionSearchModel model() { return ExperimentalProductProjectionSearchModel.get(); } }
ProductProjectionSearchImpl(final ProductProjectionType productProjectionType){ super("/product-projections/search", ProductProjectionSearch.resultTypeReference(), ProductProjectionSearchModel.of().sort(), ProductProjectionSearchModel.of().filter(), ProductProjectionSearchModel.of().facet(), ProductProjectionExpansionModel.of(), ProductProjectionSearchImpl::new, additionalParametersOf(productProjectionType)); }
public static ProductProjectionSearchBuilder of(final ProductProjectionType productProjectionType) { return new ProductProjectionSearchBuilder(ProductProjectionSearch.of(productProjectionType)); }
/** * Creates a search request object for the current data of a product. * @return search request for current data */ static ProductProjectionSearch ofCurrent() { return of(ProductProjectionType.CURRENT); }
/** * Creates a search request object with the product projection type specified by {@code productProjectionType}. * @param productProjectionType the desired projection type for the search results * @see #ofStaged() * @see #ofCurrent() * @return search request for current data */ static ProductProjectionSearch of(final ProductProjectionType productProjectionType) { return new ProductProjectionSearchImpl(productProjectionType); }
ProductProjectionSearchImpl(final ProductProjectionType productProjectionType){ super("/product-projections/search", ProductProjectionSearch.resultTypeReference(), ProductProjectionSearchModel.of().sort(), ProductProjectionSearchModel.of().filter(), ProductProjectionSearchModel.of().facet(), ProductProjectionExpansionModel.of(), ProductProjectionSearchImpl::new, additionalParametersOf(productProjectionType)); }
/** * Creates a search request object for the staged data of a product. * @return search request for staged data */ static ProductProjectionSearch ofStaged() { return of(ProductProjectionType.STAGED); }
/** * Creates a search request object for the current data of a product. * @return search request for current data */ static ProductProjectionSearch ofCurrent() { return of(ProductProjectionType.CURRENT); }