/* * Firetweet - Twitter client for Android * * Copyright (C) 2012-2015 Mariotaku Lee <mariotaku.lee@gmail.com> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package twitter4j.internal.json; import org.json.JSONObject; import twitter4j.IDs; import twitter4j.StatusActivitySummary; import twitter4j.TwitterException; import twitter4j.conf.Configuration; import twitter4j.http.HttpResponse; import static twitter4j.internal.util.InternalParseUtil.getLong; public class StatusActivitySummaryJSONImpl extends TwitterResponseImpl implements StatusActivitySummary { private static final long serialVersionUID = -8036116716122700832L; private IDs favoriters; private IDs repliers; private IDs retweeters; private long favoritersCount; private long repliersCount; private long retweetersCount; private long descendentReplyCount; /* package */StatusActivitySummaryJSONImpl(final HttpResponse res, final Configuration conf) throws TwitterException { super(res); final JSONObject json = res.asJSONObject(); init(json); } /* package */StatusActivitySummaryJSONImpl(final JSONObject json) throws TwitterException { super(); init(json); } @Override public boolean equals(final Object obj) { if (this == obj) return true; if (obj == null) return false; if (!(obj instanceof StatusActivitySummaryJSONImpl)) return false; final StatusActivitySummaryJSONImpl other = (StatusActivitySummaryJSONImpl) obj; if (descendentReplyCount != other.descendentReplyCount) return false; if (favoriters == null) { if (other.favoriters != null) return false; } else if (!favoriters.equals(other.favoriters)) return false; if (favoritersCount != other.favoritersCount) return false; if (repliers == null) { if (other.repliers != null) return false; } else if (!repliers.equals(other.repliers)) return false; if (repliersCount != other.repliersCount) return false; if (retweeters == null) { if (other.retweeters != null) return false; } else if (!retweeters.equals(other.retweeters)) return false; if (retweetersCount != other.retweetersCount) return false; return true; } @Override public long getDescendentReplyCount() { return descendentReplyCount; } @Override public IDs getFavoriters() { return favoriters; } @Override public long getFavoritersCount() { return favoritersCount; } @Override public IDs getRepliers() { return repliers; } @Override public long getRepliersCount() { return repliersCount; } @Override public IDs getRetweeters() { return retweeters; } @Override public long getRetweetersCount() { return retweetersCount; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (int) (descendentReplyCount ^ descendentReplyCount >>> 32); result = prime * result + (favoriters == null ? 0 : favoriters.hashCode()); result = prime * result + (int) (favoritersCount ^ favoritersCount >>> 32); result = prime * result + (repliers == null ? 0 : repliers.hashCode()); result = prime * result + (int) (repliersCount ^ repliersCount >>> 32); result = prime * result + (retweeters == null ? 0 : retweeters.hashCode()); result = prime * result + (int) (retweetersCount ^ retweetersCount >>> 32); return result; } @Override public String toString() { return "StatusActivitySummaryJSONImpl{favoriters=" + favoriters + ", repliers=" + repliers + ", retweeters=" + retweeters + ", favoritersCount=" + favoritersCount + ", repliersCount=" + repliersCount + ", retweetersCount=" + retweetersCount + ", descendentReplyCount=" + descendentReplyCount + "}"; } private void init(final JSONObject json) throws TwitterException { favoriters = new IDsJSONImpl(json.optString("favoriters")); repliers = new IDsJSONImpl(json.optString("repliers")); retweeters = new IDsJSONImpl(json.optString("retweeters")); favoritersCount = getLong("favoriters_count", json); repliersCount = getLong("repliers_count", json); retweetersCount = getLong("retweeters_count", json); descendentReplyCount = getLong("descendent_reply_count", json); } }