public ListRepresentation pagedTraverse(String traverserId, TraverserReturnType returnType) { Lease lease = leases.getLeaseById(traverserId); if (lease == null) { throw new NotFoundException( String.format("The traverser with id [%s] was not found", traverserId)); } PagedTraverser traverser = lease.getLeasedItemAndRenewLease(); List<Path> paths = traverser.next(); List<Representation> result = new ArrayList<Representation>(); if (paths != null) { for (Path p : paths) { result.add(returnType.toRepresentation(p)); } } else { leases.remove(traverserId); // Yuck. throw new NotFoundException( String.format( "The results for paged traverser with id [%s] have been fully enumerated", traverserId)); } return new ListRepresentation(returnType.repType, result); }
public boolean removePagedTraverse(String traverserId) { Lease lease = leases.getLeaseById(traverserId); if (lease == null) { return false; } else { leases.remove(lease.getId()); return true; } }