/** * Copyright (c) 2015 unfoldingWord * http://creativecommons.org/licenses/MIT/ * See LICENSE file for details. * Contributors: * PJ Fechner <pj@actsmedia.com> */ package tasks; import org.json.JSONObject; import model.UWDatabaseModel; /** * Created by PJ Fechner on 6/17/15. * Class for creating a UWDatabaseModel */ public class ModelCreator{ private static final String TAG = "ModelCreationTask"; private ModelCreationListener listener; private final UWDatabaseModel dbModel; private final UWDatabaseModel parentOrNull; public ModelCreator(UWDatabaseModel dbModel, UWDatabaseModel parentSlugOrNull, ModelCreationListener listener) { this.listener = listener; this.dbModel = (dbModel != null)? dbModel : null; this.parentOrNull = (parentSlugOrNull != null)? parentSlugOrNull : null; } public void execute(JSONObject obj){ if(parentOrNull != null){ UWDatabaseModel finalModel = dbModel.setupModelFromJson(obj, parentOrNull); listener.modelWasCreated(finalModel); } else { UWDatabaseModel finalModel = dbModel.setupModelFromJson(obj); listener.modelWasCreated(finalModel); } } public UWDatabaseModel run(JSONObject obj){ return (parentOrNull != null)? dbModel.setupModelFromJson(obj, parentOrNull) : dbModel.setupModelFromJson(obj); } public interface ModelCreationListener { /** * Called when the model is finished being created * @param model model that was created */ void modelWasCreated(UWDatabaseModel model); } }