class OfflineObjectStore implements ParseObjectStore<T> {

  @Override
  public Task<Void> deleteAsync() {
    final Task<Void> ldsTask = ParseObject.unpinAllInBackground(pinName);
    return Task.whenAll(Arrays.asList(
        legacy.deleteAsync(),
        ldsTask
    )).continueWithTask(new Continuation<Void, Task<Void>>() {
      @Override
      public Task<Void> then(Task<Void> task) throws Exception {
        // We only really care about the result of unpinning.
        return ldsTask;
      }
    });
  }

  public  OfflineObjectStore(Class<T> clazz, String pinName, ParseObjectStore<T> legacy);
  public  OfflineObjectStore(String className, String pinName, ParseObjectStore<T> legacy);

}