You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
178 lines
5.6 KiB
Java
178 lines
5.6 KiB
Java
/*
|
|
* Copyright (c) 2004-2012 YAMJ Members
|
|
* http://code.google.com/p/moviejukebox/people/list
|
|
*
|
|
* Web: http://code.google.com/p/moviejukebox/
|
|
*
|
|
* This software is licensed under a Creative Commons License
|
|
* See this page: http://code.google.com/p/moviejukebox/wiki/License
|
|
*
|
|
* For any reuse or distribution, you must make clear to others the
|
|
* license terms of this work.
|
|
*/
|
|
package com.moviejukebox.themoviedb.tools;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
|
|
import com.moviejukebox.themoviedb.model.Artwork;
|
|
|
|
public class ModelTools {
|
|
private List<Artwork> artwork = new ArrayList<Artwork>();
|
|
|
|
/**
|
|
* Add a piece of artwork to the artwork array
|
|
* @param artworkType must be one of Artwork.ARTWORK_TYPES
|
|
* @param artworkSize must be one of Artwork.ARTWORK_SIZES
|
|
* @param artworkUrl
|
|
* @param posterId
|
|
*/
|
|
public void addArtwork(String artworkType, String artworkSize, String artworkUrl, String artworkId) {
|
|
if (validateElement(Artwork.ARTWORK_TYPES, artworkType) && validateElement(Artwork.ARTWORK_SIZES, artworkSize)) {
|
|
Artwork newArtwork = new Artwork();
|
|
|
|
newArtwork.setType(artworkType);
|
|
newArtwork.setSize(artworkSize);
|
|
newArtwork.setUrl(artworkUrl);
|
|
newArtwork.setId(artworkId);
|
|
|
|
artwork.add(newArtwork);
|
|
Collections.sort(artwork);
|
|
}
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Add a piece of artwork to the artwork array
|
|
* @param newArtwork an Artwork object to add to the array
|
|
*/
|
|
public void addArtwork(Artwork newArtwork) {
|
|
if (validateElement(Artwork.ARTWORK_TYPES, newArtwork.getType()) && validateElement(Artwork.ARTWORK_SIZES, newArtwork.getSize())) {
|
|
artwork.add(newArtwork);
|
|
Collections.sort(artwork);
|
|
}
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Get the first artwork that matches the Type and Size
|
|
* @param artworkType
|
|
* @param artworkSize
|
|
* @return
|
|
*/
|
|
public Artwork getFirstArtwork(String artworkType, String artworkSize) {
|
|
return getArtwork(artworkType, artworkSize, 1);
|
|
}
|
|
|
|
/**
|
|
* Check to see if element is contained in elementArray
|
|
* @param elementArray
|
|
* @param element
|
|
* @return
|
|
*/
|
|
private boolean validateElement(String[] elementArray, String element) {
|
|
boolean valid = false;
|
|
|
|
for (String arrayEntry : elementArray) {
|
|
if (arrayEntry.equalsIgnoreCase(element)) {
|
|
valid = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return valid;
|
|
}
|
|
|
|
/**
|
|
* Return all the artwork for a movie
|
|
* @return
|
|
*/
|
|
public List<Artwork> getArtwork() {
|
|
return artwork;
|
|
}
|
|
|
|
/**
|
|
* Get all the artwork of a specific type
|
|
* @param artworkType
|
|
* @return
|
|
*/
|
|
public List<Artwork> getArtwork(String artworkType) {
|
|
// Validate the Type and Size arguments
|
|
if (!validateElement(Artwork.ARTWORK_TYPES, artworkType)) {
|
|
return null;
|
|
}
|
|
|
|
List<Artwork> artworkList = new ArrayList<Artwork>();
|
|
|
|
for (Artwork singleArtwork : artwork) {
|
|
if (singleArtwork.getType().equalsIgnoreCase(artworkType)) {
|
|
artworkList.add(singleArtwork);
|
|
}
|
|
}
|
|
|
|
return artworkList;
|
|
}
|
|
|
|
/**
|
|
* Get all artwork of a specific Type and Size
|
|
* @param artworkType
|
|
* @param artworkSize
|
|
* @return
|
|
*/
|
|
public List<Artwork> getArtwork(String artworkType, String artworkSize) {
|
|
List<Artwork> artworkList = new ArrayList<Artwork>();
|
|
// Validate the Type and Size arguments
|
|
if (!validateElement(Artwork.ARTWORK_TYPES, artworkType) && !validateElement(Artwork.ARTWORK_SIZES, artworkSize)) {
|
|
return null;
|
|
}
|
|
|
|
for (Artwork singleArtwork : artwork) {
|
|
if (singleArtwork.getType().equalsIgnoreCase(artworkType) && singleArtwork.getSize().equalsIgnoreCase(artworkSize)) {
|
|
artworkList.add(singleArtwork);
|
|
}
|
|
}
|
|
|
|
return artworkList;
|
|
}
|
|
|
|
/**
|
|
* Return a specific artwork entry for a Type & Size
|
|
* @param artworkType
|
|
* @param artworkSize
|
|
* @param artworkNumber
|
|
* @return
|
|
*/
|
|
public Artwork getArtwork(String artworkType, String artworkSize, int artworkNumber) {
|
|
// Validate the Type and Size arguments
|
|
if (!validateElement(Artwork.ARTWORK_TYPES, artworkType) && !validateElement(Artwork.ARTWORK_SIZES, artworkSize)) {
|
|
return null;
|
|
}
|
|
|
|
|
|
int validArtworkNumber = artworkNumber;
|
|
// Validate the number
|
|
if (validArtworkNumber <= 0) {
|
|
validArtworkNumber = 0;
|
|
} else {
|
|
// Artwork elements start at 0 (Zero)
|
|
validArtworkNumber -= 1;
|
|
}
|
|
|
|
List<Artwork> artworkList = getArtwork(artworkType, artworkSize);
|
|
|
|
int artworkCount = artworkList.size();
|
|
if (artworkCount < 1) {
|
|
return null;
|
|
}
|
|
|
|
// If the number requested is greater than the array size, loop around until it's within scope
|
|
while (validArtworkNumber > artworkCount) {
|
|
validArtworkNumber = validArtworkNumber - artworkCount;
|
|
}
|
|
|
|
return artworkList.get(validArtworkNumber);
|
|
}
|
|
|
|
}
|