package eu.eudat.models.rda.mapper; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import eu.eudat.elastic.entities.Tag; import eu.eudat.logic.utilities.json.JavaToJson; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.util.*; import java.util.stream.Collectors; public class KeywordRDAMapper { private static final Logger logger = LoggerFactory.getLogger(KeywordRDAMapper.class); public static List toRDA(String value) { if (!value.isEmpty()) { try { ObjectMapper mapper = new ObjectMapper(); String valueJson = JavaToJson.objectStringToJson(value); List tags = Arrays.asList(mapper.readValue(valueJson, Tag[].class)); return tags.stream().map(Tag::getName).collect(Collectors.toList()); } catch (JsonProcessingException e) { logger.warn(e.getMessage() + ". Attempting to parse it as a String list."); return new ArrayList<>(Arrays.asList(value.replace(" ", "").split(","))); } } return new ArrayList<>(); } }