class OfflineObjectStore implements ParseObjectStore<T> {

  @Override
  public Task<Void> setAsync(final T object) {
    return ParseObject.unpinAllInBackground(pinName).continueWithTask(new Continuation<Void, Task<Void>>() {
      @Override
      public Task<Void> then(Task<Void> task) throws Exception {
        return object.pinInBackground(pinName, false);
      }
    });
  }

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

}