package com.ushahidi.platform.mobile.app.data.entity.mapper;
import com.ushahidi.platform.mobile.app.data.entity.FormEntity;
import com.ushahidi.platform.mobile.app.domain.entity.Form;
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 FormEntityDataMapper {
/**
* Default constructor
*/
@Inject
public FormEntityDataMapper() {
// Do nothing
}
/**
* Maps {@link FormEntity} to {@link Form}
*
* @param formEntity The form entity to be mapped
* @return The mapped form entity
*/
public Form map(FormEntity formEntity) {
Form form = null;
if (formEntity != null) {
form = new Form();
form._id = formEntity._id;
form.setCreated(formEntity.getCreated());
form.setUpdated(formEntity.getUpdated());
form.setDescription(formEntity.getDescription());
form.setName(formEntity.getName());
form.setDeploymentId(formEntity.getDeploymentId());
form.setDisabled(formEntity.isDisabled());
}
return form;
}
/**
* Maps {@link Form} to {@link FormEntity}
*
* @param form The form to be mapped
* @return The mapped form
*/
public FormEntity map(Form form) {
FormEntity formEntity = null;
if (form != null) {
formEntity = new FormEntity();
formEntity._id = form._id;
formEntity.setCreated(form.getCreated());
formEntity.setUpdated(form.getUpdated());
formEntity.setDeploymentId(form.getDeploymentId());
formEntity.setName(form.getName());
formEntity.setDescription(form.getDescription());
formEntity.setDisabled(form.isDisabled());
}
return formEntity;
}
/**
* Maps a list of {@link FormEntity} to a list of {@link Form}
*
* @param formEntityList The form entity list
* @return The mapped form entity list
*/
public List<Form> map(List<FormEntity> formEntityList) {
List<Form> formList = null;
if (formEntityList != null) {
formList = new ArrayList<>();
for (FormEntity formEntity : formEntityList) {
Form form = map(formEntity);
formList.add(form);
}
}
return formList;
}
}