diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java index 41dd55280..2c2aabd8a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java @@ -997,23 +997,29 @@ public class DatasetManager { value.elements().forEachRemaining(element -> { try { Map data = mapper.readValue(element.asText(), HashMap.class); - Tag tag = new Tag(); - if(tags.stream().anyMatch(intag -> intag.getName().equals(data.get("name")))) { - tag = tags.stream().filter(intag -> intag.getName().equals(data.get("name"))).findFirst().get(); - } else { - tag.setName(data.get("name")); - tag.setId(data.get("id")); - } - if (wizardModel.getTags().stream().noneMatch(intag -> intag.getName().equals(data.get("name")))) { - wizardModel.getTags().add(tag); - } + this.addTag(tags, wizardModel.getTags(), data.get("id"), data.get("name")); } catch (IOException e) { logger.error(e.getMessage(), e); } }); + } else { + this.addTag(tags, wizardModel.getTags(), "", value.asText()); } }); } } + + private void addTag(List srcTags, List dstTags, String id, String name) { + Tag tag = new Tag(); + if(srcTags.stream().anyMatch(intag -> intag.getName().equals(name))) { + tag = srcTags.stream().filter(intag -> intag.getName().equals(name)).findFirst().get(); + } else { + tag.setName(name); + tag.setId(id); + } + if (dstTags.stream().noneMatch(intag -> intag.getName().equals(name))) { + dstTags.add(tag); + } + } }