package org.dbsyncer.parser.util; import org.dbsyncer.common.util.CollectionUtils; import org.dbsyncer.connector.config.Field; import org.dbsyncer.parser.model.FieldMapping; import org.dbsyncer.parser.model.Picker; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public abstract class PickerUtil { private PickerUtil() { } public static void pickFields(Picker picker, List fieldMapping) { if(!CollectionUtils.isEmpty(fieldMapping)){ List sFields = new ArrayList<>(); List tFields = new ArrayList<>(); fieldMapping.forEach(m -> { sFields.add(m.getSource()); tFields.add(m.getTarget()); }); picker.setSourceFields(sFields); picker.setTargetFields(tFields); } } public static void pickData(Picker picker, List> data) { if(!CollectionUtils.isEmpty(data)){ List> target = new ArrayList<>(); List sFields = picker.getSourceFields(); List tFields = picker.getTargetFields(); final int kSize = sFields.size(); final int size = data.size(); Map row = null; Map r = null; String sName = null; String tName = null; Object v = null; for (int i = 0; i < size; i++) { row = data.get(i); r = new HashMap<>(); for (int k = 0; k < kSize; k++) { sName = sFields.get(k).getName(); v = row.get(sName); tName = tFields.get(k).getName(); r.put(tName, v); } target.add(r); } picker.setTargetList(target); } } public static void pickData(Picker picker, Map row) { if(!CollectionUtils.isEmpty(row)){ Map target = new HashMap<>(); List sFields = picker.getSourceFields(); List tFields = picker.getTargetFields(); final int kSize = sFields.size(); String sName = null; String tName = null; Object v = null; for (int k = 0; k < kSize; k++) { sName = sFields.get(k).getName(); v = row.get(sName); tName = tFields.get(k).getName(); target.put(tName, v); } picker.setTarget(target); } } }