/** * Copyright (c) 2015 unfoldingWord * http://creativecommons.org/licenses/MIT/ * See LICENSE file for details. * Contributors: * PJ Fechner <pj@actsmedia.com> */ package model; import org.json.JSONObject; import model.daoModels.DaoSession; /** * Created by Fechner on 6/17/15. */ public abstract class UWDatabaseModel { /** * @param json * @return A Model based on the json */ abstract public UWDatabaseModel setupModelFromJson(JSONObject json); /** * @param json * @param parent * @return a model based on json, based on it's parent */ abstract public UWDatabaseModel setupModelFromJson(JSONObject json, UWDatabaseModel parent); /** * @return a Slug unique to only this object */ abstract public String getUniqueSlug(); /** * Update based on the passed model and save to DB * @param newModel * @return */ abstract public boolean updateWithModel(UWDatabaseModel newModel); /** * Easy way to insert model * @param session */ abstract public void insertModel(DaoSession session); }