enrichment #9

Merged
claudio.atzori merged 4 commits from enrichment into master 2022-01-14 09:48:53 +01:00
1 changed files with 10 additions and 7 deletions
Showing only changes of commit 30665c840c - Show all commits

View File

@ -4,11 +4,10 @@ package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import eu.dnetlib.dhp.schema.common.AccessRightComparator;
import eu.dnetlib.dhp.schema.common.ModelConstants;
import org.apache.commons.lang3.EnumUtils;
import eu.dnetlib.dhp.schema.oaf.utils.CleaningFunctions;
import scala.Tuple2;
/**
@ -544,8 +543,12 @@ public class Result extends OafEntity implements Serializable {
* @param pid the pid
* @return the string
*/
private static String normalizePid(final StructuredProperty pid) {
return String.format("%s::%s", pid.getQualifier().getClassid().toLowerCase(), pid.getValue().toLowerCase());
private static String extractKeyFromPid(final StructuredProperty pid) {
if (pid == null)
sandro.labruzzo marked this conversation as resolved Outdated

A very similar function already exists in this module:

https://code-repo.d4science.org/D-Net/dhp-schemas/src/branch/master/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/CleaningFunctions.java#L50

Consider reusing it, or if its behaviour doesn't exactly match the you you need, consider to adjust it.

A very similar function already exists in this module: https://code-repo.d4science.org/D-Net/dhp-schemas/src/branch/master/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/CleaningFunctions.java#L50 Consider reusing it, or if its behaviour doesn't exactly match the you you need, consider to adjust it.
return null;
final StructuredProperty normalizedPid = CleaningFunctions.normalizePidValue(pid);
return String.format("%s::%s", normalizedPid.getQualifier().getClassid(), normalizedPid.getValue());
}
/**
@ -574,9 +577,9 @@ public class Result extends OafEntity implements Serializable {
.flatMap(i -> {
final List<Tuple2<String, Instance>> result = new ArrayList<>();
if (i.getPid() != null)
i.getPid().stream().filter(Result::validPid).forEach(p -> result.add(new Tuple2<>(normalizePid(p), i)));
i.getPid().stream().filter(Result::validPid).forEach(p -> result.add(new Tuple2<>(extractKeyFromPid(p), i)));
if (i.getAlternateIdentifier() != null)
i.getAlternateIdentifier().stream().filter(Result::validPid).forEach(p -> result.add(new Tuple2<>(normalizePid(p), i)));
i.getAlternateIdentifier().stream().filter(Result::validPid).forEach(p -> result.add(new Tuple2<>(extractKeyFromPid(p), i)));
return result.stream();
}).collect(Collectors.toMap(
Tuple2::_1,
@ -598,7 +601,7 @@ public class Result extends OafEntity implements Serializable {
return null;
return pids
.stream()
.map(Result::normalizePid)
.map(Result::extractKeyFromPid)
.map(enrichments::get)
.filter(Objects::nonNull)
.collect(Collectors.toList());