/** * Copyright (c) 2015 unfoldingWord * http://creativecommons.org/licenses/MIT/ * See LICENSE file for details. * Contributors: * PJ Fechner <pj@actsmedia.com> */ package tasks; import android.content.Context; import model.DaoDBHelper; import model.UWDatabaseModel; import model.daoModels.DaoSession; /** * Created by PJ Fechner on 6/17/15. * abstract Class for saving or updating a UWDatabaseModel */ public abstract class ModelSaveOrUpdater { private static final String TAG = "ModelSaveOrUpdater"; private final Context context; protected abstract UWDatabaseModel getExistingModel(String slug, DaoSession session); public ModelSaveOrUpdater(Context context) { this.context = context; } public UWDatabaseModel start(UWDatabaseModel model) { DaoSession session = DaoDBHelper.getDaoSession(context); UWDatabaseModel existingModel = getExistingModel(model.getUniqueSlug(), session); if(existingModel != null){ if(existingModel.updateWithModel(model)){ // Log.d(TAG, "Model updated and will update"); return existingModel; } else{ // Log.d(TAG, "Model updated and won't update"); return null; } } else{ model.insertModel(session); // Log.d(TAG, "Model created"); return model; } } }