package org.aksw.jena_sparql_api.mapper;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.jena.sparql.engine.binding.Binding;
/**
* Aggregator for predefined keys
*
* @author raven
*
* @param <Map>
*/
public class AccObject<K>
implements Acc<Map<K, ?>>
{
private Map<K, Acc<?>> keyToSubAcc;
public AccObject(Map<K, Acc<?>> keyToSubAcc) {
this.keyToSubAcc = keyToSubAcc;
}
@Override
public void accumulate(Binding binding) {
for(Entry<K, Acc<?>> entry : keyToSubAcc.entrySet()) {
Acc<?> acc = entry.getValue();
acc.accumulate(binding);
}
}
@Override
public Map<K, Object> getValue() {
Map<K, Object> result = new HashMap<K, Object>();
for(Entry<K, Acc<?>> entry : keyToSubAcc.entrySet()) {
K k = entry.getKey();
Acc<?> acc = entry.getValue();
Object v = acc.getValue();
result.put(k, v);
}
return result;
}
}