Project

General

Profile

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

    
3
import java.util.List;
4

    
5
import com.google.common.collect.Lists;
6
import eu.dnetlib.broker.objects.OpenAireEventPayload;
7
import eu.dnetlib.data.proto.FieldTypeProtos.StringField;
8
import eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty;
9
import eu.dnetlib.data.proto.OafProtos.OafEntity;
10
import eu.dnetlib.data.proto.ResultProtos.Result.Instance;
11

    
12
import static eu.dnetlib.data.mapreduce.util.OafHbaseUtils.getValue;
13
import static eu.dnetlib.data.mapreduce.util.OafHbaseUtils.listValues;
14

    
15
/**
16
 * Created by alessia on 21/07/16.
17
 */
18
public class HighlightFactory extends ProtoMapping {
19

    
20
	public static OpenAireEventPayload highlightEnrichOa(final OpenAireEventPayload p, final List<Instance> instances) {
21
		p.getHighlight().setInstances(mapInstances(instances));
22
		return p;
23
	}
24

    
25
	public static OpenAireEventPayload highlightEnrichPid(final OpenAireEventPayload p, final List<StructuredProperty> pids) {
26
		p.getHighlight().setPids(mapPids(pids));
27
		return p;
28
	}
29

    
30
	public static OpenAireEventPayload highlightEnrichPublicationDate(final OpenAireEventPayload p, final StringField date) {
31
		p.getHighlight().setPublicationdate(getValue(date));
32
		return p;
33
	}
34

    
35
	public static OpenAireEventPayload highlightEnrichAbstract(final OpenAireEventPayload p, final List<StringField> descriptionList) {
36
		p.getHighlight().setAbstracts(listValues(descriptionList));
37
		return p;
38
	}
39

    
40
	public static OpenAireEventPayload highlightEnrichSubject(final OpenAireEventPayload p, final List<StructuredProperty> subjects) {
41
		p.getHighlight().setSubjects(listValues(subjects));
42
		return p;
43
	}
44

    
45
	// TODO: highlight for the following reasons
46
	public static OpenAireEventPayload highlightEnrichProject(final OpenAireEventPayload p, final OafEntity project, final String provenance) {
47
		// TODO: this can wait. Think about generating the openaire string for project links: it will be easier for subscribers to integrate
48
		// it back to their records!
49

    
50
		p.getHighlight().setProjects(Lists.newArrayList(mapRelatedProject(project.getProject())));
51

    
52
		return p;
53
	}
54

    
55
	public static OpenAireEventPayload highlightEnrichDataset(final OpenAireEventPayload p) {
56
		// TODO: this can wait
57
		return p;
58
	}
59

    
60
	public static OpenAireEventPayload highlightEnrichAuthorPid(final OpenAireEventPayload p) {
61
		// TODO: this can wait
62
		return p;
63
	}
64

    
65
	// Commenting highlights for addition events: the record is new for the subscriber!
66
	/*
67
	 * public static OpenAireEventPayload highlightAddByAffiliation(final OpenAireEventPayload p){ return p; }
68
	 *
69
	 * public static OpenAireEventPayload highlightAddByReference(final OpenAireEventPayload p){ return p; }
70
	 *
71
	 * public static OpenAireEventPayload highlightAddByProject(final OpenAireEventPayload p){ //TODO: this cannot wait return p; }
72
	 */
73

    
74
}
(2-2/4)