package org.jadira.scanner.core.concurrent;
import java.util.List;
import java.util.stream.Collectors;
import org.jadira.scanner.core.api.Allocator;
import jsr166y.RecursiveTask;
public class AllocatorTask<T,A> extends RecursiveTask<List<T>> {
private static final long serialVersionUID = -5338937563634945167L;
private final Allocator<T,A> allocator;
private final List<A> inputs;
public AllocatorTask(final Allocator<T,A> allocator, final List<A> inputs) {
this.allocator = allocator;
this.inputs = inputs;
}
@Override
public List<T> compute() {
List<T> result = inputs.stream()
.map( a -> allocator.allocate(a) )
.collect( Collectors.toList() );
return result;
}
}