Project

General

Profile

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

    
3
import com.google.common.collect.Iterables;
4
import eu.dnetlib.broker.objects.Instance;
5
import eu.dnetlib.broker.objects.OpenAireEventPayload;
6
import eu.dnetlib.broker.objects.Provenance;
7
import eu.dnetlib.broker.objects.Publication;
8
import eu.dnetlib.data.proto.OafProtos.OafEntity;
9
import eu.dnetlib.data.proto.ResultProtos.Result;
10

    
11
import static eu.dnetlib.data.mapreduce.util.OafHbaseUtils.*;
12

    
13
/**
14
 * Created by claudio on 11/07/16.
15
 */
16
public class OpenAireEventPayloadFactory extends ProtoMapping {
17

    
18
	public static OpenAireEventPayload fromOAF(final OafEntity oaf,
19
			final OafEntity source,
20
			final float trust) {
21

    
22
		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
		final Result.Metadata m = oaf.getResult().getMetadata();
32
		final Publication p = new Publication()
33
				.setOriginalId(getValue(oaf.getOriginalIdList()))
34
				.setTitles(listValues(m.getTitleList()))
35
				.setAbstracts(listValues(m.getDescriptionList()))
36
				.setLanguage(getKey(m.getLanguage()))
37
				.setSubjects(listValues(m.getSubjectList()))
38
				.setCreators(listValues(oaf.getResult().getMetadata().getAuthorList()))
39
				.setPublicationdate(getValue(m.getDateofacceptance()))
40
				.setPublisher(getValue(m.getPublisher()))
41
				.setEmbargoenddate(getValue(m.getEmbargoenddate()))
42
				.setContributor(listValues(m.getContributorList()))
43
				.setJournal(mapJournal(m.getJournal()))
44
				.setCollectedFrom(listValues(oaf.getCollectedfromList()))
45
				.setPids(mapPids(oaf.getPidList()))
46
				.setInstances(mapInstances(oaf.getResult().getInstanceList()))
47
				.setExternalReferences(mapExternalRefs(oaf.getResult().getExternalReferenceList()))
48
				.setProjects(mapRelatedProjects(oaf));
49

    
50
		return new OpenAireEventPayload()
51
				.setPublication(p)
52
				.setHighlight(new Publication())
53
				.setProvenance(provenance)
54
				.setTrust(trust);
55
	}
56

    
57
}
(3-3/4)