diff --git a/src/main/java/org/ntlab/citrusserver/repositories/PublicBookManager.java b/src/main/java/org/ntlab/citrusserver/repositories/PublicBookManager.java index 8837331..c65fa4f 100644 --- a/src/main/java/org/ntlab/citrusserver/repositories/PublicBookManager.java +++ b/src/main/java/org/ntlab/citrusserver/repositories/PublicBookManager.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.regex.*; public class PublicBookManager implements IBookListener{ @@ -24,8 +25,9 @@ public ArrayList searchBooksByTitle(String title){ ArrayList books = new ArrayList<>(); + var ptn = Pattern.compile(title); for(Book book : this.publicBooks){ - if(book.getTitle().equals(title)){ + if(ptn.matcher(book.getTitle()).find()){ books.add(book); } } @@ -37,8 +39,13 @@ } public ArrayList searchBooksByAccount(String accountId){ - - return null; + ArrayList books = new ArrayList<>(); + for(Book book : this.publicBooks){ + if(book.getAccountId().equals(accountId)){ + books.add(book); + } + } + return books; } public ArrayList searchBooksByAccount(String accountId, int sortBy){ @@ -46,11 +53,21 @@ } public ArrayList searchBooksByTitleAndAccount(String title, String accountId){ - return null; + ArrayList books = searchBooksByTitle(title); + for(Book book : books){ + if(book.getAccountId().equals(accountId)){ + books.add(book); + } + } + return books; } @Override public void bookChanged(Account account, Book book) { - + if(book.getPublicity()){ + this.publicBooks.add(book); + } else{ + this.publicBooks.remove(book); + } } }