/*
* 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 );
}
}