in spanner-data-validator-java/src/main/java/com/google/migration/dofns/MapWithRangeFn.java [83:121]
public void processElement(ProcessContext c) {
List<PartitionRange> siBRanges = c.sideInput(uuidRangesView);
HashResult result = c.element();
PartitionRange rangeForRecord = getPartitionRangeForRecord(result, siBRanges);
String key = String.format("%s|%s",
rangeForRecord.getStartRange(),
rangeForRecord.getEndRange());
HashResult resultOut = new HashResult(result.key,
result.isSource,
result.origValue,
result.sha256,
result.timestampThresholdValue);
resultOut.range = key;
switch(mappingType) {
case RANGE_PLUS_HASH:
key = String.format("%s|%s|%s",
rangeForRecord.getStartRange(),
rangeForRecord.getEndRange(),
result.sha256);
break;
case RANGE_PLUS_KEY_PLUS_HASH:
key = String.format("%s|%s|%s|%s",
rangeForRecord.getStartRange(),
rangeForRecord.getEndRange(),
result.key,
result.sha256);
break;
case JUST_RANGE:
default:
break;
}
KV<String, HashResult> outVal = KV.of(key, resultOut);
c.output(outVal);
}