public class SessionResultFilter extends Object
The class also supports pagination of results with the setStartIndex(int) and setNumResults(int) methods. If the start index is not set, it will begin at index 0 (the start of results). If the number of results is not set, it will be unbounded and return as many results as available.
Factory methods to create common queries are provided for convenience.
Modifier and Type | Field and Description |
---|---|
static int |
ASCENDING
Ascending sort (ie 3, 4, 5...).
|
static int |
DESCENDING
Descending sort (ie 3, 2, 1...).
|
static int |
NO_RESULT_LIMIT
Represents no result limit (infinite results).
|
static int |
SORT_CREATION_DATE |
static int |
SORT_LAST_ACTIVITY_DATE |
static int |
SORT_NUM_CLIENT_PACKETS |
static int |
SORT_NUM_SERVER_PACKETS |
static int |
SORT_USER |
Constructor and Description |
---|
SessionResultFilter() |
Modifier and Type | Method and Description |
---|---|
static SessionResultFilter |
createDefaultSessionFilter()
Creates a default SessionResultFilter: no filtering with results sorted
by user (ascending).
|
boolean |
equals(Object object) |
int |
getNumResults()
Returns the max number of results that should be returned.
|
Comparator<ClientSession> |
getSortComparator()
Returns a comparator that will sort a standard sorted set according
to this filter's sort order.
|
int |
getSortField()
Returns the currently selected sort field.
|
int |
getSortOrder()
Returns the sort order, which will be SessionResultFilter.ASCENDING for
ascending sorting, or SessionResultFilter.DESCENDING for descending sorting.
|
int |
getStartIndex()
Returns the index of the first result to return.
|
static Date |
roundDate(Date date,
int seconds)
Rounds the given date down to the nearest specified second.
|
static long |
roundDate(long date,
int seconds)
Rounds the given date down to the nearest specfied second.
|
void |
setNumResults(int numResults)
Sets the limit on the number of results to be returned.
|
void |
setSortField(int sortField)
Sets the sort field to use.
|
void |
setSortOrder(int sortOrder)
Sets the sort type.
|
void |
setStartIndex(int startIndex)
Sets the index of the first result to return.
|
public static final int DESCENDING
public static final int ASCENDING
public static final int NO_RESULT_LIMIT
public static final int SORT_USER
public static final int SORT_CREATION_DATE
public static final int SORT_LAST_ACTIVITY_DATE
public static final int SORT_NUM_CLIENT_PACKETS
public static final int SORT_NUM_SERVER_PACKETS
public static SessionResultFilter createDefaultSessionFilter()
public int getSortField()
public void setSortField(int sortField)
sortField
- the field that will be used for sorting.public int getSortOrder()
public void setSortOrder(int sortOrder)
sortOrder
- the order that results will be sorted in.public int getNumResults()
Returns the max number of results that should be returned.
The default value for is NO_RESULT_LIMIT, which means there will be no limit on the number of results. This method can be used in combination with setStartIndex(int) to perform pagination of results.
setStartIndex(int)
public void setNumResults(int numResults)
Sets the limit on the number of results to be returned.
User NO_RESULT_LIMIT if you don't want to limit the results returned.
numResults
- the number of results to return or NO_RESULT_LIMIT for no limitpublic int getStartIndex()
public void setStartIndex(int startIndex)
startIndex
- the index of the first result to return.public Comparator<ClientSession> getSortComparator()
public static Date roundDate(Date date, int seconds)
Date | Seconds | Result |
---|---|---|
1:37.48 | 5 | 1:37.45 |
1:37.48 | 10 | 1:37.40 |
1:37.48 | 30 | 1:37.30 |
1:37.48 | 60 | 1:37.00 |
1:37.48 | 120 | 1:36.00 |
This method is useful when calculating the last post in a forum or the number of new messages from a given date. Using a rounded date allows Jive to internally cache the results of the date query. Here's an example that shows the last posted message in a forum accurate to the last 60 seconds:
SessionResultFilter filter = new SessionResultFilter(); filter.setSortOrder(SessionResultFilter.DESCENDING); filter.setSortField(JiveGlobals.SORT_CREATION_DATE); filter.setCreationDateRangeMin(SessionResultFilter.roundDate(forum.getModificationDate(), 60)); filter.setNumResults(1); Iterator messages = forum.messages(filter); ForumMessage lastPost = (ForumMessage)messages.next();
date
- the Date
we want to round.seconds
- the number of seconds we want to round the date to.public static long roundDate(long date, int seconds)
date
- the date (as a long) that we want to round.seconds
- the number of seconds we want to round the date to.Copyright © 2003–2019 Ignite Realtime. All rights reserved.