From 44ba85aaa80bb263822c11adf3af2be2583bfa9c Mon Sep 17 00:00:00 2001 From: Stuart Boston Date: Sat, 18 May 2013 22:08:40 +0100 Subject: [PATCH] Changed return values to include page values --- .../omertron/themoviedbapi/TheMovieDbApi.java | 253 +++++++++--------- .../themoviedbapi/results/TmdbResults.java | 6 + .../results/TmdbResultsList.java | 9 +- .../themoviedbapi/results/TmdbResultsMap.java | 9 +- .../wrapper/AbstractWrapper.java | 22 +- .../themoviedbapi/wrapper/WrapperImages.java | 36 +-- .../wrapper/WrapperMovieCasts.java | 22 ++ .../wrapper/WrapperPersonCredits.java | 27 ++ .../themoviedbapi/TheMovieDbApiTest.java | 152 ++++++----- 9 files changed, 317 insertions(+), 219 deletions(-) diff --git a/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java b/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java index 7afdb918b..273708531 100644 --- a/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java +++ b/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java @@ -22,6 +22,7 @@ package com.omertron.themoviedbapi; import com.fasterxml.jackson.databind.ObjectMapper; import com.omertron.themoviedbapi.MovieDbException.MovieDbExceptionType; import com.omertron.themoviedbapi.model.*; +import com.omertron.themoviedbapi.results.TmdbResultsList; import com.omertron.themoviedbapi.tools.ApiUrl; import static com.omertron.themoviedbapi.tools.ApiUrl.*; import com.omertron.themoviedbapi.tools.WebBrowser; @@ -375,7 +376,7 @@ public class TheMovieDbApi { * @param country * @throws MovieDbException */ - public List getMovieAlternativeTitles(int movieId, String country, String... appendToResponse) throws MovieDbException { + public TmdbResultsList getMovieAlternativeTitles(int movieId, String country, String... appendToResponse) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "/alternative_titles"); apiUrl.addArgument(PARAM_ID, movieId); @@ -389,7 +390,9 @@ public class TheMovieDbApi { String webpage = WebBrowser.request(url); try { WrapperAlternativeTitles wrapper = mapper.readValue(webpage, WrapperAlternativeTitles.class); - return wrapper.getTitles(); + TmdbResultsList results = new TmdbResultsList(wrapper.getTitles()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get movie alternative titles: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -404,9 +407,7 @@ public class TheMovieDbApi { * @param movieId * @throws MovieDbException */ - public List getMovieCasts(int movieId, String... appendToResponse) throws MovieDbException { - List people = new ArrayList(); - + public TmdbResultsList getMovieCasts(int movieId, String... appendToResponse) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "/casts"); apiUrl.addArgument(PARAM_ID, movieId); @@ -417,22 +418,9 @@ public class TheMovieDbApi { try { WrapperMovieCasts wrapper = mapper.readValue(webpage, WrapperMovieCasts.class); - - // Add a cast member - for (PersonCast cast : wrapper.getCast()) { - Person person = new Person(); - person.addCast(cast.getId(), cast.getName(), cast.getProfilePath(), cast.getCharacter(), cast.getOrder()); - people.add(person); - } - - // Add a crew member - for (PersonCrew crew : wrapper.getCrew()) { - Person person = new Person(); - person.addCrew(crew.getId(), crew.getName(), crew.getProfilePath(), crew.getDepartment(), crew.getJob()); - people.add(person); - } - - return people; + TmdbResultsList results = new TmdbResultsList(wrapper.getAll()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get movie casts: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -446,7 +434,7 @@ public class TheMovieDbApi { * @param language * @throws MovieDbException */ - public List getMovieImages(int movieId, String language, String... appendToResponse) throws MovieDbException { + public TmdbResultsList getMovieImages(int movieId, String language, String... appendToResponse) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "/images"); apiUrl.addArgument(PARAM_ID, movieId); @@ -461,7 +449,9 @@ public class TheMovieDbApi { try { WrapperImages wrapper = mapper.readValue(webpage, WrapperImages.class); - return wrapper.getAll(); + TmdbResultsList results = new TmdbResultsList(wrapper.getAll()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get movie images: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -476,7 +466,7 @@ public class TheMovieDbApi { * @param movieId * @throws MovieDbException */ - public List getMovieKeywords(int movieId, String... appendToResponse) throws MovieDbException { + public TmdbResultsList getMovieKeywords(int movieId, String... appendToResponse) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "/keywords"); apiUrl.addArgument(PARAM_ID, movieId); @@ -487,7 +477,9 @@ public class TheMovieDbApi { try { WrapperMovieKeywords wrapper = mapper.readValue(webpage, WrapperMovieKeywords.class); - return wrapper.getKeywords(); + TmdbResultsList results = new TmdbResultsList(wrapper.getKeywords()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get movie keywords: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -501,7 +493,7 @@ public class TheMovieDbApi { * @param language * @throws MovieDbException */ - public List getMovieReleaseInfo(int movieId, String language, String... appendToResponse) throws MovieDbException { + public TmdbResultsList getMovieReleaseInfo(int movieId, String language, String... appendToResponse) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "/releases"); apiUrl.addArgument(PARAM_ID, movieId); apiUrl.addArgument(PARAM_LANGUAGE, language); @@ -513,7 +505,9 @@ public class TheMovieDbApi { try { WrapperReleaseInfo wrapper = mapper.readValue(webpage, WrapperReleaseInfo.class); - return wrapper.getCountries(); + TmdbResultsList results = new TmdbResultsList(wrapper.getCountries()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get movie release information: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -529,7 +523,7 @@ public class TheMovieDbApi { * @param language * @throws MovieDbException */ - public List getMovieTrailers(int movieId, String language, String... appendToResponse) throws MovieDbException { + public TmdbResultsList getMovieTrailers(int movieId, String language, String... appendToResponse) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "/trailers"); apiUrl.addArgument(PARAM_ID, movieId); @@ -544,7 +538,9 @@ public class TheMovieDbApi { try { WrapperTrailers wrapper = mapper.readValue(webpage, WrapperTrailers.class); - return wrapper.getAll(); + TmdbResultsList results = new TmdbResultsList(wrapper.getAll()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get movie trailers: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -557,7 +553,7 @@ public class TheMovieDbApi { * @param movieId * @throws MovieDbException */ - public List getMovieTranslations(int movieId, String... appendToResponse) throws MovieDbException { + public TmdbResultsList getMovieTranslations(int movieId, String... appendToResponse) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "/translations"); apiUrl.addArgument(PARAM_ID, movieId); @@ -568,7 +564,9 @@ public class TheMovieDbApi { try { WrapperTranslations wrapper = mapper.readValue(webpage, WrapperTranslations.class); - return wrapper.getTranslations(); + TmdbResultsList results = new TmdbResultsList(wrapper.getTranslations()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get movie tranlations: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -587,7 +585,7 @@ public class TheMovieDbApi { * @param page * @throws MovieDbException */ - public List getSimilarMovies(int movieId, String language, int page, String... appendToResponse) throws MovieDbException { + public TmdbResultsList getSimilarMovies(int movieId, String language, int page, String... appendToResponse) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "/similar_movies"); apiUrl.addArgument(PARAM_ID, movieId); @@ -606,14 +604,16 @@ public class TheMovieDbApi { try { WrapperMovie wrapper = mapper.readValue(webpage, WrapperMovie.class); - return wrapper.getMovies(); + TmdbResultsList results = new TmdbResultsList(wrapper.getMovies()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get similar movies: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); } } - public List getReviews(int movieId, String language, int page, String... appendToResponse) throws MovieDbException { + public TmdbResultsList getReviews(int movieId, String language, int page, String... appendToResponse) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "/reviews"); apiUrl.addArgument(PARAM_ID, movieId); @@ -632,7 +632,9 @@ public class TheMovieDbApi { try { WrapperReviews wrapper = mapper.readValue(webpage, WrapperReviews.class); - return wrapper.getReviews(); + TmdbResultsList results = new TmdbResultsList(wrapper.getReviews()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get reviews: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -647,7 +649,7 @@ public class TheMovieDbApi { * @param page * @throws MovieDbException */ - public List getMovieLists(int movieId, String language, int page, String... appendToResponse) throws MovieDbException { + public TmdbResultsList getMovieLists(int movieId, String language, int page, String... appendToResponse) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "/lists"); apiUrl.addArgument(PARAM_ID, movieId); @@ -666,7 +668,9 @@ public class TheMovieDbApi { try { WrapperMovieList wrapper = mapper.readValue(webpage, WrapperMovieList.class); - return wrapper.getMovieList(); + TmdbResultsList results = new TmdbResultsList(wrapper.getMovieList()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get movie lists: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -692,7 +696,7 @@ public class TheMovieDbApi { * @throws MovieDbException */ @Deprecated - public List getMovieChanges(int movieId, String startDate, String endDate) throws MovieDbException { + public TmdbResultsList getMovieChanges(int movieId, String startDate, String endDate) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "/changes"); apiUrl.addArgument(PARAM_ID, movieId); @@ -709,7 +713,9 @@ public class TheMovieDbApi { try { WrapperChanges wrapper = mapper.readValue(webpage, WrapperChanges.class); - return wrapper.getChanges(); + TmdbResultsList results = new TmdbResultsList(wrapper.getChanges()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get movie changes: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -743,7 +749,7 @@ public class TheMovieDbApi { * * @throws MovieDbException */ - public List getUpcoming(String language, int page) throws MovieDbException { + public TmdbResultsList getUpcoming(String language, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "upcoming"); if (StringUtils.isNotBlank(language)) { @@ -759,7 +765,9 @@ public class TheMovieDbApi { try { WrapperMovie wrapper = mapper.readValue(webpage, WrapperMovie.class); - return wrapper.getMovies(); + TmdbResultsList results = new TmdbResultsList(wrapper.getMovies()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get upcoming movies: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -778,7 +786,7 @@ public class TheMovieDbApi { * @param page * @throws MovieDbException */ - public List getNowPlayingMovies(String language, int page) throws MovieDbException { + public TmdbResultsList getNowPlayingMovies(String language, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "now-playing"); if (StringUtils.isNotBlank(language)) { @@ -794,7 +802,9 @@ public class TheMovieDbApi { try { WrapperMovie wrapper = mapper.readValue(webpage, WrapperMovie.class); - return wrapper.getMovies(); + TmdbResultsList results = new TmdbResultsList(wrapper.getMovies()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get now playing movies: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -812,7 +822,7 @@ public class TheMovieDbApi { * @param page * @throws MovieDbException */ - public List getPopularMovieList(String language, int page) throws MovieDbException { + public TmdbResultsList getPopularMovieList(String language, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "popular"); if (StringUtils.isNotBlank(language)) { @@ -828,7 +838,9 @@ public class TheMovieDbApi { try { WrapperMovie wrapper = mapper.readValue(webpage, WrapperMovie.class); - return wrapper.getMovies(); + TmdbResultsList results = new TmdbResultsList(wrapper.getMovies()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get popular movie list: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -846,7 +858,7 @@ public class TheMovieDbApi { * @param page * @throws MovieDbException */ - public List getTopRatedMovies(String language, int page) throws MovieDbException { + public TmdbResultsList getTopRatedMovies(String language, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_MOVIE, "top-rated"); if (StringUtils.isNotBlank(language)) { @@ -862,7 +874,9 @@ public class TheMovieDbApi { try { WrapperMovie wrapper = mapper.readValue(webpage, WrapperMovie.class); - return wrapper.getMovies(); + TmdbResultsList results = new TmdbResultsList(wrapper.getMovies()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get top rated movies: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -925,7 +939,7 @@ public class TheMovieDbApi { * @param language * @throws MovieDbException */ - public List getCollectionImages(int collectionId, String language) throws MovieDbException { + public TmdbResultsList getCollectionImages(int collectionId, String language) throws MovieDbException { List artwork = new ArrayList(); ApiUrl apiUrl = new ApiUrl(apiKey, BASE_COLLECTION, "/images"); apiUrl.addArgument(PARAM_ID, collectionId); @@ -939,25 +953,13 @@ public class TheMovieDbApi { try { WrapperImages wrapper = mapper.readValue(webpage, WrapperImages.class); - - // Add all the posters to the list - for (Artwork poster : wrapper.getPosters()) { - poster.setArtworkType(ArtworkType.POSTER); - artwork.add(poster); - } - - // Add all the backdrops to the list - for (Artwork backdrop : wrapper.getBackdrops()) { - backdrop.setArtworkType(ArtworkType.BACKDROP); - artwork.add(backdrop); - } - - return artwork; + TmdbResultsList results = new TmdbResultsList(wrapper.getAll(ArtworkType.POSTER, ArtworkType.BACKDROP)); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get collection images: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); } - } // @@ -995,7 +997,7 @@ public class TheMovieDbApi { * @param personId * @throws MovieDbException */ - public List getPersonCredits(int personId) throws MovieDbException { + public TmdbResultsList getPersonCredits(int personId) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_PERSON, "/credits"); List personCredits = new ArrayList(); @@ -1007,18 +1009,9 @@ public class TheMovieDbApi { try { WrapperPersonCredits wrapper = mapper.readValue(webpage, WrapperPersonCredits.class); - - // Add a cast member - for (PersonCredit cast : wrapper.getCast()) { - cast.setPersonType(PersonType.CAST); - personCredits.add(cast); - } - // Add a crew member - for (PersonCredit crew : wrapper.getCrew()) { - crew.setPersonType(PersonType.CREW); - personCredits.add(crew); - } - return personCredits; + TmdbResultsList results = new TmdbResultsList(wrapper.getAll()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get person credits: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1031,7 +1024,7 @@ public class TheMovieDbApi { * @param personId * @throws MovieDbException */ - public List getPersonImages(int personId) throws MovieDbException { + public TmdbResultsList getPersonImages(int personId) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_PERSON, "/images"); List personImages = new ArrayList(); @@ -1043,13 +1036,9 @@ public class TheMovieDbApi { try { WrapperImages wrapper = mapper.readValue(webpage, WrapperImages.class); - - // Update the image type - for (Artwork artwork : wrapper.getProfiles()) { - artwork.setArtworkType(ArtworkType.PROFILE); - personImages.add(artwork); - } - return personImages; + TmdbResultsList results = new TmdbResultsList(wrapper.getAll(ArtworkType.PROFILE)); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get person images: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1084,7 +1073,7 @@ public class TheMovieDbApi { * @return * @throws MovieDbException */ - public List getPersonPopular() throws MovieDbException { + public TmdbResultsList getPersonPopular() throws MovieDbException { return getPersonPopular(0); } @@ -1097,7 +1086,7 @@ public class TheMovieDbApi { * @return * @throws MovieDbException */ - public List getPersonPopular(int page) throws MovieDbException { + public TmdbResultsList getPersonPopular(int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_PERSON, "/popular"); if (page > 0) { @@ -1109,7 +1098,9 @@ public class TheMovieDbApi { try { WrapperPersonList wrapper = mapper.readValue(webpage, WrapperPersonList.class); - return wrapper.getPersonList(); + TmdbResultsList results = new TmdbResultsList(wrapper.getPersonList()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get person images: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1171,7 +1162,7 @@ public class TheMovieDbApi { * @param page * @throws MovieDbException */ - public List getCompanyMovies(int companyId, String language, int page) throws MovieDbException { + public TmdbResultsList getCompanyMovies(int companyId, String language, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_COMPANY, "/movies"); apiUrl.addArgument(PARAM_ID, companyId); @@ -1189,7 +1180,9 @@ public class TheMovieDbApi { try { WrapperCompanyMovies wrapper = mapper.readValue(webpage, WrapperCompanyMovies.class); - return wrapper.getResults(); + TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get company movies: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1206,7 +1199,7 @@ public class TheMovieDbApi { * * @param language */ - public List getGenreList(String language) throws MovieDbException { + public TmdbResultsList getGenreList(String language) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_GENRE, "/list"); apiUrl.addArgument(PARAM_LANGUAGE, language); @@ -1215,18 +1208,15 @@ public class TheMovieDbApi { try { WrapperGenres wrapper = mapper.readValue(webpage, WrapperGenres.class); - return wrapper.getGenres(); + TmdbResultsList results = new TmdbResultsList(wrapper.getGenres()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get genre list: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); } } - @Deprecated - public List getGenreMovies(int genreId, String language, int page) throws MovieDbException { - return getGenreMovies(genreId, language, page, Boolean.TRUE); - } - /** * Get a list of movies per genre. * @@ -1238,7 +1228,7 @@ public class TheMovieDbApi { * @param language * @param page */ - public List getGenreMovies(int genreId, String language, int page, boolean includeAllMovies) throws MovieDbException { + public TmdbResultsList getGenreMovies(int genreId, String language, int page, boolean includeAllMovies) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_GENRE, "/movies"); apiUrl.addArgument(PARAM_ID, genreId); @@ -1257,7 +1247,9 @@ public class TheMovieDbApi { try { WrapperMovie wrapper = mapper.readValue(webpage, WrapperMovie.class); - return wrapper.getMovies(); + TmdbResultsList results = new TmdbResultsList(wrapper.getMovies()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get genre movie list: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1277,7 +1269,7 @@ public class TheMovieDbApi { * @param page The page of results to return. 0 to get the default (first page) * @throws MovieDbException */ - public List searchMovie(String movieName, int searchYear, String language, boolean includeAdult, int page) throws MovieDbException { + public TmdbResultsList searchMovie(String movieName, int searchYear, String language, boolean includeAdult, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_SEARCH, "movie"); if (StringUtils.isNotBlank(movieName)) { apiUrl.addArgument(PARAM_QUERY, movieName); @@ -1302,7 +1294,9 @@ public class TheMovieDbApi { String webpage = WebBrowser.request(url); try { WrapperMovie wrapper = mapper.readValue(webpage, WrapperMovie.class); - return wrapper.getMovies(); + TmdbResultsList results = new TmdbResultsList(wrapper.getMovies()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to find movie: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1318,7 +1312,7 @@ public class TheMovieDbApi { * @param page * @throws MovieDbException */ - public List searchCollection(String query, String language, int page) throws MovieDbException { + public TmdbResultsList searchCollection(String query, String language, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_SEARCH, "collections"); if (StringUtils.isNotBlank(query)) { @@ -1338,7 +1332,9 @@ public class TheMovieDbApi { String webpage = WebBrowser.request(url); try { WrapperCollection wrapper = mapper.readValue(webpage, WrapperCollection.class); - return wrapper.getResults(); + TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to find collection: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1355,7 +1351,7 @@ public class TheMovieDbApi { * @param page * @throws MovieDbException */ - public List searchPeople(String personName, boolean includeAdult, int page) throws MovieDbException { + public TmdbResultsList searchPeople(String personName, boolean includeAdult, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_SEARCH, "person"); apiUrl.addArgument(PARAM_QUERY, personName); apiUrl.addArgument(PARAM_ADULT, includeAdult); @@ -1369,7 +1365,9 @@ public class TheMovieDbApi { try { WrapperPerson wrapper = mapper.readValue(webpage, WrapperPerson.class); - return wrapper.getResults(); + TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to find person: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1384,7 +1382,7 @@ public class TheMovieDbApi { * @param page * @throws MovieDbException */ - public List searchList(String query, String language, int page) throws MovieDbException { + public TmdbResultsList searchList(String query, String language, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_SEARCH, "list"); if (StringUtils.isNotBlank(query)) { @@ -1404,7 +1402,9 @@ public class TheMovieDbApi { String webpage = WebBrowser.request(url); try { WrapperMovieList wrapper = mapper.readValue(webpage, WrapperMovieList.class); - return wrapper.getMovieList(); + TmdbResultsList results = new TmdbResultsList(wrapper.getMovieList()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to find list: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1423,7 +1423,7 @@ public class TheMovieDbApi { * @param page * @throws MovieDbException */ - public List searchCompanies(String companyName, int page) throws MovieDbException { + public TmdbResultsList searchCompanies(String companyName, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_SEARCH, "company"); apiUrl.addArgument(PARAM_QUERY, companyName); @@ -1435,7 +1435,9 @@ public class TheMovieDbApi { String webpage = WebBrowser.request(url); try { WrapperCompany wrapper = mapper.readValue(webpage, WrapperCompany.class); - return wrapper.getResults(); + TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to find company: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1449,7 +1451,7 @@ public class TheMovieDbApi { * @param page * @throws MovieDbException */ - public List searchKeyword(String query, int page) throws MovieDbException { + public TmdbResultsList searchKeyword(String query, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_SEARCH, "keyword"); if (StringUtils.isNotBlank(query)) { @@ -1465,7 +1467,9 @@ public class TheMovieDbApi { String webpage = WebBrowser.request(url); try { WrapperKeywords wrapper = mapper.readValue(webpage, WrapperKeywords.class); - return wrapper.getResults(); + TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to find keyword: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1532,7 +1536,7 @@ public class TheMovieDbApi { * @return List of movies with the keyword * @throws MovieDbException */ - public List getKeywordMovies(String keywordId, String language, int page) throws MovieDbException { + public TmdbResultsList getKeywordMovies(String keywordId, String language, int page) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_KEYWORD, "/movies"); apiUrl.addArgument(PARAM_ID, keywordId); @@ -1549,7 +1553,9 @@ public class TheMovieDbApi { try { WrapperKeywordMovies wrapper = mapper.readValue(webpage, WrapperKeywordMovies.class); - return wrapper.getResults(); + TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get top rated movies: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1568,10 +1574,9 @@ public class TheMovieDbApi { throw new MovieDbException(MovieDbExceptionType.UNKNOWN_CAUSE, "Not implemented yet"); } // - // // - public List getJobs() throws MovieDbException { + public TmdbResultsList getJobs() throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_JOB, "/list"); URL url = apiUrl.buildUrl(); @@ -1579,7 +1584,9 @@ public class TheMovieDbApi { try { WrapperJobList wrapper = mapper.readValue(webpage, WrapperJobList.class); - return wrapper.getJobs(); + TmdbResultsList results = new TmdbResultsList(wrapper.getJobs()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { LOG.warn("Failed to get job list: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); @@ -1616,12 +1623,12 @@ public class TheMovieDbApi { * @return * @throws MovieDbException */ - public List getDiscover(int page, String language, String sortBy, boolean includeAdult, int year, + public TmdbResultsList getDiscover(int page, String language, String sortBy, boolean includeAdult, int year, int primaryReleaseYear, int voteCountGte, float voteAverageGte, String withGenres, String releaseDateGte, String releaseDateLte, String certificationCountry, String certificationLte, String withCompanies) throws MovieDbException { - Discover d = new Discover(); - d.page(page) + Discover discover = new Discover(); + discover.page(page) .language(language) .sortBy(sortBy) .includeAdult(includeAdult) @@ -1636,7 +1643,7 @@ public class TheMovieDbApi { .certificationLte(certificationLte) .withCompanies(withCompanies); - return getDiscover(d); + return getDiscover(discover); } /** @@ -1646,7 +1653,7 @@ public class TheMovieDbApi { * @return * @throws MovieDbException */ - public List getDiscover(Discover discover) throws MovieDbException { + public TmdbResultsList getDiscover(Discover discover) throws MovieDbException { ApiUrl apiUrl = new ApiUrl(apiKey, BASE_DISCOVER, "/movie"); apiUrl.setArguments(discover.getParams()); @@ -1656,9 +1663,11 @@ public class TheMovieDbApi { try { WrapperMovie wrapper = mapper.readValue(webpage, WrapperMovie.class); - return wrapper.getMovies(); + TmdbResultsList results = new TmdbResultsList(wrapper.getMovies()); + results.copyWrapper(wrapper); + return results; } catch (IOException ex) { - LOG.warn("Failed to get job list: {}", ex.getMessage()); + LOG.warn("Failed to get discover list: {}", ex.getMessage()); throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webpage, ex); } } diff --git a/src/main/java/com/omertron/themoviedbapi/results/TmdbResults.java b/src/main/java/com/omertron/themoviedbapi/results/TmdbResults.java index f18ecc88e..54a1076c3 100644 --- a/src/main/java/com/omertron/themoviedbapi/results/TmdbResults.java +++ b/src/main/java/com/omertron/themoviedbapi/results/TmdbResults.java @@ -19,11 +19,13 @@ */ package com.omertron.themoviedbapi.results; +import com.omertron.themoviedbapi.wrapper.AbstractWrapper; import com.omertron.themoviedbapi.wrapper.AbstractWrapperAll; import com.omertron.themoviedbapi.wrapper.AbstractWrapperId; /** * Abstract class to return the results and the id/page info + * * @author Stuart */ public abstract class TmdbResults { @@ -69,6 +71,10 @@ public abstract class TmdbResults { } // + public void copyWrapper(AbstractWrapper wrapper) { + // Nothing to copy, just a placeholder + } + /** * Copy the Id from the wrapper * diff --git a/src/main/java/com/omertron/themoviedbapi/results/TmdbResultsList.java b/src/main/java/com/omertron/themoviedbapi/results/TmdbResultsList.java index 70ce3b972..3983327c0 100644 --- a/src/main/java/com/omertron/themoviedbapi/results/TmdbResultsList.java +++ b/src/main/java/com/omertron/themoviedbapi/results/TmdbResultsList.java @@ -19,17 +19,22 @@ */ package com.omertron.themoviedbapi.results; -import java.util.Collections; +import java.util.ArrayList; import java.util.List; /** * List of the results from TheMovieDb + * * @author Stuart * @param */ public final class TmdbResultsList extends TmdbResults { - private List results = Collections.EMPTY_LIST; + private List results; + + public TmdbResultsList(List resultList) { + results = new ArrayList(resultList); + } public List getResults() { return results; diff --git a/src/main/java/com/omertron/themoviedbapi/results/TmdbResultsMap.java b/src/main/java/com/omertron/themoviedbapi/results/TmdbResultsMap.java index f14e30fea..6e8c99db8 100644 --- a/src/main/java/com/omertron/themoviedbapi/results/TmdbResultsMap.java +++ b/src/main/java/com/omertron/themoviedbapi/results/TmdbResultsMap.java @@ -19,18 +19,23 @@ */ package com.omertron.themoviedbapi.results; -import java.util.Collections; +import java.util.HashMap; import java.util.Map; /** * Map of the results from TheMovieDb + * * @author Stuart * @param * @param */ public final class TmdbResultsMap extends TmdbResults { - private Map results = Collections.EMPTY_MAP; + private Map results; + + public TmdbResultsMap(Map resultsMap) { + results = new HashMap(results); + } public Map getResults() { return results; diff --git a/src/main/java/com/omertron/themoviedbapi/wrapper/AbstractWrapper.java b/src/main/java/com/omertron/themoviedbapi/wrapper/AbstractWrapper.java index e55c69c4a..840d8c41f 100644 --- a/src/main/java/com/omertron/themoviedbapi/wrapper/AbstractWrapper.java +++ b/src/main/java/com/omertron/themoviedbapi/wrapper/AbstractWrapper.java @@ -20,10 +20,14 @@ package com.omertron.themoviedbapi.wrapper; import com.fasterxml.jackson.annotation.JsonAnySetter; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.EnumSet; +import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class AbstractWrapper { +public abstract class AbstractWrapper { private Logger log; @@ -31,6 +35,22 @@ public class AbstractWrapper { this.log = LoggerFactory.getLogger(classToLog); } + /** + * Get a list of the enums passed + * + * @param + * @param clz Class of the enum + * @param typeList Array of the enums + * @return + */ + public > List getTypeList(Class clz, E[] typeList) { + if (typeList.length > 0) { + return new ArrayList(Arrays.asList(typeList)); + } else { + return new ArrayList(EnumSet.allOf(clz)); + } + } + /** * Handle unknown properties and print a message * diff --git a/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperImages.java b/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperImages.java index 55ca071cf..e2ada61b6 100644 --- a/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperImages.java +++ b/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperImages.java @@ -85,30 +85,36 @@ public class WrapperImages extends AbstractWrapperAll { types = new ArrayList(Arrays.asList(ArtworkType.values())); } + // Add all the posters to the list if (types.contains(ArtworkType.POSTER)) { - // Add all the posters to the list - for (Artwork poster : posters) { - poster.setArtworkType(ArtworkType.POSTER); - artwork.add(poster); - } + updateArtworkType(posters, ArtworkType.POSTER); + artwork.addAll(posters); } + // Add all the backdrops to the list if (types.contains(ArtworkType.BACKDROP)) { - // Add all the backdrops to the list - for (Artwork backdrop : backdrops) { - backdrop.setArtworkType(ArtworkType.BACKDROP); - artwork.add(backdrop); - } + updateArtworkType(backdrops, ArtworkType.BACKDROP); + artwork.addAll(backdrops); } + // Add all the backdrops to the list if (types.contains(ArtworkType.PROFILE)) { - // Add all the backdrops to the list - for (Artwork backdrop : profiles) { - backdrop.setArtworkType(ArtworkType.PROFILE); - artwork.add(backdrop); - } + updateArtworkType(profiles, ArtworkType.PROFILE); + artwork.addAll(profiles); } return artwork; } + + /** + * Update the artwork type for the artwork list + * + * @param artworkList + * @param type + */ + private void updateArtworkType(List artworkList, ArtworkType type) { + for (Artwork artwork : artworkList) { + artwork.setArtworkType(type); + } + } } diff --git a/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperMovieCasts.java b/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperMovieCasts.java index b4bd75255..16bee1a86 100644 --- a/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperMovieCasts.java +++ b/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperMovieCasts.java @@ -20,8 +20,10 @@ package com.omertron.themoviedbapi.wrapper; import com.fasterxml.jackson.annotation.JsonProperty; +import com.omertron.themoviedbapi.model.Person; import com.omertron.themoviedbapi.model.PersonCast; import com.omertron.themoviedbapi.model.PersonCrew; +import java.util.ArrayList; import java.util.List; /** @@ -54,4 +56,24 @@ public class WrapperMovieCasts extends AbstractWrapperId { public void setCrew(List crew) { this.crew = crew; } + + public List getAll() { + List people = new ArrayList(); + + // Add a cast member + for (PersonCast member : cast) { + Person person = new Person(); + person.addCast(member.getId(), member.getName(), member.getProfilePath(), member.getCharacter(), member.getOrder()); + people.add(person); + } + + // Add a crew member + for (PersonCrew member : crew) { + Person person = new Person(); + person.addCrew(member.getId(), member.getName(), member.getProfilePath(), member.getDepartment(), member.getJob()); + people.add(person); + } + + return people; + } } diff --git a/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperPersonCredits.java b/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperPersonCredits.java index 24e672c77..28428a459 100644 --- a/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperPersonCredits.java +++ b/src/main/java/com/omertron/themoviedbapi/wrapper/WrapperPersonCredits.java @@ -21,6 +21,10 @@ package com.omertron.themoviedbapi.wrapper; import com.fasterxml.jackson.annotation.JsonProperty; import com.omertron.themoviedbapi.model.PersonCredit; +import com.omertron.themoviedbapi.model.PersonType; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.EnumSet; import java.util.List; /** @@ -53,4 +57,27 @@ public class WrapperPersonCredits extends AbstractWrapperAll { public void setCrew(List crew) { this.crew = crew; } + + public List getAll(PersonType... typeList) { + List personCredits = new ArrayList(); + List types = getTypeList(PersonType.class, typeList); + + // Add a cast member + if (types.contains(PersonType.CAST)) { + for (PersonCredit member : cast) { + member.setPersonType(PersonType.CAST); + personCredits.add(member); + } + } + + // Add a crew member + if (types.contains(PersonType.CREW)) { + for (PersonCredit member : crew) { + member.setPersonType(PersonType.CREW); + personCredits.add(member); + } + } + + return personCredits; + } } diff --git a/src/test/java/com/omertron/themoviedbapi/TheMovieDbApiTest.java b/src/test/java/com/omertron/themoviedbapi/TheMovieDbApiTest.java index f539d60e3..3ae578278 100644 --- a/src/test/java/com/omertron/themoviedbapi/TheMovieDbApiTest.java +++ b/src/test/java/com/omertron/themoviedbapi/TheMovieDbApiTest.java @@ -42,9 +42,8 @@ import com.omertron.themoviedbapi.model.TokenAuthorisation; import com.omertron.themoviedbapi.model.TokenSession; import com.omertron.themoviedbapi.model.Trailer; import com.omertron.themoviedbapi.model.Translation; +import com.omertron.themoviedbapi.results.TmdbResultsList; import java.io.IOException; -import java.util.Collections; -import java.util.List; import org.apache.commons.lang3.StringUtils; import org.junit.*; import static org.junit.Assert.*; @@ -122,17 +121,17 @@ public class TheMovieDbApiTest { LOG.info("searchMovie"); // Try a movie with less than 1 page of results - List movieList = tmdb.searchMovie("Blade Runner", 0, "", true, 0); + TmdbResultsList movieList = tmdb.searchMovie("Blade Runner", 0, "", true, 0); // List movieList = tmdb.searchMovie("Blade Runner", "", true); - assertTrue("No movies found, should be at least 1", movieList.size() > 0); + assertTrue("No movies found, should be at least 1", movieList.getResults().size() > 0); // Try a russian langugage movie movieList = tmdb.searchMovie("О чём говорят мужчины", 0, LANGUAGE_RUSSIAN, true, 0); - assertTrue("No 'RU' movies found, should be at least 1", movieList.size() > 0); + assertTrue("No 'RU' movies found, should be at least 1", movieList.getResults().size() > 0); // Try a movie with more than 20 results movieList = tmdb.searchMovie("Star Wars", 0, LANGUAGE_ENGLISH, false, 0); - assertTrue("Not enough movies found, should be over 15, found " + movieList.size(), movieList.size() >= 15); + assertTrue("Not enough movies found, should be over 15, found " + movieList.getResults().size(), movieList.getResults().size() >= 15); } /** @@ -152,12 +151,12 @@ public class TheMovieDbApiTest { public void testGetMovieAlternativeTitles() throws MovieDbException { LOG.info("getMovieAlternativeTitles"); String country = ""; - List results = tmdb.getMovieAlternativeTitles(ID_MOVIE_BLADE_RUNNER, country, "casts,images,keywords,releases,trailers,translations,similar_movies,reviews,lists"); - assertTrue("No alternative titles found", results.size() > 0); + TmdbResultsList result = tmdb.getMovieAlternativeTitles(ID_MOVIE_BLADE_RUNNER, country, "casts,images,keywords,releases,trailers,translations,similar_movies,reviews,lists"); + assertTrue("No alternative titles found", result.getResults().size() > 0); country = "US"; - results = tmdb.getMovieAlternativeTitles(ID_MOVIE_BLADE_RUNNER, country); - assertTrue("No alternative titles found", results.size() > 0); + result = tmdb.getMovieAlternativeTitles(ID_MOVIE_BLADE_RUNNER, country); + assertTrue("No alternative titles found", result.getResults().size() > 0); } @@ -167,15 +166,15 @@ public class TheMovieDbApiTest { @Test public void testGetMovieCasts() throws MovieDbException { LOG.info("getMovieCasts"); - List people = tmdb.getMovieCasts(ID_MOVIE_BLADE_RUNNER, "alternative_titles,casts,images,keywords,releases,trailers,translations,similar_movies,reviews,lists"); - assertTrue("No cast information", people.size() > 0); + TmdbResultsList people = tmdb.getMovieCasts(ID_MOVIE_BLADE_RUNNER, "alternative_titles,casts,images,keywords,releases,trailers,translations,similar_movies,reviews,lists"); + assertTrue("No cast information", people.getResults().size() > 0); String name1 = "Harrison Ford"; String name2 = "Charles Knode"; boolean foundName1 = Boolean.FALSE; boolean foundName2 = Boolean.FALSE; - for (Person person : people) { + for (Person person : people.getResults()) { if (!foundName1 && person.getName().equalsIgnoreCase(name1)) { foundName1 = Boolean.TRUE; } @@ -195,8 +194,8 @@ public class TheMovieDbApiTest { public void testGetMovieImages() throws MovieDbException { LOG.info("getMovieImages"); String language = ""; - List result = tmdb.getMovieImages(ID_MOVIE_BLADE_RUNNER, language); - assertFalse("No artwork found", result.isEmpty()); + TmdbResultsList result = tmdb.getMovieImages(ID_MOVIE_BLADE_RUNNER, language); + assertFalse("No artwork found", result.getResults().isEmpty()); } /** @@ -205,8 +204,8 @@ public class TheMovieDbApiTest { @Test public void testGetMovieKeywords() throws MovieDbException { LOG.info("getMovieKeywords"); - List result = tmdb.getMovieKeywords(ID_MOVIE_BLADE_RUNNER); - assertFalse("No keywords found", result.isEmpty()); + TmdbResultsList result = tmdb.getMovieKeywords(ID_MOVIE_BLADE_RUNNER); + assertFalse("No keywords found", result.getResults().isEmpty()); } /** @@ -215,8 +214,8 @@ public class TheMovieDbApiTest { @Test public void testGetMovieReleaseInfo() throws MovieDbException { LOG.info("getMovieReleaseInfo"); - List result = tmdb.getMovieReleaseInfo(ID_MOVIE_BLADE_RUNNER, ""); - assertFalse("Release information missing", result.isEmpty()); + TmdbResultsList result = tmdb.getMovieReleaseInfo(ID_MOVIE_BLADE_RUNNER, ""); + assertFalse("Release information missing", result.getResults().isEmpty()); } /** @@ -225,8 +224,8 @@ public class TheMovieDbApiTest { @Test public void testGetMovieTrailers() throws MovieDbException { LOG.info("getMovieTrailers"); - List result = tmdb.getMovieTrailers(ID_MOVIE_BLADE_RUNNER, ""); - assertFalse("Movie trailers missing", result.isEmpty()); + TmdbResultsList result = tmdb.getMovieTrailers(ID_MOVIE_BLADE_RUNNER, ""); + assertFalse("Movie trailers missing", result.getResults().isEmpty()); } /** @@ -235,8 +234,8 @@ public class TheMovieDbApiTest { @Test public void testGetMovieTranslations() throws MovieDbException { LOG.info("getMovieTranslations"); - List result = tmdb.getMovieTranslations(ID_MOVIE_BLADE_RUNNER); - assertFalse("No translations found", result.isEmpty()); + TmdbResultsList result = tmdb.getMovieTranslations(ID_MOVIE_BLADE_RUNNER); + assertFalse("No translations found", result.getResults().isEmpty()); } /** @@ -305,8 +304,8 @@ public class TheMovieDbApiTest { LOG.info("searchPeople"); String personName = "Bruce Willis"; boolean includeAdult = false; - List result = tmdb.searchPeople(personName, includeAdult, 0); - assertTrue("Couldn't find the person", result.size() > 0); + TmdbResultsList result = tmdb.searchPeople(personName, includeAdult, 0); + assertTrue("Couldn't find the person", result.getResults().size() > 0); } /** @@ -326,8 +325,8 @@ public class TheMovieDbApiTest { public void testGetPersonCredits() throws MovieDbException { LOG.info("getPersonCredits"); - List people = tmdb.getPersonCredits(ID_PERSON_BRUCE_WILLIS); - assertTrue("No cast information", people.size() > 0); + TmdbResultsList result = tmdb.getPersonCredits(ID_PERSON_BRUCE_WILLIS); + assertTrue("No cast information", result.getResults().size() > 0); } /** @@ -337,8 +336,8 @@ public class TheMovieDbApiTest { public void testGetPersonImages() throws MovieDbException { LOG.info("getPersonImages"); - List artwork = tmdb.getPersonImages(ID_PERSON_BRUCE_WILLIS); - assertTrue("No cast information", artwork.size() > 0); + TmdbResultsList result = tmdb.getPersonImages(ID_PERSON_BRUCE_WILLIS); + assertTrue("No cast information", result.getResults().size() > 0); } /** @@ -382,8 +381,8 @@ public class TheMovieDbApiTest { @Test public void testGetNowPlayingMovies() throws MovieDbException { LOG.info("getNowPlayingMovies"); - List results = tmdb.getNowPlayingMovies(LANGUAGE_DEFAULT, 0); - assertTrue("No now playing movies found", !results.isEmpty()); + TmdbResultsList result = tmdb.getNowPlayingMovies(LANGUAGE_DEFAULT, 0); + assertTrue("No now playing movies found", !result.getResults().isEmpty()); } /** @@ -392,8 +391,8 @@ public class TheMovieDbApiTest { @Test public void testGetPopularMovieList() throws MovieDbException { LOG.info("getPopularMovieList"); - List results = tmdb.getPopularMovieList(LANGUAGE_DEFAULT, 0); - assertTrue("No popular movies found", !results.isEmpty()); + TmdbResultsList result = tmdb.getPopularMovieList(LANGUAGE_DEFAULT, 0); + assertTrue("No popular movies found", !result.getResults().isEmpty()); } /** @@ -402,8 +401,8 @@ public class TheMovieDbApiTest { @Test public void testGetTopRatedMovies() throws MovieDbException { LOG.info("getTopRatedMovies"); - List results = tmdb.getTopRatedMovies(LANGUAGE_DEFAULT, 0); - assertTrue("No top rated movies found", !results.isEmpty()); + TmdbResultsList result = tmdb.getTopRatedMovies(LANGUAGE_DEFAULT, 0); + assertTrue("No top rated movies found", !result.getResults().isEmpty()); } /** @@ -422,8 +421,8 @@ public class TheMovieDbApiTest { @Test public void testGetCompanyMovies() throws MovieDbException { LOG.info("getCompanyMovies"); - List results = tmdb.getCompanyMovies(ID_COMPANY_LUCASFILM, LANGUAGE_DEFAULT, 0); - assertTrue("No company movies found", !results.isEmpty()); + TmdbResultsList result = tmdb.getCompanyMovies(ID_COMPANY_LUCASFILM, LANGUAGE_DEFAULT, 0); + assertTrue("No company movies found", !result.getResults().isEmpty()); } /** @@ -432,8 +431,8 @@ public class TheMovieDbApiTest { @Test public void testSearchCompanies() throws MovieDbException { LOG.info("searchCompanies"); - List results = tmdb.searchCompanies(COMPANY_NAME, 0); - assertTrue("No company information found", !results.isEmpty()); + TmdbResultsList result = tmdb.searchCompanies(COMPANY_NAME, 0); + assertTrue("No company information found", !result.getResults().isEmpty()); } /** @@ -442,8 +441,8 @@ public class TheMovieDbApiTest { @Test public void testGetSimilarMovies() throws MovieDbException { LOG.info("getSimilarMovies"); - List results = tmdb.getSimilarMovies(ID_MOVIE_BLADE_RUNNER, LANGUAGE_DEFAULT, 0); - assertTrue("No similar movies found", !results.isEmpty()); + TmdbResultsList result = tmdb.getSimilarMovies(ID_MOVIE_BLADE_RUNNER, LANGUAGE_DEFAULT, 0); + assertTrue("No similar movies found", !result.getResults().isEmpty()); } /** @@ -452,8 +451,8 @@ public class TheMovieDbApiTest { @Test public void testGetGenreList() throws MovieDbException { LOG.info("getGenreList"); - List results = tmdb.getGenreList(LANGUAGE_DEFAULT); - assertTrue("No genres found", !results.isEmpty()); + TmdbResultsList result = tmdb.getGenreList(LANGUAGE_DEFAULT); + assertTrue("No genres found", !result.getResults().isEmpty()); } /** @@ -462,8 +461,8 @@ public class TheMovieDbApiTest { @Test public void testGetGenreMovies() throws MovieDbException { LOG.info("getGenreMovies"); - List results = tmdb.getGenreMovies(ID_GENRE_ACTION, LANGUAGE_DEFAULT, 0, Boolean.TRUE); - assertTrue("No genre movies found", !results.isEmpty()); + TmdbResultsList result = tmdb.getGenreMovies(ID_GENRE_ACTION, LANGUAGE_DEFAULT, 0, Boolean.TRUE); + assertTrue("No genre movies found", !result.getResults().isEmpty()); } /** @@ -472,8 +471,8 @@ public class TheMovieDbApiTest { @Test public void testGetUpcoming() throws Exception { LOG.info("getUpcoming"); - List results = tmdb.getUpcoming(LANGUAGE_DEFAULT, 0); - assertTrue("No upcoming movies found", !results.isEmpty()); + TmdbResultsList result = tmdb.getUpcoming(LANGUAGE_DEFAULT, 0); + assertTrue("No upcoming movies found", !result.getResults().isEmpty()); } /** @@ -482,8 +481,8 @@ public class TheMovieDbApiTest { @Test public void testGetCollectionImages() throws Exception { LOG.info("getCollectionImages"); - List result = tmdb.getCollectionImages(ID_COLLECTION_STAR_WARS, LANGUAGE_DEFAULT); - assertFalse("No artwork found", result.isEmpty()); + TmdbResultsList result = tmdb.getCollectionImages(ID_COLLECTION_STAR_WARS, LANGUAGE_DEFAULT); + assertFalse("No artwork found", result.getResults().isEmpty()); } /** @@ -530,9 +529,9 @@ public class TheMovieDbApiTest { @Test public void testGetMovieLists() throws Exception { LOG.info("getMovieLists"); - List results = tmdb.getMovieLists(ID_MOVIE_BLADE_RUNNER, LANGUAGE_ENGLISH, 0); - assertNotNull("No results found", results); - assertTrue("No results found", results.size() > 0); + TmdbResultsList result = tmdb.getMovieLists(ID_MOVIE_BLADE_RUNNER, LANGUAGE_ENGLISH, 0); + assertNotNull("No results found", result); + assertTrue("No results found", result.getResults().size() > 0); } /** @@ -545,17 +544,16 @@ public class TheMovieDbApiTest { String startDate = ""; String endDate = null; - List results = Collections.EMPTY_LIST; // Get some popular movies - List movieList = tmdb.getPopularMovieList(LANGUAGE_DEFAULT, 0); - for (MovieDb movie : movieList) { - results = tmdb.getMovieChanges(movie.getId(), startDate, endDate); - LOG.info("{} has {} changes.", new Object[]{movie.getTitle(), results.size()}); + TmdbResultsList movieList = tmdb.getPopularMovieList(LANGUAGE_DEFAULT, 0); + for (MovieDb movie : movieList.getResults()) { + TmdbResultsList result = tmdb.getMovieChanges(movie.getId(), startDate, endDate); + LOG.info("{} has {} changes.", new Object[]{movie.getTitle(), result.getResults().size()}); } - assertNotNull("No results found", results); - assertTrue("No results found", results.size() > 0); + assertNotNull("No results found", movieList.getResults()); + assertTrue("No results found", movieList.getResults().size() > 0); } @Test @@ -576,9 +574,9 @@ public class TheMovieDbApiTest { LOG.info("searchCollection"); String query = "batman"; int page = 0; - List result = tmdb.searchCollection(query, LANGUAGE_DEFAULT, page); + TmdbResultsList result = tmdb.searchCollection(query, LANGUAGE_DEFAULT, page); assertFalse("No collections found", result == null); - assertTrue("No collections found", result.size() > 0); + assertTrue("No collections found", result.getResults().size() > 0); } /** @@ -589,9 +587,9 @@ public class TheMovieDbApiTest { LOG.info("searchList"); String query = "watch"; int page = 0; - List result = tmdb.searchList(query, LANGUAGE_DEFAULT, page); - assertFalse("No lists found", result == null); - assertTrue("No lists found", result.size() > 0); + TmdbResultsList result = tmdb.searchList(query, LANGUAGE_DEFAULT, page); + assertFalse("No lists found", result.getResults() == null); + assertTrue("No lists found", result.getResults().size() > 0); } /** @@ -602,9 +600,9 @@ public class TheMovieDbApiTest { LOG.info("searchKeyword"); String query = "action"; int page = 0; - List result = tmdb.searchKeyword(query, page); - assertFalse("No keywords found", result == null); - assertTrue("No keywords found", result.size() > 0); + TmdbResultsList result = tmdb.searchKeyword(query, page); + assertFalse("No keywords found", result.getResults() == null); + assertTrue("No keywords found", result.getResults().size() > 0); } /** @@ -664,8 +662,8 @@ public class TheMovieDbApiTest { public void testGetKeywordMovies() throws Exception { LOG.info("getKeywordMovies"); int page = 0; - List result = tmdb.getKeywordMovies(ID_KEYWORD, LANGUAGE_DEFAULT, page); - assertFalse("No keyword movies found", result.isEmpty()); + TmdbResultsList result = tmdb.getKeywordMovies(ID_KEYWORD, LANGUAGE_DEFAULT, page); + assertFalse("No keyword movies found", result.getResults().isEmpty()); } /** @@ -675,9 +673,9 @@ public class TheMovieDbApiTest { public void testGetReviews() throws Exception { LOG.info("getReviews"); int page = 0; - List result = tmdb.getReviews(ID_MOVIE_THE_AVENGERS, LANGUAGE_DEFAULT, page); + TmdbResultsList result = tmdb.getReviews(ID_MOVIE_THE_AVENGERS, LANGUAGE_DEFAULT, page); - assertFalse("No reviews found", result.isEmpty()); + assertFalse("No reviews found", result.getResults().isEmpty()); } /** @@ -708,8 +706,8 @@ public class TheMovieDbApiTest { public void testGetPersonPopular_int() throws Exception { LOG.info("getPersonPopular"); int page = 0; - List result = tmdb.getPersonPopular(page); - assertFalse("No popular people", result.isEmpty()); + TmdbResultsList result = tmdb.getPersonPopular(page); + assertFalse("No popular people", result.getResults().isEmpty()); } /** @@ -760,8 +758,8 @@ public class TheMovieDbApiTest { @Test public void testGetJobs() throws Exception { LOG.info("getJobs"); - List result = tmdb.getJobs(); - assertFalse("No jobs found", result.isEmpty()); + TmdbResultsList result = tmdb.getJobs(); + assertFalse("No jobs found", result.getResults().isEmpty()); } /** @@ -780,7 +778,7 @@ public class TheMovieDbApiTest { Discover discover = new Discover(); discover.year(2013).language(LANGUAGE_ENGLISH); - List result = tmdb.getDiscover(discover); - assertFalse("No movies discovered", result.isEmpty()); + TmdbResultsList result = tmdb.getDiscover(discover); + assertFalse("No movies discovered", result.getResults().isEmpty()); } }