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
|
}
|