enrichment #9
|
@ -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
|
||||
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());
|
||||
|
|
Loading…
Reference in New Issue
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.