/** * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mifosplatform.spm.util; import org.mifosplatform.spm.data.LookupTableData; import org.mifosplatform.spm.data.LookupTableEntry; import org.mifosplatform.spm.domain.LookupTable; import org.mifosplatform.spm.domain.Survey; import java.util.*; public class LookupTableMapper { private LookupTableMapper() { super(); } public static List<LookupTableData> map(final List<LookupTable> lookupTables) { final Map<String, LookupTableData> lookupTableDataMap = new HashMap<>(); LookupTableData lookupTableData = null; if (lookupTables != null && !lookupTables.isEmpty()) { for (LookupTable lookupTable : lookupTables) { if ((lookupTableData = lookupTableDataMap.get(lookupTable.getKey())) == null) { lookupTableData = new LookupTableData(); lookupTableDataMap.put(lookupTable.getKey(), lookupTableData); lookupTableData.setKey(lookupTable.getKey()); lookupTableData.setDescription(lookupTable.getDescription()); lookupTableData.setEntries(new ArrayList<LookupTableEntry>()); } lookupTableData.getEntries().add(new LookupTableEntry(lookupTable.getValueFrom(), lookupTable.getValueTo(), lookupTable.getScore())); } return new ArrayList<>(lookupTableDataMap.values()); } return Collections.EMPTY_LIST; } public static List<LookupTable> map(final LookupTableData lookupTableData, final Survey survey) { final List<LookupTable> lookupTables = new ArrayList<>(); final List<LookupTableEntry> entries = lookupTableData.getEntries(); if (entries != null) { for (LookupTableEntry entry : entries) { final LookupTable lookupTable = new LookupTable(); lookupTables.add(lookupTable); lookupTable.setSurvey(survey); lookupTable.setKey(lookupTableData.getKey()); lookupTable.setDescription(lookupTableData.getDescription()); lookupTable.setValueFrom(entry.getValueFrom()); lookupTable.setValueTo(entry.getValueTo()); lookupTable.setScore(entry.getScore()); } } return lookupTables; } }