|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.hazelcast.query.PagingPredicate
public class PagingPredicate
This class is a special Predicate which helps to get a page-by-page result of a query
Can be constructed with a page-size, an inner predicate for filtering, A comparator for sorting \
This class is not thread-safe and stateless. To be able to reuse for another query, one should call
reset()
Example usage could be seen like below;
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 Collectionvalues = 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()
setting the page value to next page |
void |
previousPage()
setting 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
- public PagingPredicate(Predicate predicate, int pageSize)
IllegalArgumentException
if pageSize is not greater than 0
throws IllegalArgumentException
if inner predicate is also PagingPredicate
predicate
- pageSize
- public PagingPredicate(Comparator<Map.Entry> comparator, int pageSize)
IllegalArgumentException
if pageSize is not greater than 0
comparator
- pageSize
- 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
- comparator
- pageSize
- Method Detail |
---|
public Set<QueryableEntry> filter(QueryContext queryContext)
IndexAwarePredicate
for filtering
filter
in interface IndexAwarePredicate
queryContext
-
public boolean isIndexed(QueryContext queryContext)
IndexAwarePredicate
for checking if indexed
isIndexed
in interface IndexAwarePredicate
queryContext
-
public boolean apply(Map.Entry mapEntry)
apply
in interface Predicate
mapEntry
-
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 DataSerializable
out
- output
IOException
public void readData(ObjectDataInput in) throws IOException
DataSerializable
readData
in interface DataSerializable
in
- input
IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |