package provider; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.TreeSet; import org.json.JSONObject; /** * ResultListener that can contain multiple registrations. * * @author Peter Wu */ public class CompositeResultListener implements ResultListener { private final List listeners; public CompositeResultListener() { this.listeners = new ArrayList<>(); } public void register(ResultListener rl) { listeners.add(rl); } public void unregister(ResultListener rl) { listeners.remove(rl); } public List getRegistered() { return new ArrayList<>(listeners); } public ResultListener findListener(Class rlCls) { for (ResultListener rl : listeners) { if (rlCls.isInstance(rl)) { return rl; } } return null; } @Override public void tweetGenerated(JSONObject obj) { for (ResultListener rl : listeners) { rl.tweetGenerated(obj); } } @Override public void profileGenerated(JSONObject obj) { for (ResultListener rl : listeners) { rl.profileGenerated(obj); } } }