Fixed People Combined Search

This commit is contained in:
Stuart Boston
2015-03-03 11:38:37 +00:00
parent e9945654c9
commit dada02db89
4 changed files with 34 additions and 9 deletions
@@ -24,6 +24,7 @@ import com.omertron.themoviedbapi.MovieDbException;
import com.omertron.themoviedbapi.enumeration.ArtworkType;
import com.omertron.themoviedbapi.model2.artwork.Artwork;
import com.omertron.themoviedbapi.model2.artwork.ArtworkMedia;
import com.omertron.themoviedbapi.model2.person.CreditBasic;
import com.omertron.themoviedbapi.model2.person.CreditMovieBasic;
import com.omertron.themoviedbapi.model2.person.CreditTVBasic;
import com.omertron.themoviedbapi.model2.person.ExternalID;
@@ -167,7 +168,7 @@ public class TmdbPeople extends AbstractMethod {
String webpage = httpTools.getRequest(url);
try {
return MAPPER.readValue(webpage, new TypeReference<PersonCredits<CreditTVBasic>>() {
return MAPPER.readValue(webpage, new TypeReference<PersonCredits<? extends CreditBasic>>() {
});
} catch (IOException ex) {
throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, "Failed to get person movie credits", url, ex);
@@ -41,7 +41,6 @@ import com.omertron.themoviedbapi.wrapper.WrapperGenericList;
import com.omertron.themoviedbapi.wrapper.WrapperMultiSearch;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import org.yamj.api.common.exception.ApiExceptionType;
/**
@@ -215,7 +214,6 @@ public class TmdbSearch extends AbstractMethod {
try {
WrapperMultiSearch wrapper = MAPPER.readValue(webpage, WrapperMultiSearch.class);
TmdbResultsList<MediaBasic> results = new TmdbResultsList<MediaBasic>(null);
List<? extends MediaBasic> x = wrapper.getResults();
results.getResults().addAll(wrapper.getResults());
results.copyWrapper(wrapper);
return results;
@@ -20,11 +20,16 @@
package com.omertron.themoviedbapi.model2.person;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.omertron.themoviedbapi.model2.AbstractJsonMapping;
import com.omertron.themoviedbapi.model2.MediaBasic;
import java.util.List;
/**
* @author stuart.boston
* @param <T>
*/
public class PersonCredits<T> extends AbstractJsonMapping {
@@ -32,9 +37,9 @@ public class PersonCredits<T> extends AbstractJsonMapping {
@JsonProperty("id")
private int id;
@JsonProperty("cast")
// @JsonProperty("cast")
private List<T> cast;
@JsonProperty("crew")
// @JsonProperty("crew")
private List<T> crew;
public int getId() {
@@ -49,6 +54,17 @@ public class PersonCredits<T> extends AbstractJsonMapping {
return cast;
}
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "media_type",
defaultImpl = MediaBasic.class
)
@JsonSubTypes({
@JsonSubTypes.Type(value = CreditMovieBasic.class, name = "movie"),
@JsonSubTypes.Type(value = CreditTVBasic.class, name = "tv")
})
@JsonSetter("cast")
public void setCast(List<T> cast) {
this.cast = cast;
}
@@ -57,6 +73,17 @@ public class PersonCredits<T> extends AbstractJsonMapping {
return crew;
}
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "media_type",
defaultImpl = MediaBasic.class
)
@JsonSubTypes({
@JsonSubTypes.Type(value = CreditMovieBasic.class, name = "movie"),
@JsonSubTypes.Type(value = CreditTVBasic.class, name = "tv")
})
@JsonSetter("crew")
public void setCrew(List<T> crew) {
this.crew = crew;
}