PickerUtil.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package org.dbsyncer.parser.util;
  2. import org.dbsyncer.common.util.CollectionUtils;
  3. import org.dbsyncer.connector.config.Field;
  4. import org.dbsyncer.parser.model.FieldMapping;
  5. import org.dbsyncer.parser.model.Picker;
  6. import java.util.ArrayList;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. public abstract class PickerUtil {
  11. private PickerUtil() {
  12. }
  13. public static void pickFields(Picker picker, List<FieldMapping> fieldMapping) {
  14. if(!CollectionUtils.isEmpty(fieldMapping)){
  15. List<Field> sFields = new ArrayList<>();
  16. List<Field> tFields = new ArrayList<>();
  17. fieldMapping.forEach(m -> {
  18. sFields.add(m.getSource());
  19. tFields.add(m.getTarget());
  20. });
  21. picker.setSourceFields(sFields);
  22. picker.setTargetFields(tFields);
  23. }
  24. }
  25. public static void pickData(Picker picker, List<Map<String, Object>> data) {
  26. if(!CollectionUtils.isEmpty(data)){
  27. List<Map<String, Object>> target = new ArrayList<>();
  28. List<Field> sFields = picker.getSourceFields();
  29. List<Field> tFields = picker.getTargetFields();
  30. final int kSize = sFields.size();
  31. final int size = data.size();
  32. Map<String, Object> row = null;
  33. Map<String, Object> r = null;
  34. String sName = null;
  35. String tName = null;
  36. Object v = null;
  37. for (int i = 0; i < size; i++) {
  38. row = data.get(i);
  39. r = new HashMap<>();
  40. for (int k = 0; k < kSize; k++) {
  41. sName = sFields.get(k).getName();
  42. v = row.get(sName);
  43. tName = tFields.get(k).getName();
  44. r.put(tName, v);
  45. }
  46. target.add(r);
  47. }
  48. picker.setTargetList(target);
  49. }
  50. }
  51. public static void pickData(Picker picker, Map<String, Object> row) {
  52. if(!CollectionUtils.isEmpty(row)){
  53. Map<String, Object> target = new HashMap<>();
  54. List<Field> sFields = picker.getSourceFields();
  55. List<Field> tFields = picker.getTargetFields();
  56. final int kSize = sFields.size();
  57. String sName = null;
  58. String tName = null;
  59. Object v = null;
  60. for (int k = 0; k < kSize; k++) {
  61. sName = sFields.get(k).getName();
  62. v = row.get(sName);
  63. tName = tFields.get(k).getName();
  64. target.put(tName, v);
  65. }
  66. picker.setTarget(target);
  67. }
  68. }
  69. }