Project

General

Profile

« Previous | Next » 

Revision 57974

added identifier to the scholix object

View differences:

modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/dli/PrepareScholixDataReducer.java
14 14
import eu.dnetlib.data.mapreduce.hbase.dli.kv.DliKey;
15 15
import eu.dnetlib.data.proto.dli.ScholixObjectProtos;
16 16
import eu.dnetlib.data.proto.dli.Scholix2ObjectProtos;
17
import eu.dnetlib.data.transform.xml.AbstractDNetXsltFunctions;
17 18
import eu.dnetlib.dli.proto.ScholixVersion;
18 19
import org.apache.commons.logging.Log;
19 20
import org.apache.commons.logging.LogFactory;
......
65 66
					final ScholixObjectProtos.Scholix.Builder rel = parsev1(key, t);
66 67
					if (rel.hasTarget()) {
67 68
						rel.setSource(source.getSource());
69
						rel.setIdentifier(generateScholixIdentifier(rel));
68 70
						emit(context, JsonFormat.printToString(rel.build()));
69 71
					} else {
70 72
						context.getCounter("scholix", "missing target").increment(1);
......
134 136
		}
135 137
	}
136 138

  
139
	private String generateScholixIdentifier(ScholixObjectProtos.Scholix.Builder scholix) {
140
		final String relname = scholix.getRelationship().getName();
141
		final String sourceId = scholix.getSource().getDnetIdentifier();
142
		final String targetId = scholix.getTarget().getDnetIdentifier();
143
		return AbstractDNetXsltFunctions.md5(String.format("%s::%s::%s",sourceId,relname,targetId));
144
	}
137 145

  
146

  
138 147
	private Scholix2ObjectProtos.Scholix.Builder parsev2(DliKey key, final ImmutableBytesWritable value) {
139 148
		try {
140 149
			return Scholix2ObjectProtos.Scholix.newBuilder(Scholix2ObjectProtos.Scholix.parseFrom(value.copyBytes()));

Also available in: Unified diff