package com.moviejukebox.themoviedb; import java.util.List; import java.util.Map; import com.moviejukebox.themoviedb.model.*; /** * Class description goes here * * @author $Author:$ * @version $Revision:$ */ public interface IMovieService { /** * Search Movies This is a good starting point to start finding movies on TMDb. * * The idea is to be a quick and light method so you can iterate through movies quickly. * * http://help.themoviedb.org/kb/api/search-movies * * TODO: Make the allResults work * * @param movieName * @param language * @param allResults * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<MovieDb> searchMovie(String movieName, String language, boolean allResults) throws MovieDbException; /** * This method is used to retrieve all of the basic movie information. * * It will return the single highest rated poster and backdrop. * * @param movieId * @param language * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ MovieDb getMovieInfo(long movieId, String language) throws MovieDbException; /** * This method is used to retrieve all of the alternative titles we have for a particular movie. * * @param movieId * @param country * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<AlternativeTitle> getMovieAlternativeTitles(long movieId, String country) throws MovieDbException; /** * This method is used to retrieve all of the movie cast information. * * TODO: Add a function to enrich the data with the people methods * * @param movieId * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<Person> getMovieCasts(long movieId) throws MovieDbException; /** * This method should be used when you’re wanting to retrieve all of the images for a particular movie. * * @param movieId * @param language * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<Artwork> getMovieImages(long movieId, String language) throws MovieDbException; /** * This method is used to retrieve all of the keywords that have been added to a particular movie. * * Currently, only English keywords exist. * * @param movieId * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<Keyword> getMovieKeywords(long movieId) throws MovieDbException; /** * This method is used to retrieve all of the release and certification data we have for a specific movie. * * @param movieId * @param language * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<ReleaseInfo> getMovieReleaseInfo(long movieId, String language) throws MovieDbException; /** * This method is used to retrieve all of the trailers for a particular movie. * * Supported sites are YouTube and QuickTime. * * @param movieId * @param language * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<Trailer> getMovieTrailers(long movieId, String language) throws MovieDbException; /** * This method is used to retrieve a list of the available translations for a specific movie. * * @param movieId * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<Translation> getMovieTranslations(long movieId) throws MovieDbException; /** * This method is used to retrieve all of the basic information about a movie collection. * * You can get the ID needed for this method by making a getMovieInfo request for the belongs_to_collection. * * @param movieId * @param language * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ CollectionInfo getCollectionInfo(long movieId, String language) throws MovieDbException; /** * Get the configuration information * * @return */ TmdbConfiguration getConfiguration(); /** * This is a good starting point to start finding people on TMDb. * * The idea is to be a quick and light method so you can iterate through people quickly. * * TODO: Fix allResults * * @param personName * @param allResults * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<Person> searchPeople(String personName, boolean allResults) throws MovieDbException; /** * This method is used to retrieve all of the basic person information. * * It will return the single highest rated profile image. * * @param personId * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ Person getPersonInfo(int personId) throws MovieDbException; /** * This method is used to retrieve all of the cast & crew information for the person. * * It will return the single highest rated poster for each movie record. * * @param personId * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<PersonCredit> getPersonCredits(int personId) throws MovieDbException; /** * This method is used to retrieve all of the profile images for a person. * * @param personId * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<Artwork> getPersonImages(int personId) throws MovieDbException; /** * This method is used to retrieve the newest movie that was added to TMDb. * * @return */ MovieDb getLatestMovie() throws MovieDbException; /** * This method is used to retrieve the movies currently in theatres. * * This is a curated list that will normally contain 100 movies. The default response will return 20 movies. * * TODO: Implement more than 20 movies * * @param language * @param allResults * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<MovieDb> getNowPlayingMovies(String language, boolean allResults) throws MovieDbException; /** * This method is used to retrieve the daily movie popularity list. * * This list is updated daily. The default response will return 20 movies. * * TODO: Implement more than 20 movies * * @param language * @param allResults * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<MovieDb> getPopularMovieList(String language, boolean allResults) throws MovieDbException; /** * This method is used to retrieve the top rated movies that have over 10 votes on TMDb. * * The default response will return 20 movies. * * TODO: Implement more than 20 movies * * @param language * @param allResults * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<MovieDb> getTopRatedMovies(String language, boolean allResults) throws MovieDbException; /** * This method is used to retrieve the basic information about a production company on TMDb. * * @param companyId * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ Company getCompanyInfo(int companyId) throws MovieDbException; /** * This method is used to retrieve the movies associated with a company. * * These movies are returned in order of most recently released to oldest. The default response will return 20 * movies per page. * * TODO: Implement more than 20 movies * * @param companyId * @param language * @param allResults * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<MovieDb> getCompanyMovies(int companyId, String language, boolean allResults) throws MovieDbException; /** * Search Companies. * * You can use this method to search for production companies that are part of TMDb. The company IDs will map to * those returned on movie calls. * * http://help.themoviedb.org/kb/api/search-companies * * TODO: Make the allResults work * * @param companyName * @param language * @param allResults * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<Company> searchCompanies(String companyName, String language, boolean allResults) throws MovieDbException; /** * The similar movies method will let you retrieve the similar movies for a particular movie. * * This data is created dynamically but with the help of users votes on TMDb. * * The data is much better with movies that have more keywords * * @param movieId * @param language * @param allResults * @return * @throws com.moviejukebox.themoviedb.MovieDbException */ List<MovieDb> getSimilarMovies(int movieId, String language, boolean allResults) throws MovieDbException; /** * You can use this method to retrieve the list of genres used on TMDb. * * These IDs will correspond to those found in movie calls. * * @param language * @return */ List<Genre> getGenreList(String language) throws MovieDbException; /** * Get a list of movies per genre. * * It is important to understand that only movies with more than 10 votes get listed. * * This prevents movies from 1 10/10 rating from being listed first and for the first 5 pages. * * @param genreId * @param language * @param allResults * @return */ List<MovieDb> getGenreMovies(int genreId, String language, boolean allResults) throws MovieDbException; Map<String, Map<String, Class>> getNodeTypeAttributeMap(); List<Class> getNodeTypeClass(); }