protected SnapshotComparisonPageResponse compareSnapshots(SnapshotComparisonPageRequest request) { SnapshotComparisonPageResponse response = new SnapshotComparisonPageResponse(); // Do query (bit of a cheat really!) long start = System.currentTimeMillis(); SnapshotDiffs diffs = compareSnapshots( request.getPackageName(), request.getFirstSnapshotName(), request.getSecondSnapshotName()); log.debug("Search time: " + (System.currentTimeMillis() - start)); // Populate response response.setLeftSnapshotName(diffs.leftName); response.setRightSnapshotName(diffs.rightName); List<SnapshotComparisonPageRow> rowList = new SnapshotComparisonPageRowBuilder() .withPageRequest(request) .withIdentity(identity) .withContent(diffs) .build(); response.setPageRowList(rowList); response.setStartRowIndex(request.getStartRowIndex()); response.setTotalRowSize(diffs.diffs.length); response.setTotalRowSizeExact(true); response.setLastPage((request.getStartRowIndex() + rowList.size() == diffs.diffs.length)); long methodDuration = System.currentTimeMillis() - start; log.debug( "Compared Snapshots ('" + request.getFirstSnapshotName() + "') and ('" + request.getSecondSnapshotName() + "') in package ('" + request.getPackageName() + "') in " + methodDuration + " ms."); return response; }