1 package fr.ifremer.tutti.service.genericformat;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import com.google.common.collect.ImmutableMap;
28 import fr.ifremer.tutti.persistence.entities.referential.Species;
29
30 import java.util.Map;
31 import java.util.TreeMap;
32
33
34
35
36
37
38
39 public class GenericFormatReferentialSpeciesImportResult extends GenericFormatReferentialImportResult<Species, Integer> {
40
41 private static final long serialVersionUID = 1L;
42
43 private ImmutableMap<Integer, Integer> referenceTaxonIdTranslationMap;
44
45 public GenericFormatReferentialSpeciesImportResult(String filename, boolean found) {
46 super(filename, found);
47 this.referenceTaxonIdTranslationMap = ImmutableMap.of();
48 }
49
50 public Map<Integer, Integer> getReferenceTaxonIdTranslationMap() {
51 return referenceTaxonIdTranslationMap;
52 }
53
54 public void flushObsoleteReferenceTaxonIds(Map<Integer, Integer> referenceTaxonIdById) {
55
56 referenceTaxonIdTranslationMap = ImmutableMap.copyOf(referenceTaxonIdById);
57
58 }
59
60 public void flushReferenceTaxonIds(Map<Integer, Integer> referenceTaxonIdById) {
61
62 Map<Integer, Integer> referenceTaxonIdMap = new TreeMap<>();
63
64 for (Map.Entry<Integer, Integer> entry : referenceTaxonIdById.entrySet()) {
65 Integer oldId = entry.getKey();
66 String originalId = String.valueOf(oldId);
67 Species species = entitiesAdded.get(originalId);
68 if (species == null) {
69 species = entitiesLinked.get(originalId);
70 }
71
72
73 Integer oldReferenceTaxonId = entry.getValue();
74 Integer newReferenceTaxonId = species.getReferenceTaxonId();
75
76 referenceTaxonIdMap.put(oldReferenceTaxonId, newReferenceTaxonId);
77
78 }
79
80 referenceTaxonIdTranslationMap = ImmutableMap
81 .<Integer, Integer>builder()
82 .putAll(referenceTaxonIdTranslationMap)
83 .putAll(referenceTaxonIdMap)
84 .build();
85
86 }
87
88 }