@@ -239,8 +239,25 @@ public final void onFailure(Error error) {
239
239
* @param record the record
240
240
* @param handler the response handler
241
241
*/
242
- public void save (Record record , RecordSaveResponseLegacyHandler handler ) {
243
- this .save (new Record []{ record }, handler );
242
+ public void save (Record record , RecordSaveResponseHandler handler ) {
243
+ final RecordSaveResponseHandler responseHandler = handler ;
244
+ this .presave (new Record []{record }, new ResultHandling <Record []>() {
245
+ @ Override
246
+ public void onSuccess (Record [] result ) {
247
+ Record theRecord = result [0 ];
248
+ RecordSaveRequest request = new RecordSaveRequest (theRecord , Database .this );
249
+ request .setResponseHandler (responseHandler );
250
+
251
+ Database .this .getContainer ().sendRequest (request );
252
+ }
253
+
254
+ @ Override
255
+ public void onFailure (Error error ) {
256
+ if (responseHandler != null ) {
257
+ responseHandler .onFailure (error );
258
+ }
259
+ }
260
+ });
244
261
}
245
262
246
263
/**
@@ -249,9 +266,8 @@ public void save(Record record, RecordSaveResponseLegacyHandler handler) {
249
266
* @param records the records
250
267
* @param handler the response handler
251
268
*/
252
- public void save (final Record [] records , RecordSaveResponseLegacyHandler handler ) {
253
- final Record [] recordsToSave = records ;
254
- final RecordSaveResponseLegacyHandler responseHandler = handler ;
269
+ public void save (final Record [] records , MultiRecordSaveResponseHandler handler ) {
270
+ final MultiRecordSaveResponseHandler responseHandler = handler ;
255
271
this .presave (records , new ResultHandling <Record []>() {
256
272
@ Override
257
273
public final void onSuccess (Record [] result ) {
@@ -263,33 +279,39 @@ public final void onSuccess(Record[] result) {
263
279
264
280
@ Override
265
281
public final void onFailure (Error error ) {
266
- responseHandler .onSaveFail (error );
282
+ if (responseHandler != null ) {
283
+ responseHandler .onSaveFail (error );
284
+ }
267
285
}
268
286
});
269
287
}
270
288
271
289
/**
272
- * Save multiple records atomically.
290
+ * Save records non- atomically.
273
291
*
274
292
* @param records the records
275
293
* @param handler the response handler
276
294
*/
277
- public void saveAtomically (final Record [] records , RecordSaveResponseLegacyHandler handler ) {
278
- final Record [] recordsToSave = records ;
279
- final RecordSaveResponseLegacyHandler responseHandler = handler ;
295
+ public void saveNonAtomically (
296
+ final Record [] records ,
297
+ RecordNonAtomicSaveResponseHandler handler
298
+ ) {
299
+ final RecordNonAtomicSaveResponseHandler responseHandler = handler ;
280
300
this .presave (records , new ResultHandling <Record []>() {
281
301
@ Override
282
302
public final void onSuccess (Record [] result ) {
283
303
RecordSaveRequest request = new RecordSaveRequest (result , Database .this );
284
- request .setAtomic (true );
304
+ request .setAtomic (false );
285
305
request .setResponseHandler (responseHandler );
286
306
287
307
Database .this .getContainer ().sendRequest (request );
288
308
}
289
309
290
310
@ Override
291
311
public final void onFailure (Error error ) {
292
- responseHandler .onSaveFail (error );
312
+ if (responseHandler != null ) {
313
+ responseHandler .onSaveFail (error );
314
+ }
293
315
}
294
316
});
295
317
}
0 commit comments