/** * */ package com.gmail.charleszq.picorner.model; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * Represents the model for either photos or videos. * * @author charleszq * */ public final class MediaObject implements Serializable { /** * */ private static final long serialVersionUID = -3467986522217462235L; private String mId; private String mTitle; private String mDescription; private String mThumbUrl; private String mLargeUrl; private int mViews = -1, mComments = -1, mFavorites = -1; private List<ExifData> mExifs = new ArrayList<ExifData>(); private boolean isUserLiked = false; /** * 500px */ private boolean isUserVoted = false; private double mRating = -1.0d; /** * For instagram photo, save the link here. */ private String mImageLink; public boolean isUserVoted() { return isUserVoted; } public void setUserVoted(boolean voted) { this.isUserVoted = voted; } public boolean isUserLiked() { return isUserLiked; } public void setUserLiked(boolean isUserLiked) { this.isUserLiked = isUserLiked; } /** * Used for flickr photo */ private String mSecret; public String getSecret() { return mSecret; } public void setSecret(String mSecret) { this.mSecret = mSecret; } private List<MediaObjectComment> commentList; private GeoLocation mLocation; private List<String> mTags; private Author mAuthor; public Author getAuthor() { return mAuthor; } public void setAuthor(Author mAuthor) { this.mAuthor = mAuthor; } public GeoLocation getLocation() { return mLocation; } public void setLocation(GeoLocation mLocation) { this.mLocation = mLocation; } private MediaObjectType mMediaType = MediaObjectType.PHOTO; private MediaSourceType mMediaSource = MediaSourceType.FLICKR; public MediaSourceType getMediaSource() { return mMediaSource; } public void setMediaSource(MediaSourceType mMediaSource) { this.mMediaSource = mMediaSource; } public String getTitle() { return mTitle; } public void setTitle(String mTitle) { this.mTitle = mTitle; } public String getDescription() { return mDescription; } public void setDescription(String mDescription) { this.mDescription = mDescription; } public String getThumbUrl() { return mThumbUrl; } public void setThumbUrl(String mUrl) { this.mThumbUrl = mUrl; } public MediaObjectType getMediaType() { return mMediaType; } public void setMediaType(MediaObjectType mMediaType) { this.mMediaType = mMediaType; } public String getLargeUrl() { return mLargeUrl; } public void setLargeUrl(String mLargeUrl) { this.mLargeUrl = mLargeUrl; } public String getId() { return mId; } public void setId(String id) { mId = id; } public void addTag(String tag) { if (mTags == null) { mTags = new ArrayList<String>(); } mTags.add(tag); } public List<String> getTags() { if (mTags == null) { mTags = new ArrayList<String>(); } return mTags; } public int getViews() { return mViews; } public void setViews(int mViews) { this.mViews = mViews; } public int getComments() { return mComments; } public void setComments(int mComments) { this.mComments = mComments; } public int getFavorites() { return mFavorites; } public void setFavorites(int mFavorites) { this.mFavorites = mFavorites; } public List<MediaObjectComment> getCommentList() { if (commentList == null) { commentList = new ArrayList<MediaObjectComment>(); } return commentList; } public void addComment(MediaObjectComment comment) { if (commentList == null) { commentList = new ArrayList<MediaObjectComment>(); } commentList.add(comment); } public void addExifdata(ExifData exifItem) { this.mExifs.add(exifItem); } public List<ExifData> getExifs() { return mExifs; } /* * (non-Javadoc) * * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object o) { if (!MediaObject.class.isInstance(o)) { return false; } return toString().equals(o.toString()); } /* * (non-Javadoc) * * @see java.lang.Object#hashCode() */ @Override public int hashCode() { return toString().hashCode(); } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getMediaSource().toString()); sb.append(getId()); return sb.toString(); } public String getImageLink() { return mImageLink; } public void setImageLink(String mImageLink) { this.mImageLink = mImageLink; } public double getRating() { return mRating; } public void setRating(double mRating) { this.mRating = mRating; } }