package com.ibm.jactors.test;
import java.math.BigInteger;
/**
* A MapReducer that calculates the sum of squares of a list of integers.
*
* @author BFEIGENB
*
*/
public class SumOfSquaresReducer implements MapReduceer {
@Override
public void map(Object[] values, int start, int end) {
for (int i = start; i <= end; i++) {
values[i] = ((BigInteger) values[i]).multiply((BigInteger) values[i]);
sleep(200); // fake taking time
}
}
@Override
public void reduce(Object[] values, int start, int end, Object[] target, int posn) {
BigInteger res = new BigInteger("0");
for (int i = start; i <= end; i++) {
res = res.add((BigInteger) values[i]);
sleep(100); // fake taking time
}
target[posn] = res;
}
private void sleep(int millis) {
try {
Thread.sleep(millis);
} catch (InterruptedException e) {
}
}
}