Skip to content

Commit 7e3a8b2

Browse files
committed
Week3. Additional Starter Files for Assignment 2
1 parent db13a15 commit 7e3a8b2

File tree

6 files changed

+135
-1
lines changed

6 files changed

+135
-1
lines changed

Week3/src/AllFilters.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import java.util.ArrayList;
2+
3+
public class AllFilters implements Filter {
4+
ArrayList<Filter> filters;
5+
6+
public AllFilters() {
7+
filters = new ArrayList<>();
8+
}
9+
10+
public void addFilter(Filter f) {
11+
filters.add(f);
12+
}
13+
14+
@Override
15+
public boolean satisfies(String id) {
16+
for (Filter f : filters) {
17+
if (!f.satisfies(id)) {
18+
return false;
19+
}
20+
}
21+
22+
return true;
23+
}
24+
}

Week3/src/Filter.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
public interface Filter {
2+
boolean satisfies(String id);
3+
}

Week3/src/FirstRatings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ private HashMap<String, HashSet<String>> getDirectorsAndMovies() {
105105
}
106106

107107
// Process every record from the CSV file.
108-
private ArrayList<Movie> loadMovies(String filename) {
108+
ArrayList<Movie> loadMovies(String filename) {
109109

110110
// Create empty list of Movie's
111111
ArrayList<Movie> moviesList = new ArrayList<>();

Week3/src/MovieDatabase.java

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
import java.util.ArrayList;
2+
import java.util.HashMap;
3+
4+
public class MovieDatabase {
5+
private static HashMap<String, Movie> ourMovies;
6+
7+
public static void initialize(String moviefile) {
8+
if (ourMovies == null) {
9+
ourMovies = new HashMap<>();
10+
loadMovies("data/" + moviefile);
11+
}
12+
}
13+
14+
private static void initialize() {
15+
if (ourMovies == null) {
16+
ourMovies = new HashMap<>();
17+
loadMovies("data/ratedmoviesfull.csv");
18+
}
19+
}
20+
21+
private static void loadMovies(String filename) {
22+
FirstRatings fr = new FirstRatings();
23+
ArrayList<Movie> list = fr.loadMovies(filename);
24+
for (Movie m : list) {
25+
ourMovies.put(m.getID(), m);
26+
}
27+
}
28+
29+
public static boolean containsID(String id) {
30+
initialize();
31+
return ourMovies.containsKey(id);
32+
}
33+
34+
public static int getYear(String id) {
35+
initialize();
36+
return ourMovies.get(id).getYear();
37+
}
38+
39+
public static String getGenres(String id) {
40+
initialize();
41+
return ourMovies.get(id).getGenres();
42+
}
43+
44+
public static String getTitle(String id) {
45+
initialize();
46+
return ourMovies.get(id).getTitle();
47+
}
48+
49+
public static Movie getMovie(String id) {
50+
initialize();
51+
return ourMovies.get(id);
52+
}
53+
54+
public static String getPoster(String id) {
55+
initialize();
56+
return ourMovies.get(id).getPoster();
57+
}
58+
59+
public static int getMinutes(String id) {
60+
initialize();
61+
return ourMovies.get(id).getMinutes();
62+
}
63+
64+
public static String getCountry(String id) {
65+
initialize();
66+
return ourMovies.get(id).getCountry();
67+
}
68+
69+
public static String getDirector(String id) {
70+
initialize();
71+
return ourMovies.get(id).getDirector();
72+
}
73+
74+
public static int size() {
75+
return ourMovies.size();
76+
}
77+
78+
public static ArrayList<String> filterBy(Filter f) {
79+
initialize();
80+
ArrayList<String> list = new ArrayList<>();
81+
for (String id : ourMovies.keySet()) {
82+
if (f.satisfies(id)) {
83+
list.add(id);
84+
}
85+
}
86+
87+
return list;
88+
}
89+
}

Week3/src/TrueFilter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
public class TrueFilter implements Filter {
2+
@Override
3+
public boolean satisfies(String id) {
4+
return true;
5+
}
6+
}

Week3/src/YearAfterFilter.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
public class YearAfterFilter implements Filter {
2+
private final int myYear;
3+
4+
public YearAfterFilter(int year) {
5+
myYear = year;
6+
}
7+
8+
@Override
9+
public boolean satisfies(String id) {
10+
return MovieDatabase.getYear(id) >= myYear;
11+
}
12+
}

0 commit comments

Comments
 (0)