Project

General

Profile

1
package eu.dnetlib.data.mapreduce.hbase.broker.mapping;
2

    
3
import static eu.dnetlib.data.mapreduce.util.OafHbaseUtils.getKey;
4
import static eu.dnetlib.data.mapreduce.util.OafHbaseUtils.getValue;
5
import static eu.dnetlib.data.mapreduce.util.OafHbaseUtils.listValues;
6

    
7
import org.dom4j.DocumentException;
8

    
9
import com.google.common.collect.Iterables;
10

    
11
import eu.dnetlib.broker.objects.Journal;
12
import eu.dnetlib.broker.objects.OpenAireEventPayload;
13
import eu.dnetlib.broker.objects.Provenance;
14
import eu.dnetlib.broker.objects.Publication;
15
import eu.dnetlib.data.proto.OafProtos.OafEntity;
16
import eu.dnetlib.data.proto.ResultProtos.Result;
17
import eu.dnetlib.data.proto.ResultProtos.Result.Instance;
18

    
19
/**
20
 * Created by claudio on 11/07/16.
21
 */
22
public class OpenAireEventPayloadFactory extends ProtoMapping {
23

    
24
	public static OpenAireEventPayload fromOAF(final OafEntity oaf,
25
			final OafEntity source,
26
			final float trust) {
27

    
28
		final Result.Metadata m = oaf.getResult().getMetadata();
29
		final Publication p = new Publication()
30
				.setOriginalId(getValue(oaf.getOriginalIdList()))
31
				.setTitles(listValues(m.getTitleList()))
32
				.setAbstracts(listValues(m.getDescriptionList()))
33
				.setLanguage(getKey(m.getLanguage()))
34
				.setSubjects(listValues(m.getSubjectList()))
35
				.setCreators(listValues(oaf.getResult().getAuthorList()))
36
				.setPublicationdate(getValue(m.getDateofacceptance()))
37
				.setPublisher(getValue(m.getPublisher()))
38
				.setEmbargoenddate(getValue(m.getEmbargoenddate()))
39
				.setContributor(listValues(m.getContributorList()))
40
				.setJournal(new Journal()
41
						.setName(m.getJournal().getName())
42
						.setIssn(m.getJournal().getIssnPrinted())
43
						.setEissn(m.getJournal().getIssnOnline())
44
						.setLissn(m.getJournal().getIssnLinking()))
45
				.setCollectedFrom(listValues(oaf.getCollectedfromList()))
46
				.setPids(mapPids(oaf.getPidList()))
47
				.setInstances(mapInstances(oaf.getResult().getInstanceList()))
48
				.setExternalReferences(mapExternalRefs(oaf.getResult().getExternalReferenceList()))
49
				.setProjects(mapRelatedProjects(oaf));
50

    
51
		final OpenAireEventPayload ep = new OpenAireEventPayload();
52

    
53
		final Instance instance = Iterables.getFirst(source.getResult().getInstanceList(), Instance.newBuilder().build());
54

    
55
		ep.setPublication(p).setHighlight(new Publication()).setProvenance(new Provenance().setRepositoryName(getValue(source.getCollectedfromList()))
56
				.setUrl(getValue(instance.getUrlList())).setId(getValue(source.getOriginalIdList()))).setTrust(trust);
57

    
58
		return ep;
59
	}
60

    
61
}
(3-3/4)