/* Copyright 2012 Prasanna Thirumalai This file is part of StackX. StackX 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. StackX 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 StackX. If not, see <http://www.gnu.org/licenses/>. */ package com.prasanna.android.stacknetwork.model; import java.io.Serializable; import org.json.JSONArray; import org.json.JSONException; import com.prasanna.android.stacknetwork.utils.JSONObjectWrapper; import com.prasanna.android.stacknetwork.utils.JsonFields; import com.prasanna.android.utils.LogWrapper; public class Comment extends Post implements Serializable { private static final long serialVersionUID = 4507419037482371574L; private static final String TAG = Comment.class.getSimpleName(); public long post_id; public PostType type; @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (int) (id ^ (id >>> 32)); result = prime * result + (int) (post_id ^ (post_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; Comment other = (Comment) obj; if (id != other.id) return false; if (post_id != other.post_id) return false; return true; } public static Comment parseCommentItem(final JSONObjectWrapper jsonObjectWrapper) { if (jsonObjectWrapper != null) { try { JSONArray jsonArray = jsonObjectWrapper.getJSONArray(JsonFields.ITEMS); if (jsonArray != null && jsonArray.length() == 1) { JSONObjectWrapper jsonObject = JSONObjectWrapper.wrap(jsonArray.getJSONObject(0)); return parse(jsonObject); } } catch (JSONException e) { LogWrapper.d(TAG, e.getMessage()); } } return null; } public static Comment parse(JSONObjectWrapper jsonObject) { if (jsonObject != null) { Comment comment = new Comment(); comment.id = jsonObject.getLong(JsonFields.Comment.COMMENT_ID); comment.post_id = jsonObject.getLong(JsonFields.Comment.POST_ID); comment.body = jsonObject.getString(JsonFields.Post.BODY); comment.creationDate = jsonObject.getLong(JsonFields.Comment.CREATION_DATE); comment.score = jsonObject.getInt(JsonFields.Comment.SCORE, 0); comment.owner = User.parseAsSnippet(jsonObject.getJSONObject(JsonFields.Post.OWNER)); comment.type = PostType.getEnum(jsonObject.getString(JsonFields.Comment.POST_TYPE)); return comment; } return null; } }