diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/scholexplorer/DLIUnknown.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/scholexplorer/DLIUnknown.java index e9b670d03..5da599427 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/scholexplorer/DLIUnknown.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/scholexplorer/DLIUnknown.java @@ -2,10 +2,8 @@ package eu.dnetlib.dhp.schema.scholexplorer; import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; @@ -78,6 +76,25 @@ public class DLIUnknown extends Oaf implements Serializable { if ("complete".equalsIgnoreCase(p.completionStatus)) completionStatus = "complete"; dlicollectedfrom = mergeProvenance(dlicollectedfrom, p.getDlicollectedfrom()); + if (StringUtils.isEmpty(id) && StringUtils.isNoneEmpty(p.getId())) + id = p.getId(); + if (StringUtils.isEmpty(dateofcollection) && StringUtils.isNoneEmpty(p.getDateofcollection())) + dateofcollection = p.getDateofcollection(); + + if (StringUtils.isEmpty(dateoftransformation) && StringUtils.isNoneEmpty(p.getDateoftransformation())) + dateofcollection = p.getDateoftransformation(); + pid = mergeLists(pid, p.getPid()); + } + + protected List mergeLists(final List... lists) { + + return Arrays + .stream(lists) + .filter(Objects::nonNull) + .flatMap(List::stream) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); } private List mergeProvenance( diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/dmf.xml b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/dmf.xml index 58defb67b..836e0b9a0 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/dmf.xml +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/dmf.xml @@ -1,66 +1,53 @@ - - aaadf8b3-01a8-4cc2-9964-63cfb19df3b4_UmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZXMvUmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZVR5cGU= - oai:pangaea.de:doi:10.1594/PANGAEA.821876 - r3d100010134 - r3d100010134::000083be706192d2d839915694ecfd47 -2020-01-08T04:12:12.287 - 2020-01-08T03:24:10.865Z - - oai:pangaea.de:doi:10.1594/PANGAEA.821876 - citable - - - - 10.1594/pangaea.821876 - Macke, AndreasKalisch, John - Total Sky Imager observations during POLARSTERN cruise ANT-XXVI/4 on 2010-05-14 with links to images - -PANGAEA - Data Publisher for Earth & Environmental Science - - 2010-05-14T00:13:47/2010-05-14T23:55:47 - - - - DATE/TIME - - LATITUDE - - LONGITUDE - - Uniform resource locator/link to image - - Total Sky Imager - - ANT-XXVI/4 - - Polarstern - - - dataset - - - dli_resolver::cf447a378b0b6603593f8b0e57242695 - - http://hs.pangaea.de/images/airphoto/ps/ps75/2010-05-14/ant-xxvi_4_2010-05-14_tsi-images-links.zip - - dli_resolver::f0f5975d20991cffd222c6002ddd5821 - - - - - - - complete - - - - - - - - + xmlns:oaf="http://namespace.openaire.eu/oaf" + xmlns:dri="http://www.driver-repository.eu/namespace/dri" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + aaadf8b3-01a8-4cc2-9964-63cfb19df3b4_UmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZXMvUmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZVR5cGU= + oai:pangaea.de:doi:10.1594/PANGAEA.432865 + r3d100010134 + r3d100010134::00002f60593fd1f758fb838fafb46795 + 2020-02-18T03:05:02.534Z + + oai:pangaea.de:doi:10.1594/PANGAEA.432865 + citable topicOceans + + + + 10.1594/pangaea.432865 + + Daily sea level from coastal tide gauge station Woods_Hole in 1978 (Research quality database) + + PANGAEA - Data Publisher for Earth & Environmental Science + 2006 + + 1978-01-01T12:00:00/1978-12-31T12:00:00 + + + + WOCE Sea Level, WSL + + + + DATE/TIME + Sea level + Tide gauge station + SeaLevel + World Ocean Circulation Experiment (WOCE) + + + + http://store.pangaea.de/Projects/WOCE/SeaLevel_rqds/Woods_Hole.txt + + + + + + + complete + collected + + + \ No newline at end of file