com.rjuarez.webapp.tools.TheMovieDatabaseQueries.java Source code

Java tutorial

Introduction

Here is the source code for com.rjuarez.webapp.tools.TheMovieDatabaseQueries.java

Source

/*
 *      Copyright (c) 2004-2015 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.rjuarez.webapp.tools;

import java.util.EnumSet;

import org.apache.commons.lang3.StringUtils;

public enum TheMovieDatabaseQueries {

    API_KEY("api_key="), APPEND("append_to_response="), CERTIFICATION("certification="), CERTIFICATION_COUNTRY(
            "certification_country="), CERTIFICATION_LTE("certification.lte="), CONFIRM("confirm="), COUNTRY(
                    "country="), END_DATE("end_date="), EPISODE_NUMBER("episode_number="), EXTERNAL_SOURCE(
                            "external_source="), FAVORITE("favorite="), FIRST_AIR_DATE_GTE(
                                    "first_air_date.gte"), FIRST_AIR_DATE_LTE(
                                            "first_air_date.lte"), FIRST_AIR_DATE_YEAR(
                                                    "first_air_date_year="), GUEST_SESSION_ID(
                                                            "guest_session_id="), ID("id="), INCLUDE_ADULT(
                                                                    "include_adult="), INCLUDE_ALL_MOVIES(
                                                                            "include_all_movies="), INCLUDE_IMAGE_LANGUAGE(
                                                                                    "include_image_language="), INCLUDE_VIDEO(
                                                                                            "include_video="), LANGUAGE(
                                                                                                    "language="), MOVIE_ID(
                                                                                                            "movie_id="), MOVIE_WATCHLIST(
                                                                                                                    "movie_watchlist="), PAGE(
                                                                                                                            "page="), PASSWORD(
                                                                                                                                    "password="), PRIMARY_RELEASE_YEAR(
                                                                                                                                            "primary_release_year="), QUERY(
                                                                                                                                                    "query="), RELEASE_DATE_GTE(
                                                                                                                                                            "release_date.gte="), RELEASE_DATE_LTE(
                                                                                                                                                                    "release_date.lte="), SEARCH_TYPE(
                                                                                                                                                                            "search_type="), SEASON_NUMBER(
                                                                                                                                                                                    "season_number="), SESSION_ID(
                                                                                                                                                                                            "session_id="), SORT_BY(
                                                                                                                                                                                                    "sort_by="), SORT_ORDER(
                                                                                                                                                                                                            "sort_order="), START_DATE(
                                                                                                                                                                                                                    "start_date="), TIMEZONE(
                                                                                                                                                                                                                            "timezone="), TOKEN(
                                                                                                                                                                                                                                    "request_token="), USERNAME(
                                                                                                                                                                                                                                            "username="), VALUE(
                                                                                                                                                                                                                                                    "value="), VOTE_AVERAGE_GTE(
                                                                                                                                                                                                                                                            "vote_average.gte="), VOTE_AVERAGE_LTE(
                                                                                                                                                                                                                                                                    "vote_average.lte="), VOTE_COUNT_GTE(
                                                                                                                                                                                                                                                                            "vote_count.gte="), VOTE_COUNT_LTE(
                                                                                                                                                                                                                                                                                    "vote_count.lte="), WITH_CAST(
                                                                                                                                                                                                                                                                                            "with_cast="), WITH_COMPANIES(
                                                                                                                                                                                                                                                                                                    "with_companies="), WITH_CREW(
                                                                                                                                                                                                                                                                                                            "with_crew="), WITH_GENRES(
                                                                                                                                                                                                                                                                                                                    "with_genres="), WITH_KEYWORDS(
                                                                                                                                                                                                                                                                                                                            "with_keywords="), WITH_NETWORKS(
                                                                                                                                                                                                                                                                                                                                    "with_networks="), WITH_PEOPLE(
                                                                                                                                                                                                                                                                                                                                            "with_people="), YEAR(
                                                                                                                                                                                                                                                                                                                                                    "year=");

    private final String value;

    private TheMovieDatabaseQueries(final String value) {
        this.value = value;
    }

    public String getValue() {
        return this.value;
    }

    public static TheMovieDatabaseQueries fromString(final String value) {
        if (StringUtils.isNotBlank(value)) {
            for (final TheMovieDatabaseQueries param : EnumSet.allOf(TheMovieDatabaseQueries.class)) {
                if (value.equalsIgnoreCase(param.value)) {
                    return param;
                }
            }
        }

        // We've not found the type!
        throw new IllegalArgumentException("Value '" + value + "' not recognised");
    }

}