package com.ushahidi.platform.mobile.app.presentation.model.mapper; import com.ushahidi.platform.mobile.app.domain.entity.Form; import com.ushahidi.platform.mobile.app.presentation.model.FormModel; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; /** * Transforms data between domain layer and presentation layer * * @author Ushahidi Team <team@ushahidi.com> */ public class FormModelDataMapper { /** * Default constructor */ @Inject public FormModelDataMapper() { // Do nothing } /** * Maps {@link Form} to {@link FormModel} * * @param form The form to be mapped * @return The mapped form model */ public FormModel map(Form form) { FormModel formModel = null; if (form != null) { formModel = new FormModel(); formModel._id = form._id; formModel.setCreated(form.getCreated()); formModel.setUpdated(form.getUpdated()); formModel.setDescription(form.getDescription()); formModel.setName(form.getName()); formModel.setDeploymentId(form.getDeploymentId()); formModel.setDisabled(form.isDisabled()); } return formModel; } /** * Maps {@link FormModel} to {@link Form} * * @param formModel The form to be mapped * @return The mapped form */ public Form map(FormModel formModel) { Form form = null; if (formModel != null) { form = new Form(); form._id = formModel._id; form.setCreated(formModel.getCreated()); form.setUpdated(formModel.getUpdated()); form.setDeploymentId(formModel.getDeploymentId()); form.setName(formModel.getName()); form.setDescription(formModel.getDescription()); form.setDisabled(formModel.isDisabled()); } return form; } /** * Maps a list of {@link Form} to a list of {@link FormModel} * * @param formList The form entity list * @return The mapped form entity list */ public List<FormModel> map(List<Form> formList) { List<FormModel> formModelList = null; if (formList != null) { formModelList = new ArrayList<>(); for (Form form : formList) { FormModel formModel = map(form); formModelList.add(formModel); } } return formModelList; } }