|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.hazelcast.query.PagingPredicate
public class PagingPredicate
This class is a special Predicate which helps to get a page-by-page result of a query.
It can be constructed with a page-size, an inner predicate for filtering, and a comparator for sorting.
This class is not thread-safe and stateless. To be able to reuse for another query, one should call
reset()
Here is an example usage.
Predicate lessEqualThanFour = Predicates.lessEqual("this", 4);
// We are constructing our paging predicate with a predicate and page size. In this case query results fetched two
by two.
PagingPredicate predicate = new PagingPredicate(lessEqualThanFour, 2);
// we are initializing our map with integers from 0 to 10 as keys and values.
IMap map = hazelcastInstance.getMap(...);
for (int i = 0; i < 10; i++) {
map.put(i, i);
}
// invoking the query
Collection values = map.values(predicate);
System.out.println("values = " + values) // will print 'values = [0, 1]'
predicate.nextPage(); // we are setting up paging predicate to fetch next page in the next call.
values = map.values(predicate);
System.out.println("values = " + values);// will print 'values = [2, 3]'
Entry anchor = predicate.getAnchor();
System.out.println("anchor -> " + anchor); // will print 'anchor -> 1=1', since the anchor is the last entry of
the previous page.
predicate.previousPage(); // we are setting up paging predicate to fetch previous page in the next call
values = map.values(predicate);
System.out.println("values = " + values) // will print 'values = [0, 1]'
| Constructor Summary | |
|---|---|
PagingPredicate()
Used for serialization internally |
|
PagingPredicate(Comparator<Map.Entry> comparator,
int pageSize)
Construct with a comparator and pageSize results will not be filtered results will be ordered via comparator throws IllegalArgumentException if pageSize is not greater than 0 |
|
PagingPredicate(int pageSize)
Construct with a pageSize results will not be filtered results will be natural ordered throws IllegalArgumentException if pageSize is not greater than 0 |
|
PagingPredicate(Predicate predicate,
Comparator<Map.Entry> comparator,
int pageSize)
Construct with an inner predicate, comparator and pageSize results will be filtered via inner predicate results will be ordered via comparator throws IllegalArgumentException if pageSize is not greater than 0
throws IllegalArgumentException if inner predicate is also PagingPredicate |
|
PagingPredicate(Predicate predicate,
int pageSize)
Construct with an inner predicate and pageSize results will be filtered via inner predicate results will be natural ordered throws IllegalArgumentException if pageSize is not greater than 0
throws IllegalArgumentException if inner predicate is also PagingPredicate |
|
| Method Summary | |
|---|---|
boolean |
apply(Map.Entry mapEntry)
Used for delegating filtering to inner predicate. |
Set<QueryableEntry> |
filter(QueryContext queryContext)
Used if inner predicate is instanceof IndexAwarePredicate for filtering. |
Map.Entry |
getAnchor()
Retrieve the anchor object which is the last value object on the previous page. |
Comparator<Map.Entry> |
getComparator()
|
IterationType |
getIterationType()
|
int |
getPage()
|
int |
getPageSize()
|
Predicate |
getPredicate()
|
boolean |
isIndexed(QueryContext queryContext)
Used if inner predicate is instanceof IndexAwarePredicate for checking if indexed. |
void |
nextPage()
sets the page value to next page |
void |
previousPage()
sets the page value to previous page |
void |
readData(ObjectDataInput in)
Reads fields from the input stream |
void |
reset()
resets for reuse |
void |
setIterationType(IterationType iterationType)
|
void |
writeData(ObjectDataOutput out)
Writes object fields to output stream |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public PagingPredicate()
public PagingPredicate(int pageSize)
IllegalArgumentException if pageSize is not greater than 0
pageSize - page size
public PagingPredicate(Predicate predicate,
int pageSize)
IllegalArgumentException if pageSize is not greater than 0
throws IllegalArgumentException if inner predicate is also PagingPredicate
predicate - the inner predicate through which results will be filteredpageSize - the page size
public PagingPredicate(Comparator<Map.Entry> comparator,
int pageSize)
IllegalArgumentException if pageSize is not greater than 0
comparator - the comparator through which results will be orderedpageSize - the page size
public PagingPredicate(Predicate predicate,
Comparator<Map.Entry> comparator,
int pageSize)
IllegalArgumentException if pageSize is not greater than 0
throws IllegalArgumentException if inner predicate is also PagingPredicate
predicate - the inner predicate through which results will be filteredcomparator - the comparator through which results will be orderedpageSize - the page size| Method Detail |
|---|
public Set<QueryableEntry> filter(QueryContext queryContext)
IndexAwarePredicate for filtering.
filter in interface IndexAwarePredicatequeryContext -
public boolean isIndexed(QueryContext queryContext)
IndexAwarePredicate for checking if indexed.
isIndexed in interface IndexAwarePredicatequeryContext -
public boolean apply(Map.Entry mapEntry)
apply in interface PredicatemapEntry -
public void reset()
public void nextPage()
public void previousPage()
public IterationType getIterationType()
public void setIterationType(IterationType iterationType)
public int getPage()
public int getPageSize()
public Predicate getPredicate()
public Comparator<Map.Entry> getComparator()
public Map.Entry getAnchor()
public void writeData(ObjectDataOutput out)
throws IOException
DataSerializable
writeData in interface DataSerializableout - output
IOException
public void readData(ObjectDataInput in)
throws IOException
DataSerializable
readData in interface DataSerializablein - input
IOException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||