added filter

This commit is contained in:
Sandro La Bruzzo 2021-03-18 10:24:42 +01:00
parent 5f98ea74a9
commit 25d5663d97
2 changed files with 24 additions and 18 deletions

View File

@ -10,12 +10,12 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import eu.dnetlib.dhp.schema.common.ModelSupport;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.HashBiMap; import com.google.common.collect.HashBiMap;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import eu.dnetlib.dhp.schema.common.ModelSupport;
import eu.dnetlib.dhp.schema.oaf.*; import eu.dnetlib.dhp.schema.oaf.*;
import eu.dnetlib.dhp.utils.DHPUtils; import eu.dnetlib.dhp.utils.DHPUtils;
@ -60,29 +60,33 @@ public class IdentifierFactory implements Serializable {
return pidFromInstance(pid, collectedFrom).distinct().collect(Collectors.toList()); return pidFromInstance(pid, collectedFrom).distinct().collect(Collectors.toList());
} }
public static <T extends Result> String createDOIBoostIdentifier(T entity) { public static <T extends Result> String createDOIBoostIdentifier(T entity) {
if (entity == null) if (entity == null)
return null; return null;
StructuredProperty pid = null; StructuredProperty pid = null;
if(entity.getPid() != null ) { if (entity.getPid() != null) {
pid = entity.getPid() pid = entity
.stream() .getPid()
.filter(Objects::nonNull) .stream()
.filter(s -> s.getQualifier()!= null && "doi".equalsIgnoreCase(s.getQualifier().getClassid())) .filter(Objects::nonNull)
.filter(IdentifierFactory::pidFilter) .filter(s -> s.getQualifier() != null && "doi".equalsIgnoreCase(s.getQualifier().getClassid()))
.findAny().orElse(null); .filter(IdentifierFactory::pidFilter)
.findAny()
.orElse(null);
} else { } else {
if (entity.getInstance()!= null) { if (entity.getInstance() != null) {
pid = entity.getInstance() pid = entity
.stream() .getInstance()
.filter(i -> i.getPid()!= null) .stream()
.flatMap(i -> i.getPid().stream()) .filter(i -> i.getPid() != null)
.filter(IdentifierFactory::pidFilter) .flatMap(i -> i.getPid().stream())
.findAny().orElse(null); .filter(IdentifierFactory::pidFilter)
.findAny()
.orElse(null);
} }
} }
if (pid!= null) if (pid != null)
return idFromPid(entity, pid, true); return idFromPid(entity, pid, true);
return null; return null;
} }

View File

@ -196,6 +196,8 @@ object DoiBoostMappingUtil {
//Case empty publication //Case empty publication
if (publication == null) if (publication == null)
return false return false
if (publication.getId == null || publication.getId.isEmpty)
return false
//Case publication with no title //Case publication with no title
if (publication.getTitle == null || publication.getTitle.size == 0) if (publication.getTitle == null || publication.getTitle.size == 0)