package we.love.pluto.twitter;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author Michal Gajdos
*/
final class CombinedAggregator extends AbstractAggregator {
private final List<DataAggregator> aggregators;
CombinedAggregator(final DataAggregator... aggregators) {
this.aggregators = Arrays.asList(aggregators);
this.aggregators.forEach(aggregator -> aggregator.listener(this::message));
}
@Override
public List<DataListener> listeners() {
return aggregators.stream()
.flatMap(aggregator -> aggregator.listeners().stream())
.collect(Collectors.toList());
}
@Override
public DataAggregator start(final String... keywords) {
aggregators.forEach(aggregator -> aggregator.start(keywords));
return this;
}
@Override
public void stop() {
aggregators.forEach(DataAggregator::stop);
}
}