package com.manuelmaly.hn.model;
import java.io.Serializable;
public class HNPost implements Serializable {
private static final long serialVersionUID = -6764758363164898276L;
private String mURL;
private String mTitle;
private String mAuthor;
private int mCommentsCount;
private int mPoints;
private String mURLDomain;
private String mPostID; // as found in link to comments
private String mUpvoteURL;
public HNPost(String url, String title, String urlDomain, String author, String postID, int commentsCount, int points, String upvoteURL) {
super();
mURL = url;
mTitle = title;
mURLDomain = urlDomain;
mAuthor = author;
mPostID = postID;
mCommentsCount = commentsCount;
mPoints = points;
mUpvoteURL = upvoteURL;
}
public String getURL() {
return mURL;
}
public String getTitle() {
return mTitle;
}
public String getAuthor() {
return mAuthor;
}
public int getCommentsCount() {
return mCommentsCount;
}
public String getPostID() {
return mPostID;
}
public int getPoints() {
return mPoints;
}
public String getURLDomain() {
return mURLDomain;
}
public String getUpvoteURL(String currentUserName) {
if (mUpvoteURL == null || !mUpvoteURL.contains("auth=")) // HN changed authentication
return null;
return mUpvoteURL;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((mAuthor == null) ? 0 : mAuthor.hashCode());
result = prime * result + ((mPostID == null) ? 0 : mPostID.hashCode());
result = prime * result + ((mURL == null) ? 0 : mURL.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
HNPost other = (HNPost) obj;
if (mAuthor == null) {
if (other.mAuthor != null)
return false;
} else if (!mAuthor.equals(other.mAuthor))
return false;
if (mPostID == null) {
if (other.mPostID != null)
return false;
} else if (!mPostID.equals(other.mPostID))
return false;
if (mURL == null) {
if (other.mURL != null)
return false;
} else if (!mURL.equals(other.mURL))
return false;
return true;
}
}