com.enonic.cms.core.search.facet.FacetBuilderFactory.java Source code

Java tutorial

Introduction

Here is the source code for com.enonic.cms.core.search.facet.FacetBuilderFactory.java

Source

/*
 * Copyright 2000-2013 Enonic AS
 * http://www.enonic.com/license
 */

package com.enonic.cms.core.search.facet;

import java.util.Set;

import org.elasticsearch.search.facet.FacetBuilder;

import com.google.common.base.Strings;
import com.google.common.collect.Sets;

import com.enonic.cms.core.content.index.ContentIndexQuery;
import com.enonic.cms.core.search.facet.builder.ElasticsearchFacetBuilder;
import com.enonic.cms.core.search.facet.model.FacetsModel;
import com.enonic.cms.core.search.facet.model.FacetsModelFactory;

public class FacetBuilderFactory {
    private final FacetsModelFactory facetsModelFactory = new FacetsModelFactory();

    private final ElasticsearchFacetBuilder facetModelEsFacetBuilder = new ElasticsearchFacetBuilder();

    public Set<FacetBuilder> buildFacetBuilder(ContentIndexQuery query) {
        Set<FacetBuilder> facetBuilders = Sets.newHashSet();

        String xml = query.getFacets();

        if (Strings.isNullOrEmpty(xml)) {
            return facetBuilders;
        }

        final FacetsModel facetsModel = facetsModelFactory.buildFromXml(xml);

        return facetModelEsFacetBuilder.build(facetsModel);
    }

}