1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.console.commons.status;
20
21 import java.util.Iterator;
22 import java.util.List;
23 import org.apache.syncope.client.console.commons.DirectoryDataProvider;
24 import org.apache.syncope.client.console.commons.SortableDataProviderComparator;
25 import org.apache.syncope.client.ui.commons.status.StatusBean;
26 import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
27 import org.apache.wicket.model.IModel;
28
29 public abstract class AbstractStatusBeanProvider extends DirectoryDataProvider<StatusBean> {
30
31 private static final long serialVersionUID = 4287357360778016173L;
32
33 protected final SortableDataProviderComparator<StatusBean> comparator;
34
35 public AbstractStatusBeanProvider(final int paginatorRows, final String sort) {
36 super(paginatorRows);
37
38 setSort(sort, SortOrder.ASCENDING);
39 comparator = new SortableDataProviderComparator<>(this);
40 }
41
42 @Override
43 public Iterator<StatusBean> iterator(final long first, final long count) {
44 return getStatusBeans(first, count).iterator();
45 }
46
47 @Override
48 public long size() {
49 return getStatusBeans(-1, -1).size();
50 }
51
52 @Override
53 public IModel<StatusBean> model(final StatusBean statusBean) {
54 return new IModel<>() {
55
56 private static final long serialVersionUID = -7802635613997243712L;
57
58 @Override
59 public StatusBean getObject() {
60 return statusBean;
61 }
62 };
63 }
64
65 protected abstract List<StatusBean> getStatusBeans(long first, long count);
66
67 }