package org.aksw.jena_sparql_api.mapper; import java.util.function.Function; public class AccBindingTransform<B, V, U> implements Accumulator<B, V> { protected Function<? super B, U> transform; protected Accumulator<? super U, V> subAcc; public AccBindingTransform(Function<? super B, U> transform, Accumulator<? super U, V> subAcc) { super(); this.transform = transform; this.subAcc = subAcc; } @Override public void accumulate(B binding) { U u = transform.apply(binding); subAcc.accumulate(u);; } @Override public V getValue() { V result = subAcc.getValue(); return result; } public static <B, V, U> Accumulator<B, V> create(Function<? super B, U> transform, Accumulator<? super U, V> subAcc) { Accumulator<B, V> result = new AccBindingTransform<>(transform, subAcc); return result; } }