mirror of https://github.com/bvn13/imdb-spider.git
43 lines
1.7 KiB
Java
43 lines
1.7 KiB
Java
package ru.bvn13.imdbspider.spider.composer;
|
|
|
|
import ru.bvn13.imdbspider.exceptions.ImdbSpiderException;
|
|
import ru.bvn13.imdbspider.exceptions.composer.ComposerNotFoundException;
|
|
import ru.bvn13.imdbspider.imdb.AkaList;
|
|
import ru.bvn13.imdbspider.imdb.Movie;
|
|
import ru.bvn13.imdbspider.imdb.MovieDataType;
|
|
import ru.bvn13.imdbspider.imdb.TaglineList;
|
|
import ru.bvn13.imdbspider.spider.api.ApiFactory;
|
|
import ru.bvn13.imdbspider.spider.tasker.Task;
|
|
|
|
/**
|
|
* @author boyko_vn at 15.01.2019
|
|
*/
|
|
public class MovieComposer extends AbstractImdbObjectComposer implements ImdbObjectComposer<Movie> {
|
|
|
|
private TaglineListComposer taglineListComposer;
|
|
private AkaListComposer akaListComposer;
|
|
|
|
public MovieComposer(ApiFactory apiFactory, ImdbObjectComposerFactory imdbObjectComposerFactory) throws ComposerNotFoundException {
|
|
super(apiFactory, imdbObjectComposerFactory);
|
|
|
|
taglineListComposer = (TaglineListComposer) this.imdbObjectComposerFactory.getComposer(TaglineList.class);
|
|
akaListComposer = (AkaListComposer) this.imdbObjectComposerFactory.getComposer(AkaList.class);
|
|
}
|
|
|
|
@Override
|
|
public Movie compose(Task task) throws ImdbSpiderException {
|
|
Movie movie = new Movie();
|
|
apiFactory.fillUpImdbObject(movie, task);
|
|
for (Task nestedTask : task.getNestedTasks()) {
|
|
apiFactory.fillUpImdbObject(movie, nestedTask);
|
|
if (nestedTask.getDataType().equals(MovieDataType.TAGLINES)) {
|
|
movie.setTaglineList(taglineListComposer.compose(nestedTask));
|
|
}
|
|
if (nestedTask.getDataType().equals(MovieDataType.AKAS)) {
|
|
movie.setAkaList(akaListComposer.compose(nestedTask));
|
|
}
|
|
}
|
|
return movie;
|
|
}
|
|
}
|