package pl.edu.icm.saos.search.analysis.solr.result;
import java.util.List;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import pl.edu.icm.saos.common.chart.Series;
import pl.edu.icm.saos.search.analysis.request.XSettings;
import com.google.common.base.Preconditions;
/**
* Converter of solr {@link QueryResponse} into {@link Series}
*
* @author madryk
*/
@Service
public class SeriesResultConverter {
private XFieldFacetExtractor xFieldFacetExtractor;
private FacetToSeriesConverter facetToSeriesConverter;
//------------------------ LOGIC --------------------------
/**
* Converts solr {@link QueryResponse} to {@link Series}
*/
public Series<Object, Integer> convert(QueryResponse response, XSettings xsettings) {
Preconditions.checkNotNull(response);
Preconditions.checkNotNull(xsettings);
List<FacetCount> facetCounts = xFieldFacetExtractor.extractFacetCounts(response, xsettings.getField());
return facetToSeriesConverter.convert(facetCounts, xsettings);
}
//------------------------ SETTERS --------------------------
@Autowired
public void setxFieldFacetExtractor(XFieldFacetExtractor xFieldFacetExtractor) {
this.xFieldFacetExtractor = xFieldFacetExtractor;
}
@Autowired
public void setFacetToSeriesConverter(FacetToSeriesConverter facetToSeriesConverter) {
this.facetToSeriesConverter = facetToSeriesConverter;
}
}