package fi.arcusys.koku.palvelukanava.palvelut.facade;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import fi.arcusys.koku.palvelukanava.palvelut.facade.dto.FormHolderDTO;
import fi.arcusys.koku.palvelukanava.palvelut.facade.dto.VeeraCategory;
import fi.arcusys.koku.palvelukanava.palvelut.facade.dto.VeeraCategoryDTO;
import fi.arcusys.koku.palvelukanava.palvelut.facade.dto.VeeraForm;
import fi.arcusys.koku.palvelukanava.palvelut.facade.dto.VeeraFormDTO;
import fi.arcusys.koku.palvelukanava.palvelut.model.FormHolder;
import fi.arcusys.koku.palvelukanava.palvelut.model.VeeraCategoryEntity;
import fi.arcusys.koku.palvelukanava.palvelut.model.VeeraFormEntity;
class FacadeUtils {
static List<VeeraCategoryDTO> convertCategories(final List<VeeraCategoryEntity> categories) {
if (categories == null || categories.isEmpty()) {
return Collections.emptyList();
}
final List<VeeraCategoryDTO> result = new ArrayList<VeeraCategoryDTO>(categories.size());
for (final VeeraCategoryEntity category : categories) {
result.add(convert(category));
}
return result;
}
static List<VeeraFormDTO> convertForms(final List<VeeraFormEntity> forms) {
if (forms == null || forms.isEmpty()) {
return Collections.emptyList();
}
final List<VeeraFormDTO> result = new ArrayList<VeeraFormDTO>(forms.size());
for (final VeeraFormEntity form : forms) {
result.add(convert(form));
}
return result;
}
static List<FormHolder> convertFormHolders(final List<FormHolderDTO> formHolders) {
if (formHolders == null || formHolders.isEmpty()) {
return Collections.emptyList();
}
final List<FormHolder> result = new ArrayList<FormHolder>(formHolders.size());
for (final FormHolderDTO formHolder : formHolders) {
result.add(new FormHolder(formHolder.getName(), formHolder.getUrl()));
}
return result;
}
static VeeraCategoryDTO convert(final VeeraCategoryEntity category) {
return copy(category, new VeeraCategoryDTO());
}
static VeeraCategoryEntity convert(final VeeraCategoryDTO categoryDTO) {
return copy(categoryDTO, new VeeraCategoryEntity());
}
static VeeraFormDTO convert(final VeeraFormEntity form) {
return copy(form, new VeeraFormDTO());
}
static VeeraFormEntity convert(final VeeraFormDTO form) {
return copy(form, new VeeraFormEntity());
}
private static <T extends VeeraForm> T copy(final VeeraForm source, final T dest) {
if (dest == null) {
return null;
}
dest.setCompanyId(source.getCompanyId());
dest.setDescription(source.getDescription());
dest.setEntryId(source.getEntryId());
dest.setFolderId(source.getFolderId());
dest.setHelpContent(source.getHelpContent());
dest.setIdentity(source.getIdentity());
dest.setIdentity2(source.getIdentity2());
dest.setType(source.getType());
return dest;
}
private static <T extends VeeraCategory> T copy(final VeeraCategory source, final T dest) {
if (dest == null) {
return null;
}
dest.setCompanyId(source.getCompanyId());
dest.setDescription(source.getDescription());
dest.setEntryId(source.getEntryId());
dest.setFormCount(source.getFormCount());
dest.setHelpContent(source.getHelpContent());
dest.setName(source.getName());
dest.setParent(source.getParent());
return dest;
}
}