001 002package com.commercetools.api.models.product; 003 004import java.util.Map; 005import java.util.Optional; 006import java.util.stream.Collectors; 007 008import javax.annotation.Nullable; 009 010import io.vrap.rmf.base.client.Accessor; 011import io.vrap.rmf.base.client.utils.json.JsonUtils; 012 013/** 014 * Accessor to retrieve type safe facet results 015 */ 016public class FacetResultsAccessor extends Accessor<FacetResults> { 017 public FacetResultsAccessor(FacetResults value) { 018 super(value); 019 } 020 021 @Nullable 022 public Map<String, FacetResult> facets() { 023 return asFacetResultMap(value); 024 } 025 026 @Nullable 027 public static Map<String, FacetResult> asFacetResultMap(FacetResults value) { 028 return Optional.ofNullable(value.values()) 029 .map(values -> values.entrySet() 030 .stream() 031 .collect(Collectors.toMap(Map.Entry::getKey, 032 entry -> JsonUtils.getConfiguredObjectMapper() 033 .convertValue(entry.getValue(), FacetResult.class)))) 034 .orElse(null); 035 } 036}