package main; import java.util.HashSet; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; import org.json.JSONException; import org.json.JSONObject; import provider.ResultListener; /** * Calculates statistic about the received tweets. * * @author Peter Wu */ public class TweetCounter implements ResultListener { private final static Logger LOGGER = Logger.getLogger(TweetCounter.class.getName()); private int tweetCount = 0; private final Set users; public TweetCounter() { this.users = new HashSet<>(); } @Override public void tweetGenerated(JSONObject obj) { tweetCount++; try { JSONObject userObj = obj.getJSONObject("user"); String screen_name = userObj.getString("screen_name"); users.add(screen_name); } catch (JSONException ex) { LOGGER.log(Level.WARNING, "Profile is missing data", ex); } } public int getTweetCount() { return tweetCount; } /** * @return The set of users who tweeted. Do not modify its contents! */ public Set getUsers() { return users; } }