Skip to content

Commit

Permalink
Merge pull request #3 from ProsperousRF/Week4
Browse files Browse the repository at this point in the history
Week4
  • Loading branch information
Stanislav Rakitov committed Jul 12, 2021
2 parents 92e3fab + d2b2efa commit f560756
Show file tree
Hide file tree
Showing 21 changed files with 1,265 additions and 0 deletions.
1 change: 1 addition & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

33 changes: 33 additions & 0 deletions Week4/Week4.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library" exported="">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../../apache-csv.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MODULE_DIR$/../../apache-csv.jar!/" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module-library" exported="">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../../courserajava.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MODULE_DIR$/../../courserajava.jar!/" />
</SOURCES>
</library>
</orderEntry>
</component>
</module>
24 changes: 24 additions & 0 deletions Week4/src/AllFilters.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import java.util.ArrayList;

public class AllFilters implements Filter {
ArrayList<Filter> filters;

public AllFilters() {
filters = new ArrayList<>();
}

public void addFilter(Filter f) {
filters.add(f);
}

@Override
public boolean satisfies(String id) {
for (Filter f : filters) {
if (!f.satisfies(id)) {
return false;
}
}

return true;
}
}
25 changes: 25 additions & 0 deletions Week4/src/DirectorsFilter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/**
* A class for filter movies by directors
*
* @author Stanislav Rakitov
* @version 1.0
*/
public class DirectorsFilter implements Filter {
String directors;

public DirectorsFilter(String directors) {
this.directors = directors;
}

@Override
public boolean satisfies(String id) {
String movieDirectors = MovieDatabase.getDirector(id);
String[] filterDirectors = directors.split(",");
for (String direcor : filterDirectors) {
if (movieDirectors.contains(direcor)) {
return true;
}
}
return false;
}
}
51 changes: 51 additions & 0 deletions Week4/src/EfficientRater.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import java.util.ArrayList;
import java.util.HashMap;

/**
* The class EfficientRater keeps track of one rater and all their ratings.
*
* @author Stanislav Rakitov
* @version 1.0
*/
public class EfficientRater implements Rater {
private final String myID;
private final HashMap<String, Rating> myRatings;

public EfficientRater(String id) {
myID = id;
myRatings = new HashMap<>();
}

public void addRating(String movieID, double rating) {
myRatings.put(movieID, new Rating(movieID, rating));
}

public boolean hasRating(String movieID) {
return myRatings.containsKey(movieID);
}

public String getID() {
return myID;
}

public double getRating(String movieID) {
Rating rating = myRatings.get(movieID);
if (rating != null) {
return rating.getValue();
} else {
return -1;
}
}

public int numRatings() {
return myRatings.size();
}

public ArrayList<String> getItemsRated() {
return new ArrayList<>(myRatings.keySet());
}

public HashMap<String, Rating> getMyRatings() {
return myRatings;
}
}
3 changes: 3 additions & 0 deletions Week4/src/Filter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
public interface Filter {
boolean satisfies(String id);
}
Loading

0 comments on commit f560756

Please sign in to comment.