package weibo4android; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Date; import java.util.List; import weibo4android.http.Response; import weibo4android.org.json.JSONArray; import weibo4android.org.json.JSONException; import weibo4android.org.json.JSONObject; /** * * @author sinaWeibo * */ public class SearchResult extends WeiboResponse implements java.io.Serializable { private static final long serialVersionUID = 8227371192527300467L; private Date createdAt; private long to_user_id; private String to_user; private String text; private String source; private long id; private long from_user_id; private String from_user; private String iso_language_code; private String profileImageUrl; public SearchResult(JSONObject json) throws WeiboException, JSONException{ createdAt=parseDate(json.getString("created_at"), "EEE MMM dd HH:mm:ss z yyyy"); to_user_id=json.getLong("to_user_id"); to_user=json.getString("to_user"); text=json.getString("text"); source=json.getString("source"); id=json.getLong("id"); from_user_id=json.getLong("from_user_id"); from_user=json.getString("from_user"); iso_language_code=json.getString("iso_language_code"); profileImageUrl=json.getString("profile_image_url"); } public static List<SearchResult> constructResults(Response res)throws WeiboException{ JSONObject json=res.asJSONObject(); try { JSONArray list = json.getJSONArray("results"); int size=list.length(); List<SearchResult> rt=new ArrayList<SearchResult>(size); for(int i=0;i<size;i++){ rt.add(new SearchResult(list.getJSONObject(i))); } return rt; } catch (JSONException je) { throw new WeiboException(je); } } public Date getCreatedAt() { return this.createdAt; } public long getToUserId() { return this.to_user_id; } public long getId() { return this.id; } public long getFromUserId() { return this.from_user_id; } public String getText() { return this.text; } public String getSource() { return this.source; } public String getFromUser() { return this.from_user; } public String getToUser() { return this.to_user; } public String getName() { return this.iso_language_code; } public URL getProfileImageURL() { try { return new URL(profileImageUrl); } catch (MalformedURLException ex) { return null; } } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((from_user == null) ? 0 : from_user.hashCode()); result = prime * result + (int) (from_user_id ^ (from_user_id >>> 32)); result = prime * result + (int) (id ^ (id >>> 32)); result = prime * result + ((to_user == null) ? 0 : to_user.hashCode()); result = prime * result + (int) (to_user_id ^ (to_user_id >>> 32)); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; SearchResult other = (SearchResult) obj; if (from_user == null) { if (other.from_user != null) return false; } else if (!from_user.equals(other.from_user)) return false; if (from_user_id != other.from_user_id) return false; if (id != other.id) return false; if (to_user == null) { if (other.to_user != null) return false; } else if (!to_user.equals(other.to_user)) return false; if (to_user_id != other.to_user_id) return false; return true; } public String toString() { return "Result{ " +to_user_id + "," +to_user+ "," +text+ "," +id+ "," +from_user_id+ "," +from_user+ "," +iso_language_code+ "," +source+ "," +profileImageUrl+ "," +createdAt+ '}'; } }