source: vlo/trunk/vlo_web_app/src/main/java/eu/clarin/cmdi/vlo/pages/SolrDocumentDataProvider.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.6 KB
Line 
1package eu.clarin.cmdi.vlo.pages;
2
3import java.util.Iterator;
4
5import org.apache.solr.client.solrj.SolrQuery;
6import org.apache.solr.common.SolrDocument;
7import org.apache.solr.common.SolrDocumentList;
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 SolrDocumentDataProvider extends SortableDataProvider<SolrDocument> {
16
17    private static final long serialVersionUID = 1L;
18    private final SolrQuery query;
19    private SolrDocumentList docList;
20
21    public SolrDocumentDataProvider(SolrQuery query) {
22        this.query = query;
23        query.setFacet(false);
24    }
25
26    private SearchResultsDao getSearchResultsDao() {
27        return DaoLocator.getSearchResultsDao();
28    }
29
30    private SolrDocumentList getDocList() {
31        if (docList == null) {
32            docList = getSearchResultsDao().getResults(query);
33        }
34        return docList;
35    }
36
37    @Override
38    public Iterator<? extends SolrDocument> iterator(int first, int count) {
39        if (first != query.getStart().intValue() || count != query.getRows().intValue()) {
40            query.setStart(first).setRows(count);
41            docList = null;
42        }
43        return getDocList().iterator();
44    }
45
46    @Override
47    public IModel<SolrDocument> model(SolrDocument solrDocument) {
48        return new Model<SolrDocument>(solrDocument);
49    }
50
51    @Override
52    public int size() {
53        return (int) getDocList().getNumFound();
54    }
55
56}
Note: See TracBrowser for help on using the repository browser.