/*
* Copyright (c) 2004-2016 Stuart Boston
*
* This file is part of the FanartTV API.
*
* The FanartTV 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.
*
* The FanartTV 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 the FanartTV API. If not, see <http://www.gnu.org/licenses/>.
*
*/
package com.omertron.fanarttvapi.model;
import com.fasterxml.jackson.annotation.JsonSetter;
import com.omertron.fanarttvapi.enumeration.FTArtworkType;
import java.io.Serializable;
import java.util.Collections;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
/**
* Abstract class to implement the common artwork methods
*
* @author Stuart.Boston
*/
public class ArtworkList extends AbstractJsonMapping implements IArtworkList, Serializable {
private static final long serialVersionUID = 1L;
private final Map<FTArtworkType, List<FTArtwork>> artwork = new EnumMap<FTArtworkType, List<FTArtwork>>(FTArtworkType.class);
/**
* Add artwork to the list
*
* @param artworkType
* @param artworkList
*/
public void addArtwork(FTArtworkType artworkType, List<FTArtwork> artworkList) {
artwork.put(artworkType, artworkList);
}
/**
* Get a map of the artwork types keyed by the artwork type
*
* @return
*/
@Override
public Map<FTArtworkType, List<FTArtwork>> getArtwork() {
return artwork;
}
/**
* Get a specific type of artwork
*
* @param artworkType
* @return
*/
@Override
public List<FTArtwork> getArtwork(FTArtworkType artworkType) {
if (artwork.containsKey(artworkType)) {
return artwork.get(artworkType);
}
return Collections.emptyList();
}
/**
* Determines if there is any artwork associated with the series
*
* @return
*/
@Override
public boolean hasArtwork() {
for (FTArtworkType at : FTArtworkType.values()) {
// We're not countin the artwork, we're seeing if any exists, so quit when we find something
if (hasArtwork(at) && !artwork.isEmpty()) {
return true;
}
}
return false;
}
/**
* Determines if the series has a specific type of artwork
*
* @param artworkType
* @return
*/
@Override
public boolean hasArtwork(FTArtworkType artworkType) {
return artwork.containsKey(artworkType) && !artwork.get(artworkType).isEmpty();
}
/**
* Set the Artist Background artwork
*
* @param ftArtwork
*/
@JsonSetter("artistbackground")
public void setArtistBackground(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.ARTISTBACKGROUND, ftArtwork);
}
/**
* Set the Album Cover artwork
*
* @param ftArtwork
*/
@JsonSetter("albumcover")
public void setAlbumCover(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.ALBUMCOVER, ftArtwork);
}
/**
* Set the Music Logo artwork list
*
* @param ftArtwork
*/
@JsonSetter("musiclogo")
public void setMusiclogo(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.MUSICLOGO, ftArtwork);
}
/**
* Set the HD Music Logo artwork list
*
* @param ftArtwork
*/
@JsonSetter("hdmusiclogo")
public void setHdMusicLogo(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.HDMUSICLOGO, ftArtwork);
}
/**
* Set the CD Art artwork list
*
* @param ftArtwork
*/
@JsonSetter("cdart")
public void setCdArt(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.CDART, ftArtwork);
}
/**
* Set the Artist Thumb artwork list
*
* @param ftArtwork
*/
@JsonSetter("artistthumb")
public void setArtistThumb(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.ARTISTTHUMB, ftArtwork);
}
/**
* Set the Music Banner artwork list
*
* @param ftArtwork
*/
@JsonSetter("musicbanner")
public void setMusicBanner(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.MUSICBANNER, ftArtwork);
}
/**
* Set the ClearArt artwork list
*
* @param ftArtwork
*/
@JsonSetter("clearart")
public void setClearArt(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.CLEARART, ftArtwork);
}
/**
* Set the ClearLogo artwork list
*
* @param ftArtwork
*/
@JsonSetter("clearlogo")
public void setClearLogo(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.CLEARLOGO, ftArtwork);
}
/**
* Set the SeasonThumb artwork list
*
* @param ftArtwork
*/
@JsonSetter("seasonthumb")
public void setSeasonThumb(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.SEASONTHUMB, ftArtwork);
}
/**
* Set the TvThumb artwork list
*
* @param ftArtwork
*/
@JsonSetter("tvthumb")
public void setTvThumb(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.TVTHUMB, ftArtwork);
}
/**
* Set the CharacterArt artwork list
*
* @param ftArtwork
*/
@JsonSetter("characterart")
public void setCharacterArt(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.CHARACTERART, ftArtwork);
}
/**
* Set the ShowBackground artwork list
*
* @param ftArtwork
*/
@JsonSetter("showbackground")
public void setShowBackground(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.SHOWBACKGROUND, ftArtwork);
}
/**
* Set the HDClearArt artwork list
*
* @param ftArtwork
*/
@JsonSetter("hdclearart")
public void setHdClearArt(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.HDCLEARART, ftArtwork);
}
/**
* Set the HD TV Logo artwork list
*
* @param ftArtwork
*/
@JsonSetter("hdtvlogo")
public void setHdTvLogo(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.HDTVLOGO, ftArtwork);
}
/**
* Set the TV Banner artwork list
*
* @param ftArtwork
*/
@JsonSetter("tvbanner")
public void setTvBanner(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.TVBANNER, ftArtwork);
}
/**
* Set the TV Poster artwork list
*
* @param ftArtwork
*/
@JsonSetter("tvposter")
public void setTvPoster(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.TVPOSTER, ftArtwork);
}
/**
* Set the TV Season poster artwork list
*
* @param ftArtwork
*/
@JsonSetter("seasonposter")
public void setSeasonPoster(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.SEASONPOSTER, ftArtwork);
}
/**
* Set the TV Season banner artwork list
*
* @param ftArtwork
*/
@JsonSetter("seasonbanner")
public void setSeasonBanner(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.SEASONBANNER, ftArtwork);
}
/**
* Set the HD Movie Logo artwork
*
* @param ftArtwork
*/
@JsonSetter("hdmovielogo")
public void setHdMovieLogo(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.HDMOVIELOGO, ftArtwork);
}
/**
* Set the HD Movie Clear Art artwork
*
* @param ftArtwork
*/
@JsonSetter("hdmovieclearart")
public void setHdMovieClearArt(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.HDMOVIECLEARART, ftArtwork);
}
/**
* Set the Movie Logo artwork
*
* @param ftArtwork
*/
@JsonSetter("movielogo")
public void setMovieLogo(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.MOVIELOGO, ftArtwork);
}
/**
* Set the Movie Disc artwork
*
* @param ftArtwork
*/
@JsonSetter("moviedisc")
public void setMovieDisc(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.MOVIEDISC, ftArtwork);
}
/**
* Set the Movie Banner artwork
*
* @param ftArtwork
*/
@JsonSetter("moviebanner")
public void setMovieBanner(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.MOVIEBANNER, ftArtwork);
}
/**
* Set the Movie Thumb artwork
*
* @param ftArtwork
*/
@JsonSetter("moviethumb")
public void setMovieThumb(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.MOVIETHUMB, ftArtwork);
}
/**
* Set the Movie Background artwork
*
* @param ftArtwork
*/
@JsonSetter("moviebackground")
public void setMovieBackground(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.MOVIEBACKGROUND, ftArtwork);
}
/**
* Set the Movie Poster artwork
*
* @param ftArtwork
*/
@JsonSetter("movieposter")
public void setMoviePoster(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.MOVIEPOSTER, ftArtwork);
}
/**
* Set the Movie Art artwork
*
* @param ftArtwork
*/
@JsonSetter("movieart")
public void setMovieArt(List<FTArtwork> ftArtwork) {
addArtwork(FTArtworkType.MOVIEART, ftArtwork);
}
}