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().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
|
}
|