package we.love.pluto.twitter;
import java.util.ArrayList;
import java.util.List;
/**
* @author Michal Gajdos
*/
abstract class AbstractAggregator implements DataAggregator {
private final List<DataListener> listeners = new ArrayList<>();
private volatile String lastMessage;
@Override
public List<DataListener> listeners() {
return listeners;
}
@Override
public DataAggregator listener(final DataListener listener) {
listeners.add(listener);
return this;
}
@Override
public String lastMessage() {
return lastMessage;
}
@Override
public AbstractAggregator message(String message, String username) {
lastMessage = message;
listeners.forEach(listener -> listener.onNext(message, username));
return this;
}
}