MOVIE
package Com.Vn.screenmatch.models;
import Com.Vn.screenmatch.calculate.Reteable;
public class Movie extends Title implements Reteable {
private String director;
public String getDiretor() {
return getDiretor();
}
public void setDiretor(String diretor) {
this.director = diretor;
}
@Override
public int getReteable() {
return 0;
}
@Override
public int getRating() {
return 0;
}
}
SERIES
package Com.Vn.screenmatch.models;
import Com.Vn.screenmatch.calculate.Reteable;
public class Series extends Title implements Reteable {
private int seasons;
private int episodesPerSeason;
private boolean active;
private int minutesPerEpisodes;
public int getSeasons() {
return seasons;
}
public void setSeasons(int seasons) {
this.seasons = seasons;
}
public int getEpisodesPerSeason() {
return episodesPerSeason;
}
public void setEpisodesPerSeason(int episodesPerSeason) {
this.episodesPerSeason = episodesPerSeason;
}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
public int getMinutesPerEpisodes() {
return minutesPerEpisodes;
}
public void setMinutesPerEpisodes(int minutesPerEpisodes) {
this.minutesPerEpisodes = minutesPerEpisodes;
}
@Override
public int getMinutesDuration(){
return seasons * episodesPerSeason * minutesPerEpisodes;
}
@Override
public int getRating() {
return 0;
}
@Override
public int getReteable() {
return 0;
}
}
EPISODE
package Com.Vn.screenmatch.models;
import Com.Vn.screenmatch.calculate.Reteable;
public class Episode implements Reteable {
private int number;
private Series series;
private int totalViews;
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public Series getSeries() {
return series;
}
public void setSeries(Series series) {
this.series = series;
}
public int getTotalViews() {
return totalViews;
}
public void setTotalViews(int totalViews) {
this.totalViews = totalViews;
}
@Override
public int getReteable() {
if (totalViews > 100) {
return 4; // Retorna 4 se tiver mais de 100 visualizações
} else {
return 2; // Retorna 2 se tiver 100 ou menos
}
}
@Override
public int getRating() {
return 0;
}
}
INTERFACE RETEABLE
package Com.Vn.screenmatch.calculate;
public interface Reteable {
int getReteable();
int getRating();
}
MAIN
import Com.Vn.screenmatch.calculate.Suggestion;
import Com.Vn.screenmatch.calculate.TimeCalculator;
import Com.Vn.screenmatch.models.Episode;
import Com.Vn.screenmatch.models.Movie;
import Com.Vn.screenmatch.models.Series;
public class Main {
public static void main(String[] args) {
Movie mymovie = new Movie();
mymovie.setName("The Amazing Spider-Man");
mymovie.setReleaseDate("2012");
mymovie.setMinutesDuration(136);
mymovie.setMovieGenre("Action, Adventure, Fantasy");
mymovie.setIncludePlan(true);
mymovie.movieDescription();
{
mymovie.evaluate(10);
mymovie.evaluate(8.3);
mymovie.evaluate(9.7);
mymovie.evaluate(8.1);
System.out.println("Sum of ratings: " + mymovie.getSumOfRatings());
}
System.out.println("Number of ratings: " + mymovie.getRatingCount());
System.out.println("Final rating: " + mymovie.getAvarage());
Series series = new Series();
series.setName("Smallvile");
series.setReleaseDate("2001 - 2011");
series.setMovieGenre("Action, adventure, teen drama, science fiction");
series.setSeasons(10);
series.setEpisodesPerSeason(22);
series.setMinutesPerEpisodes(44);
Movie othermovie = new Movie();
othermovie.setName("Tropa de elite");
othermovie.setReleaseDate("2007");
othermovie.setMinutesDuration(118);
othermovie.setMovieGenre("Action, Crime, Drama");
TimeCalculator calculator = new TimeCalculator();
calculator.included(mymovie);
calculator.included(othermovie);
calculator.included(series);
System.out.println(calculator.getTotalDuration());
Suggestion suggestion = new Suggestion();
Episode episode = new Episode();
episode.setNumber(1);
episode.setSeries(series);
episode.setTotalViews(300);
suggestion.filter(episode);
}
}