source: vlo/trunk/vlo_web_app/src/main/java/eu/clarin/cmdi/vlo/pages/SolrFacetDataProvider.java @ 2768

Last change on this file since 2768 was 2768, checked in by keeloo, 11 years ago

Integrated parameter branche into trunk again

File size: 1.5 KB
Line 
1package eu.clarin.cmdi.vlo.pages;
2
3import java.util.Iterator;
4import java.util.List;
5
6import org.apache.solr.client.solrj.SolrQuery;
7import org.apache.solr.client.solrj.response.FacetField;
8import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
9import org.apache.wicket.model.IModel;
10import org.apache.wicket.model.Model;
11
12import eu.clarin.cmdi.vlo.dao.DaoLocator;
13import eu.clarin.cmdi.vlo.dao.SearchResultsDao;
14
15public class SolrFacetDataProvider extends SortableDataProvider<FacetField> {
16
17    private static final long serialVersionUID = 1L;
18    private final SolrQuery query;
19    private List<FacetField> facets;
20
21    public SolrFacetDataProvider(SolrQuery query) {
22        this.query = query;
23        query.setFacet(true).setStart(0).setRows(0); //only get facets
24    }
25
26    private SearchResultsDao getSearchResultsDao() {
27        return DaoLocator.getSearchResultsDao();
28    }
29
30    @Override
31    public Iterator<? extends FacetField> iterator(int first, int count) {
32        return facets.iterator();
33    }
34
35    private List<FacetField> getFacets() {
36        if (facets == null) {
37            SearchResultsDao searchResultsDao = getSearchResultsDao();
38            facets = searchResultsDao.getFacets(query);
39        }
40        return facets;
41    }
42
43    @Override
44    public IModel<FacetField> model(FacetField facetField) {
45        return new Model<FacetField>(facetField);
46    }
47
48    @Override
49    public int size() {
50        return (int) getFacets().size();
51    }
52
53}
Note: See TracBrowser for help on using the repository browser.