This repository acts as a personal archive for my solutions to EdX course *Data Structures and Software Design* from PennX.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

43 lines
1.2 KiB

/*
* SD2x Homework #8
* This class represents the Logic Tier in the three-tier architecture.
* Implement the appropriate methods for this tier below.
*/
import java.util.List;
import java.util.LinkedList;
import java.util.Set;
public class LogicTier {
private DataTier dataTier; // link to the Data Tier
public LogicTier(DataTier dataTier) {
this.dataTier = dataTier;
}
private boolean includes(String author, String search){
for(int i=0; i <= author.length() - search.length(); i++){
if(author.substring(i, i + search.length()).equals(search)) return true;
}
return false;
}
public List<String> findBookTitlesByAuthor(String author){
Set<Book> books = dataTier.getAllBooks();
List<String> matchingTitles = new LinkedList<String>();
for(Book b : books){
if(includes(b.getAuthor(), author)) matchingTitles.add(b.getTitle());
}
return matchingTitles;
}
public long findNumberOfBooksInYear(int year){
int bookNum = 0;
Set<Book> books = dataTier.getAllBooks();
for(Book b : books){
if(b.getPublicationYear() == year) bookNum += 1;
}
return bookNum;
}
}