/** * Handles the result of {@code save}. * <p> * Should be called on success or failure. */ // TODO(grantland): Remove once we convert saveEventually and ParseUser.signUp/resolveLaziness // to controllers Task<Void> handleSaveResultAsync( final JSONObject result, final ParseOperationSet operationsBeforeSave) { ParseObject.State newState = null; if (result != null) { // Success synchronized (mutex) { final Map<String, ParseObject> fetchedObjects = collectFetchedObjects(); ParseDecoder decoder = new KnownParseObjectDecoder(fetchedObjects); newState = ParseObjectCoder.get().decode(getState().newBuilder().clear(), result, decoder) .isComplete(false) .build(); } } return handleSaveResultAsync(newState, operationsBeforeSave); }
@Override public ParseObject.State then(Task<JSONObject> task) { JSONObject result = task.getResult(); // Copy and clear to create an new empty instance of the same type as `state` ParseObject.State.Init<?> builder = state.newBuilder().clear(); return coder.decode(builder, result, decoder) .isComplete(false) .build(); } }));
@Override public ParseObject.State then(Task<JSONObject> task) { JSONObject result = task.getResult(); // Copy and clear to create an new empty instance of the same type as `state` ParseObject.State.Init<?> builder = state.newBuilder().clear(); return coder.decode(builder, result, decoder) .isComplete(true) .build(); } });
@Override public ParseObject.State then(Task<JSONObject> task) { JSONObject result = task.getResult(); // Copy and clear to create an new empty instance of the same type as `state` ParseObject.State.Init<?> builder = state.newBuilder().clear(); return coder.decode(builder, result, decoder) .isComplete(false) .build(); } });