package eu.dnetlib.iis.wf.citationmatching.direct.service;
import java.util.Iterator;
import org.apache.commons.lang3.StringUtils;
import org.apache.spark.api.java.function.Function;
import eu.dnetlib.iis.citationmatching.direct.schemas.DocumentMetadata;
/**
* Function that picks first research-article document from documents iterable.
* If iterable does not contain research-article document than the last document
* from iterable will be picked
*
* @author madryk
*
*/
public class PickResearchArticleDocumentFunction implements Function<Iterable<DocumentMetadata>, DocumentMetadata> {
private static final long serialVersionUID = 1L;
//------------------------ LOGIC --------------------------
@Override
public DocumentMetadata call(Iterable<DocumentMetadata> documents) throws Exception {
Iterator<DocumentMetadata> it = documents.iterator();
DocumentMetadata current = null;
while(it.hasNext()) {
DocumentMetadata docMeta = it.next();
if (StringUtils.equals(docMeta.getPublicationTypeName(), "research-article")) {
return docMeta;
}
current = docMeta;
}
return current;
}
}