package com.github.stakafum.mapreduce; import java.util.concurrent.Callable; /** * * @author takafumi * * Reducerクラスを並列に実行するためのCallableを実装したクラス * * @param <IntermediateKey> Reduce処理の入力のキークラス * @param <IntermediateValue> Reduce処理の入力のバリュークラス * @param <OutputReduceKey> Reduce処理の出力のキークラス * @param <OutputReduceValue> Reduce処理の出力のバリュークラス */ public class ReduceCallable<IntermediateKey, IntermediateValue,OutputReduceKey, OutputReduceValue> implements Callable<Reducer<IntermediateKey, IntermediateValue,OutputReduceKey, OutputReduceValue>>{ Reducer<IntermediateKey, IntermediateValue,OutputReduceKey, OutputReduceValue> reducer; ReduceCallable(){ } ReduceCallable(Reducer<IntermediateKey, IntermediateValue,OutputReduceKey, OutputReduceValue> reducer){ this.reducer = reducer; } public Reducer<IntermediateKey, IntermediateValue,OutputReduceKey, OutputReduceValue> call(){ this.reducer.reduce(); return this.reducer; } }