package org.wordpress.android.models; import org.json.JSONArray; import org.json.JSONObject; import org.wordpress.android.util.JSONUtils; import org.wordpress.android.util.StringUtils; import java.util.ArrayList; import java.util.List; public class Suggestion { private static final String MENTION_TAXONOMY = "mention"; public long siteID; private String userLogin; private String displayName; private String imageUrl; private String taxonomy; public Suggestion(long siteID, String userLogin, String displayName, String imageUrl, String taxonomy) { this.siteID = siteID; this.userLogin = userLogin; this.displayName = displayName; this.imageUrl = imageUrl; this.taxonomy = taxonomy; } public static Suggestion fromJSON(JSONObject json, long siteID) { if (json == null) { return null; } String userLogin = JSONUtils.getString(json, "user_login"); String displayName = JSONUtils.getString(json, "display_name"); String imageUrl = JSONUtils.getString(json, "image_URL"); // the api currently doesn't return a taxonomy field but we want to be ready for when it does return new Suggestion(siteID, userLogin, displayName, imageUrl, MENTION_TAXONOMY); } public static List<Suggestion> suggestionListFromJSON(JSONArray jsonArray, long siteID) { if (jsonArray == null) { return null; } ArrayList<Suggestion> suggestions = new ArrayList<Suggestion>(jsonArray.length()); for (int i = 0; i < jsonArray.length(); i++) { Suggestion suggestion = Suggestion.fromJSON(jsonArray.optJSONObject(i), siteID); suggestions.add(suggestion); } return suggestions; } public String getUserLogin() { return StringUtils.notNullStr(userLogin); } public String getDisplayName() { return StringUtils.notNullStr(displayName); } public String getImageUrl() { return StringUtils.notNullStr(imageUrl); } public String getTaxonomy() { return StringUtils.notNullStr(taxonomy); } }