SDN Controller Programming Guide
103
}
}
return rowsSet;
}
findPagedRows()
Same as the previous one but takes paging into account.
CassandraAlertDao.java:
@Override
protected <M> MarkPage<String> findPagedRows(CassandraAlertFilter filter,
SortSpecification<CassandraAlertSortAttribute> sort,
final MarkPageRequest<M> pageRequest,
final DataStoreContext context) {
if (filter == null) {
if (pageRequest == null) {
throw new RuntimeException("Page request cannot be null");
}
// Convert the pageRequest
CassandraStorable<String, String> convertMark =
(CassandraStorable<String, String>) pageRequest.getMark();
final MarkPageRequest<String> convertedPageRequest =
pageRequest.convert((convertMark != null)
? convertMark.getId() : null);
Procedure<MarkPage<Column<String, ?>>> procedure =
new Procedure<MarkPage<Column<String, ?>>>() {
@Override
public MarkPage<Column<String, ?>> execute() throws Exception {
return context.getContext().get(AlertsCount.COL_FAMILY,
AlertsCount.ROW_KEY,
convertedPageRequest,
AlertsCount.COUNT_DECODER);
}
};
try {
context.getTransactionContext()
.prepareTransaction(AlertsCount.COL_FAMILY.getName(),
AlertsCount.ROW_KEY);
} catch (PersistenceException e) {
throw new RuntimeException(e);
}
MarkPage<Column<String, ?>> result = null;
try {