@Override
 public void fetchSince(long timestamp, RepositorySessionFetchRecordsDelegate delegate) {
   try {
     long limit = serverRepository.getDefaultFetchLimit();
     String sort = serverRepository.getDefaultSort();
     this.fetchWithParameters(
         timestamp, limit, true, sort, null, new RequestFetchDelegateAdapter(delegate));
   } catch (URISyntaxException e) {
     delegate.onFetchFailed(e, null);
   }
 }
  protected void fetchWithParameters(
      long newer,
      long limit,
      boolean full,
      String sort,
      String ids,
      RequestFetchDelegateAdapter delegate)
      throws URISyntaxException {

    URI collectionURI = serverRepository.collectionURI(full, newer, limit, sort, ids);
    SyncStorageCollectionRequest request = new SyncStorageCollectionRequest(collectionURI);
    request.delegate = delegate;

    // So it can clean up.
    delegate.setRequest(request);
    pending.add(request);
    request.get();
  }