Project

General

Profile

1 43394 claudio.at
package eu.dnetlib.data.mapreduce.hbase.broker.mapping;
2 43174 claudio.at
3 43443 claudio.at
import com.google.common.collect.Iterables;
4 48145 claudio.at
import eu.dnetlib.broker.objects.Instance;
5 43558 claudio.at
import eu.dnetlib.broker.objects.OpenAireEventPayload;
6
import eu.dnetlib.broker.objects.Provenance;
7
import eu.dnetlib.broker.objects.Publication;
8 43394 claudio.at
import eu.dnetlib.data.proto.OafProtos.OafEntity;
9 43174 claudio.at
import eu.dnetlib.data.proto.ResultProtos.Result;
10
11 48145 claudio.at
import static eu.dnetlib.data.mapreduce.util.OafHbaseUtils.*;
12
13 43174 claudio.at
/**
14
 * Created by claudio on 11/07/16.
15
 */
16 43394 claudio.at
public class OpenAireEventPayloadFactory extends ProtoMapping {
17 43174 claudio.at
18 44085 michele.ar
	public static OpenAireEventPayload fromOAF(final OafEntity oaf,
19
			final OafEntity source,
20 44584 claudio.at
			final float trust) {
21 43174 claudio.at
22 48145 claudio.at
		return fromOAF(oaf, trust, new Provenance()
23
				.setRepositoryName(getValue(source.getCollectedfromList()))
24
				.setUrl(Iterables.getFirst(mapInstances(oaf.getResult().getInstanceList()), new Instance()).getUrl())
25
				.setId(getValue(source.getOriginalIdList())));
26
	}
27
28
	public static OpenAireEventPayload fromOAF(final OafEntity oaf,
29
			final float trust, final Provenance provenance) {
30
31 43394 claudio.at
		final Result.Metadata m = oaf.getResult().getMetadata();
32
		final Publication p = new Publication()
33 43443 claudio.at
				.setOriginalId(getValue(oaf.getOriginalIdList()))
34 43558 claudio.at
				.setTitles(listValues(m.getTitleList()))
35
				.setAbstracts(listValues(m.getDescriptionList()))
36 43394 claudio.at
				.setLanguage(getKey(m.getLanguage()))
37 43558 claudio.at
				.setSubjects(listValues(m.getSubjectList()))
38 49356 claudio.at
				.setCreators(listValues(oaf.getResult().getAuthorList()))
39 43394 claudio.at
				.setPublicationdate(getValue(m.getDateofacceptance()))
40
				.setPublisher(getValue(m.getPublisher()))
41
				.setEmbargoenddate(getValue(m.getEmbargoenddate()))
42 43558 claudio.at
				.setContributor(listValues(m.getContributorList()))
43 48145 claudio.at
				.setJournal(mapJournal(m.getJournal()))
44 43558 claudio.at
				.setCollectedFrom(listValues(oaf.getCollectedfromList()))
45 43394 claudio.at
				.setPids(mapPids(oaf.getPidList()))
46
				.setInstances(mapInstances(oaf.getResult().getInstanceList()))
47 44085 michele.ar
				.setExternalReferences(mapExternalRefs(oaf.getResult().getExternalReferenceList()))
48
				.setProjects(mapRelatedProjects(oaf));
49 43174 claudio.at
50 48145 claudio.at
		return new OpenAireEventPayload()
51
				.setPublication(p)
52
				.setHighlight(new Publication())
53
				.setProvenance(provenance)
54
				.setTrust(trust);
55 43340 alessia.ba
	}
56
57 43174 claudio.at
}