for (Object obj : orderEntities)
{
OrderEntity entity = (OrderEntity) obj;
Order order = entity2domain(entity);
String self = uriInfo.getAbsolutePathBuilder().path(Integer.toString(order.getId())).build().toString();
order.addLink(new Link("self", self, "application/xml"));
if (!order.isCancelled())
{
String cancel = uriInfo.getAbsolutePathBuilder().path(Integer.toString(order.getId())).path("cancel").build().toString();
order.addLink(new Link("cancel", cancel, "application/xml"));
}
list.add(order);
}
// next link
// If the size returned is equal then assume there is a next
if (orderEntities.size() == size)
{
int next = start + size;
URI nextUri = builder.clone().build(next, size);
Link nextLink = new Link("next", nextUri.toString(), "application/xml");
links.add(nextLink);
}
// previous link
if (start > 0)
{
int previous = start - size;
if (previous < 0) previous = 0;
URI previousUri = builder.clone().build(previous, size);
Link previousLink = new Link("previous", previousUri.toString(), "application/xml");
links.add(previousLink);
}
Orders orders = new Orders();
orders.setOrders(list);
orders.setLinks(links);