/*
* Copyright (C) 2011-2013 Roy Kokkelkoren
*
* This program 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.
*
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.sabdroidex.data.couchpotato;
import com.sabdroidex.utils.json.JSONElement;
import com.sabdroidex.utils.json.JSONSetter;
import com.sabdroidex.utils.json.impl.JSONType;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@JSONElement
public class Movie implements Serializable, Comparable<Movie> {
/**
*
*/
private static final long serialVersionUID = 6739744536873044885L;
private Integer movieID;
private Integer profileID;
private Integer statusID;
private MovieLibrary library;
private List<MovieRelease> releases;
public MovieLibrary getLibrary() {
return library;
}
@JSONSetter(name = "library", type=JSONType.JSON_OBJECT, objectClazz=MovieLibrary.class)
public void setLibrary(MovieLibrary library) {
this.library = library;
}
public Integer getStatusID() {
return statusID;
}
@JSONSetter(name = "status_id")
public void setStatusID(Integer statusID) {
this.statusID = statusID;
}
public Integer getProfileID() {
return profileID;
}
@JSONSetter(name = "profile_id")
public void setProfileID(Integer movieProfileID) {
this.profileID = movieProfileID;
}
public Integer getMovieID() {
return movieID;
}
@JSONSetter(name = "id")
public void setMovieID(Integer movieID) {
this.movieID = movieID;
}
public List<MovieRelease> getReleases() {
if (releases == null) {
releases = new ArrayList<MovieRelease>();
}
return releases;
}
@JSONSetter(name = "releases", type = JSONType.LIST, objectClazz = MovieRelease.class)
public void setReleases(List<MovieRelease> releases) {
this.releases = releases;
}
/**
* This method is used to retrieve the first release.
* @return The first available release or an empty object
*/
public MovieRelease getFirstRelease() {
if (releases != null && releases.size() > 0) {
return releases.get(0);
}
return new MovieRelease();
}
/**
* Get Title of Movie
* @return Title of Movie
*/
public String getTitle(){
return this.library.getInfo().getTitle();
}
/**
* Get Plot of Movie
* @return Plot of Movie
*/
public String getPlot(){
return this.library.getPlot();
}
/**
* Get URL location of Poster
* @return URL of Poster
*/
public String getURLPoster(){
return this.library.getInfo().getPosters().getPoster_org().get(0);
}
@Override
public int compareTo(Movie arg0) {
return this.getTitle().compareTo(arg0.getTitle());
}
/**
* Retrieves all the genres for this movie in a specific format
* @return
*/
public String getGenres() {
String genres = "";
for (String genre : getLibrary().getInfo().getGenres()) {
genres += genres.equals("") ? genre : ", " + genre;
}
return genres;
}
}