package org.littlewings.hazelcast.aggregators;
import java.util.AbstractMap;
import java.util.Map;
import com.hazelcast.mapreduce.Context;
import com.hazelcast.mapreduce.Mapper;
import com.hazelcast.mapreduce.aggregation.Supplier;
public class SupplierDelegateMapper implements Mapper<String, Integer, String, Integer> {
private Supplier<String, ?, Integer> supplier;
public SupplierDelegateMapper(Supplier<String, ?, Integer> supplier) {
this.supplier = supplier;
}
@Override
public void map(String key, Integer value, Context<String, Integer> context) {
AbstractMap.SimpleEntry entry = new AbstractMap.SimpleEntry(key, value);
Integer valueOut = (Integer) supplier.apply((Map.Entry) entry);
if (valueOut != null) {
context.emit(key, valueOut);
}
}
}