package ro.pub.cs.pp.a51hadoop.algorithm.testing; import ro.pub.cs.pp.a51hadoop.algorithm.HashReducer; import ro.pub.cs.pp.a51hadoop.algorithm.ReducerGenerator; /* * A generator for DigitReducer functors. * */ public class DigitReducerGenerator implements ReducerGenerator { /* * All logic implemented in the generate() method. * * This generator can be reused to generate many sets of * objects as it does not hold any state information. */ public DigitReducerGenerator() { } /* * Generate @length distinct Reducer functors * @length - the number of Reducers to generate * @param - a parameter to be sent to the reducers * * @return an array of all Reducer objects created */ public HashReducer[] generate(int length, int param) { try { HashReducer[] r; r = new HashReducer[length]; for (int i = 0; i < length; i++) r[i] = new DigitReducer(i, param); return r; } catch(Exception e) { /* * Fallback to an empty list of reducers. */ return new HashReducer[0]; } } }