package skywriting.examples.skyhout.pagerank;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import org.apache.hadoop.io.IntWritable;
import skywriting.examples.skyhout.common.Combiner;
import skywriting.examples.skyhout.common.IntArrayWritable;
public class IntListCombiner implements Combiner<IntWritable, List<Integer>, IntWritable, IntArrayWritable> {
@Override
public List<Integer> combine(List<Integer> oldValue, IntWritable newValue) {
oldValue.add(newValue.get());
return oldValue;
}
@Override
public IntArrayWritable combineFinal(IntWritable key, List<Integer> oldValue)
throws IOException {
int[] arr = new int[oldValue.size()];
int i = 0;
for (int x : oldValue) {
arr[i++] = x;
}
return new IntArrayWritable(arr);
}
@Override
public List<Integer> combineInit(IntWritable initVal) {
List<Integer> container = new LinkedList<Integer>();
container.add(initVal.get());
return container;
}
}