All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.mobileconnectors.cognito.DefaultSyncCallback Maven / Gradle / Ivy


package com.amazonaws.mobileconnectors.cognito;

import android.util.Log;

import com.amazonaws.mobileconnectors.cognito.Dataset.SyncCallback;
import com.amazonaws.mobileconnectors.cognito.exceptions.DataStorageException;

import java.util.ArrayList;
import java.util.List;

/**
 * A default implementation of SyncCallback. All methods but onConflict are
 * stubbed with logging. onConflict resolves conflicts using a 'last writer
 * wins' strategy
 */
public class DefaultSyncCallback implements SyncCallback {

    private static final String TAG = "DefaultSyncCallback";

    @Override
    public void onSuccess(Dataset dataset, List updatedRecords) {
        Log.i(TAG, String.format("%d records synced successfully.", updatedRecords.size()));
    }

    @Override
    public boolean onConflict(Dataset dataset, List conflicts) {
        Log.i(TAG, "onConflict resolved with DefaultSyncCallback's default implementation (last writer wins).");
        List resolvedConflicts = new ArrayList(conflicts.size());
        for (SyncConflict conflict : conflicts) {
            resolvedConflicts.add(conflict.resolveWithLastWriterWins());
        }
        dataset.resolve(resolvedConflicts);
        return true;
    }

    @Override
    public boolean onDatasetDeleted(Dataset dataset, String datasetName) {
        Log.w(TAG, "onDatasetDeleted was called and DefaultSyncCallback doesn't provide an implementation for it");
        return false;
    }

    @Override
    public boolean onDatasetsMerged(Dataset dataset, List datasetNames) {
        Log.w(TAG, "onDatasetsMerged was called and DefaultSyncCallback doesn't provide an implementation for it");
        return false;
    }

    @Override
    public void onFailure(DataStorageException dse) {
        Log.e(TAG, "Failure occurred during sync", dse);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy