Revision 54575
Added by Miriam Baglioni over 5 years ago
modules/dnet-mapreduce-jobs/branches/master/src/main/java/eu/dnetlib/data/mapreduce/hbase/bulktag/ResultTagger.java | ||
---|---|---|
8 | 8 |
import eu.dnetlib.data.proto.FieldTypeProtos; |
9 | 9 |
import eu.dnetlib.data.proto.OafProtos; |
10 | 10 |
import eu.dnetlib.data.proto.ResultProtos; |
11 |
import eu.dnetlib.data.proto.ResultProtos.Result.Context; |
|
11 | 12 |
import org.apache.commons.lang3.StringUtils; |
12 | 13 |
import org.apache.hadoop.mapreduce.Mapper; |
13 | 14 |
|
... | ... | |
25 | 26 |
private final static String SCHEMA_ID = "dnet:provenanceActions"; |
26 | 27 |
private final static String COUNTER_GROUP = "Bulk Tagging"; |
27 | 28 |
|
29 |
private final static String ZENODO_COMMUNITY_INDICATOR = "https://zenodo.org/communities/"; |
|
30 |
|
|
28 | 31 |
private String trust = "0.8"; |
29 | 32 |
|
30 | 33 |
|
... | ... | |
66 | 69 |
.collect(Collectors.toCollection(HashSet::new)) |
67 | 70 |
.forEach(dsId -> communities.addAll(conf.getCommunityForDatasourceValue(dsId))); |
68 | 71 |
|
69 |
//TODO: add code for Zenodo Communities |
|
72 |
final ResultProtos.Result.Metadata.Builder mBuilder = builder.getEntityBuilder().getResultBuilder().getMetadataBuilder(); |
|
73 |
mBuilder.getContextBuilderList().stream().filter(cBuilder -> cBuilder.getId().contains(ZENODO_COMMUNITY_INDICATOR)) |
|
74 |
.collect(Collectors.toList()) |
|
75 |
.forEach(c->communities.addAll(conf.getCommunityForZenodoCommunityValue(c.getId().substring(c.getId().lastIndexOf("/")+1).trim()))); |
|
70 | 76 |
|
77 |
|
|
78 |
|
|
79 |
List<Context.Builder> clist = mBuilder.getContextBuilderList().stream() |
|
80 |
.filter(c -> (!c.getId().contains(ZENODO_COMMUNITY_INDICATOR))).collect(Collectors.toList()); |
|
81 |
|
|
82 |
mBuilder.clearContext(); |
|
83 |
clist.forEach(c->mBuilder.addContext(c)); |
|
84 |
|
|
85 |
|
|
86 |
final Map<String, ResultProtos.Result.Context.Builder> cBuilders = Maps.newHashMap(); |
|
87 |
|
|
88 |
|
|
71 | 89 |
if(communities.isEmpty()){ |
72 | 90 |
context.getCounter(COUNTER_GROUP, "list of communities empty").increment(1); |
73 | 91 |
}else{ |
74 | 92 |
context.getCounter(COUNTER_GROUP, "list of communities has values!").increment(1); |
75 | 93 |
} |
76 | 94 |
|
77 |
final ResultProtos.Result.Metadata.Builder mBuilder = builder.getEntityBuilder().getResultBuilder().getMetadataBuilder(); |
|
78 |
|
|
79 |
final Map<String, ResultProtos.Result.Context.Builder> cBuilders = Maps.newHashMap(); |
|
80 | 95 |
mBuilder.getContextBuilderList().forEach(cBuilder -> { |
81 | 96 |
cBuilders.put(cBuilder.getId(), cBuilder); |
82 | 97 |
}); |
Also available in: Unified diff
changed to consider to mirror the change in zenodo community value: zenodo community instead of the openaire community associated to a result. The context of the zenodo community will be removed from those of the result if the zenodo community is not associated to any openaire community.