enrichment #9
|
@ -4,11 +4,10 @@ package eu.dnetlib.dhp.schema.oaf;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.common.AccessRightComparator;
|
import eu.dnetlib.dhp.schema.common.AccessRightComparator;
|
||||||
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
||||||
import org.apache.commons.lang3.EnumUtils;
|
import eu.dnetlib.dhp.schema.oaf.utils.CleaningFunctions;
|
||||||
import scala.Tuple2;
|
import scala.Tuple2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -544,8 +543,12 @@ public class Result extends OafEntity implements Serializable {
|
||||||
* @param pid the pid
|
* @param pid the pid
|
||||||
* @return the string
|
* @return the string
|
||||||
*/
|
*/
|
||||||
private static String normalizePid(final StructuredProperty pid) {
|
private static String extractKeyFromPid(final StructuredProperty pid) {
|
||||||
return String.format("%s::%s", pid.getQualifier().getClassid().toLowerCase(), pid.getValue().toLowerCase());
|
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 -> {
|
.flatMap(i -> {
|
||||||
final List<Tuple2<String, Instance>> result = new ArrayList<>();
|
final List<Tuple2<String, Instance>> result = new ArrayList<>();
|
||||||
if (i.getPid() != null)
|
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)
|
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();
|
return result.stream();
|
||||||
}).collect(Collectors.toMap(
|
}).collect(Collectors.toMap(
|
||||||
Tuple2::_1,
|
Tuple2::_1,
|
||||||
|
@ -598,7 +601,7 @@ public class Result extends OafEntity implements Serializable {
|
||||||
return null;
|
return null;
|
||||||
return pids
|
return pids
|
||||||
.stream()
|
.stream()
|
||||||
.map(Result::normalizePid)
|
.map(Result::extractKeyFromPid)
|
||||||
.map(enrichments::get)
|
.map(enrichments::get)
|
||||||
.filter(Objects::nonNull)
|
.filter(Objects::nonNull)
|
||||||
.collect(Collectors.toList());
|
.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.