/* * 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(); } }