package nl.uva.sc.parser.subscriber;
import java.util.ArrayList;
import java.util.List;
import nl.uva.sc.datatypes.Word;
public class ParserSubscribers {
private final List<BookParserSubscriber> mSubscriber = new ArrayList<>();
/**
* Notify all listeners about the last parsed word
*
* @param word
*/
public void notifyListener(final Word word) {
for (BookParserSubscriber subscriber : mSubscriber) {
subscriber.nextWord(word);
}
}
/**
* Subscribe to the word listener list
*
* @param subscriber
* @return True if successful subscribed
*/
public boolean subscribe(final BookParserSubscriber subscriber) {
return mSubscriber.add(subscriber);
}
/**
* Unsubscribe the given subscriber from the listener list
*
* @param subscriber
* @return True if successful unsubscribed
*/
public boolean unsubscribe(final BookParserSubscriber subscriber) {
return mSubscriber.remove(subscriber);
}
}