FacetParamHelper.java 1.89 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.cq.commerce.common;

import com.adobe.cq.commerce.api.CommerceFacet;
import com.adobe.cq.commerce.api.CommerceFacetValue;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class FacetParamHelper {
    public static final String PREFIX = "facet_";

    public static String toParams(List<CommerceFacet> facets, String facetId, String valueId) {
        HashMap facetMap = new HashMap();
        for (CommerceFacet facet : facets) {
            ArrayList<String> values = new ArrayList<String>();
            facetMap.put(facet.getId(), values);
            for (CommerceFacetValue value : facet.getValues()) {
                boolean isToggled;
                boolean bl = isToggled = facet.getId().equals(facetId) && value.getId().equals(valueId);
                if (facet.isMultiSelect()) {
                    if ((!value.isSelected() || isToggled) && (value.isSelected() || !isToggled)) continue;
                    values.add(value.getId());
                    continue;
                }
                if ((values.size() != 0 || !value.isSelected() || isToggled) && (value.isSelected() || !isToggled)) continue;
                values.clear();
                values.add(value.getId());
            }
        }
        StringBuilder builder = new StringBuilder();
        for (Map.Entry entry : facetMap.entrySet()) {
            for (String value : (List)entry.getValue()) {
                builder.append("&facet_" + URLEncoder.encode((String)entry.getKey()) + "=" + URLEncoder.encode(value));
            }
        }
        return builder.length() > 0 ? builder.substring(1) : "";
    }

    public static String toParams(String facetId, String valueId) {
        return "facet_" + URLEncoder.encode(facetId) + "=" + URLEncoder.encode(valueId);
    }
}