/*
* Copyright (c) 2004-2016 Stuart Boston
*
* This file is part of TheMovieDB API.
*
* TheMovieDB API 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
* any later version.
*
* TheMovieDB API 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 TheMovieDB API. If not, see <http://www.gnu.org/licenses/>.
*
*/
package com.omertron.themoviedbapi.model.collection;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRootName;
import com.omertron.themoviedbapi.interfaces.Identification;
import com.omertron.themoviedbapi.model.AbstractJsonMapping;
import java.io.Serializable;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
/**
* @author stuart.boston
*/
@JsonRootName("collection")
public class Collection extends AbstractJsonMapping implements Serializable, Identification {
private static final long serialVersionUID = 100L;
@JsonProperty("id")
private int id;
@JsonProperty("title")
private String title;
@JsonProperty("name")
private String name;
@JsonProperty("poster_path")
private String posterPath;
@JsonProperty("backdrop_path")
private String backdropPath;
@JsonProperty("release_date")
private String releaseDate;
@JsonProperty("genre_ids")
private List<Integer> genreIds;
@JsonProperty("adult")
private boolean adult;
@JsonProperty("original_language")
private String originalLanguage;
@JsonProperty("original_title")
private String originalTitle;
@JsonProperty("overview")
private String overview;
@JsonProperty("video")
private boolean video;
@JsonProperty("popularity")
private float popularity;
@JsonProperty("vote_average")
private float voteAverage;
@JsonProperty("vote_count")
private int voteCount;
public String getBackdropPath() {
return backdropPath;
}
@Override
public int getId() {
return id;
}
public String getPosterPath() {
return posterPath;
}
public String getReleaseDate() {
return releaseDate;
}
public String getTitle() {
if (StringUtils.isBlank(title)) {
return name;
}
return title;
}
public String getName() {
if (StringUtils.isBlank(name)) {
return title;
}
return name;
}
public List<Integer> getGenreIds() {
return genreIds;
}
public boolean isAdult() {
return adult;
}
public String getOriginalLanguage() {
return originalLanguage;
}
public void setBackdropPath(String backdropPath) {
this.backdropPath = backdropPath;
}
@Override
public void setId(int id) {
this.id = id;
}
public void setPosterPath(String posterPath) {
this.posterPath = posterPath;
}
public void setReleaseDate(String releaseDate) {
this.releaseDate = releaseDate;
}
public void setTitle(String title) {
this.title = title;
}
public void setName(String name) {
this.name = name;
}
public void setGenreIds(List<Integer> genreIds) {
this.genreIds = genreIds;
}
public void setAdult(boolean adult) {
this.adult = adult;
}
public void setOriginalLanguage(String originalLanguage) {
this.originalLanguage = originalLanguage;
}
public String getOriginalTitle() {
return originalTitle;
}
public void setOriginalTitle(String originalTitle) {
this.originalTitle = originalTitle;
}
public String getOverview() {
return overview;
}
public void setOverview(String overview) {
this.overview = overview;
}
public boolean isVideo() {
return video;
}
public void setVideo(boolean video) {
this.video = video;
}
public float getPopularity() {
return popularity;
}
public void setPopularity(float popularity) {
this.popularity = popularity;
}
public float getVoteAverage() {
return voteAverage;
}
public void setVoteAverage(float voteAverage) {
this.voteAverage = voteAverage;
}
public int getVoteCount() {
return voteCount;
}
public void setVoteCount(int voteCount) {
this.voteCount = voteCount;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Collection) {
final Collection other = (Collection) obj;
return new EqualsBuilder()
.append(id, other.id)
.append(name, other.name)
.append(title, other.title)
.append(backdropPath, other.backdropPath)
.isEquals();
} else {
return false;
}
}
@Override
public int hashCode() {
return new HashCodeBuilder()
.append(id)
.append(backdropPath)
.append(title)
.append(name)
.append(posterPath)
.append(releaseDate)
.toHashCode();
}
}