From 12b625f3f97411938c85a77efc3ccae7e739ab83 Mon Sep 17 00:00:00 2001 From: AlCor Date: Wed, 25 Nov 2020 14:17:03 +0400 Subject: [PATCH 01/11] author --- .../com/epam/izh/rd/online/entity/Author.java | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/src/main/java/com/epam/izh/rd/online/entity/Author.java b/src/main/java/com/epam/izh/rd/online/entity/Author.java index 166be587..9872dd43 100644 --- a/src/main/java/com/epam/izh/rd/online/entity/Author.java +++ b/src/main/java/com/epam/izh/rd/online/entity/Author.java @@ -20,4 +20,77 @@ */ public class Author { + private String name ; + private String lastName ; + private LocalDate birthdate ; + private String country ; + + public Author() { + + } + + public Author(String name, String lastName, LocalDate birthdate, String country) { + this.name = name; + this.lastName = lastName; + this.birthdate = birthdate; + this.country = country; + } + + public String getName() { + return name; + } + + public String getLastName() { + return lastName; + } + + public LocalDate getBirthdate() { + return birthdate; + } + + public String getCountry() { + return country; + } + + public void setName(String name) { + this.name = name; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public void setBirthdate(LocalDate birthdate) { + this.birthdate = birthdate; + } + + public void setCountry(String country) { + this.country = country; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Author author = (Author) o; + return getName().equals(author.getName()) && + getLastName().equals(author.getLastName()) && + getBirthdate().equals(author.getBirthdate()) && + getCountry().equals(author.getCountry()); + } + + @Override + public int hashCode() { + return Objects.hash(getName(), getLastName(), getBirthdate(), getCountry()); + } + + @Override + public String toString() { + return "Author{" + + "name='" + name + '\'' + + ", lastName='" + lastName + '\'' + + ", birthdate=" + birthdate + + ", country='" + country + '\'' + + '}'; + } } From b4d08151e24d35ae2df6b05f93587ed6117abc6e Mon Sep 17 00:00:00 2001 From: AlCor Date: Wed, 25 Nov 2020 14:25:38 +0400 Subject: [PATCH 02/11] book --- .../com/epam/izh/rd/online/entity/Book.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/main/java/com/epam/izh/rd/online/entity/Book.java b/src/main/java/com/epam/izh/rd/online/entity/Book.java index 08bdccb8..3a2bea01 100644 --- a/src/main/java/com/epam/izh/rd/online/entity/Book.java +++ b/src/main/java/com/epam/izh/rd/online/entity/Book.java @@ -17,4 +17,52 @@ */ public abstract class Book { + private int numberOfPages ; + private String name ; + + public Book() { + } + + public Book(int numberOfPages, String name) { + this.numberOfPages = numberOfPages; + this.name = name; + } + + public int getNumberOfPages() { + return numberOfPages; + } + + public String getName() { + return name; + } + + public void setNumberOfPages(int numberOfPages) { + this.numberOfPages = numberOfPages; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Book book = (Book) o; + return getNumberOfPages() == book.getNumberOfPages() && + getName().equals(book.getName()); + } + + @Override + public int hashCode() { + return Objects.hash(getNumberOfPages(), getName()); + } + + @Override + public String toString() { + return "Book{" + + "numberOfPages=" + numberOfPages + + ", name='" + name + '\'' + + '}'; + } } From a8773859156f62b493a09af442139137922b4ee8 Mon Sep 17 00:00:00 2001 From: AlCor Date: Wed, 25 Nov 2020 14:32:37 +0400 Subject: [PATCH 03/11] schoolBook --- .../epam/izh/rd/online/entity/SchoolBook.java | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/src/main/java/com/epam/izh/rd/online/entity/SchoolBook.java b/src/main/java/com/epam/izh/rd/online/entity/SchoolBook.java index a9834db4..5ffbe06b 100644 --- a/src/main/java/com/epam/izh/rd/online/entity/SchoolBook.java +++ b/src/main/java/com/epam/izh/rd/online/entity/SchoolBook.java @@ -21,4 +21,72 @@ */ public class SchoolBook extends Book { + private String authorName ; + private String authorLastName ; + private LocalDate publishDate ; + + public SchoolBook() { + } + + public SchoolBook(String authorName, String authorLastName, LocalDate publishDate) { + this.authorName = authorName; + this.authorLastName = authorLastName; + this.publishDate = publishDate; + } + + public SchoolBook(int numberOfPages, String name, String authorName, String authorLastName, LocalDate publishDate) { + super(numberOfPages, name); + this.authorName = authorName; + this.authorLastName = authorLastName; + this.publishDate = publishDate; + } + + public String getAuthorName() { + return authorName; + } + + public void setAuthorName(String authorName) { + this.authorName = authorName; + } + + public String getAuthorLastName() { + return authorLastName; + } + + public void setAuthorLastName(String authorLastName) { + this.authorLastName = authorLastName; + } + + public LocalDate getPublishDate() { + return publishDate; + } + + public void setPublishDate(LocalDate publishDate) { + this.publishDate = publishDate; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + SchoolBook that = (SchoolBook) o; + return getAuthorName().equals(that.getAuthorName()) && + getAuthorLastName().equals(that.getAuthorLastName()) && + getPublishDate().equals(that.getPublishDate()); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), getAuthorName(), getAuthorLastName(), getPublishDate()); + } + + @Override + public String toString() { + return "SchoolBook{" + + "authorName='" + authorName + '\'' + + ", authorLastName='" + authorLastName + '\'' + + ", publishDate=" + publishDate + + '}'; + } } From d3f89a182b51edb0a8036b6f7e28ae0e7b55cd52 Mon Sep 17 00:00:00 2001 From: AlCor Date: Wed, 25 Nov 2020 16:59:57 +0400 Subject: [PATCH 04/11] 11 --- .../online/repository/AuthorRepository.java | 2 +- .../repository/SimpleAuthorRepository.java | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java diff --git a/src/main/java/com/epam/izh/rd/online/repository/AuthorRepository.java b/src/main/java/com/epam/izh/rd/online/repository/AuthorRepository.java index c62bd4e9..2adf9b3d 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/AuthorRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/AuthorRepository.java @@ -15,7 +15,7 @@ */ public interface AuthorRepository { - /** + /** * Метод должен сохранять автора в массив authors. * Массив при каждом сохранении должен увеличиваться в размере ровно на 1. * То есть он ровно того размера, сколько сущностей мы в него сохранили. diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java new file mode 100644 index 00000000..df418a47 --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java @@ -0,0 +1,29 @@ +package com.epam.izh.rd.online.repository; + +import com.epam.izh.rd.online.entity.Author; + +public class SimpleAuthorRepository implements AuthorRepository { + + private Author[] authors = new Author[]{} ; + + @Override + public boolean save(Author author) { + + return false; + } + + @Override + public Author findByFullName(String name, String lastname) { + return null; + } + + @Override + public boolean remove(Author author) { + return false; + } + + @Override + public int count() { + return 0; + } +} From 43ac521bd25835da3eb046e315b7844ec769e314 Mon Sep 17 00:00:00 2001 From: AlCor Date: Mon, 30 Nov 2020 16:28:04 +0400 Subject: [PATCH 05/11] simpleAuthor --- .../com/epam/izh/rd/online/entity/Author.java | 1 + .../repository/SimpleAuthorRepository.java | 20 +++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/entity/Author.java b/src/main/java/com/epam/izh/rd/online/entity/Author.java index 9872dd43..a0acd0e0 100644 --- a/src/main/java/com/epam/izh/rd/online/entity/Author.java +++ b/src/main/java/com/epam/izh/rd/online/entity/Author.java @@ -81,6 +81,7 @@ public boolean equals(Object o) { @Override public int hashCode() { + return Objects.hash(getName(), getLastName(), getBirthdate(), getCountry()); } diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java index df418a47..b0409388 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java @@ -8,22 +8,38 @@ public class SimpleAuthorRepository implements AuthorRepository { @Override public boolean save(Author author) { - + int saveCount = count() ; + if (findByFullName(author.getName(), author.getLastName()) == null){ + + saveCount++ ; + Author[] saveAuthor = new Author[saveCount] ; + System.arraycopy(authors, 0 ,saveAuthor ,0, saveCount); + authors = saveAuthor ; + return true ; + } return false; } @Override public Author findByFullName(String name, String lastname) { + + for (Author author : authors) { + if (author.getName().equals(name) && author.getLastName().equals(lastname)){ + return author ; + } + } return null; } @Override public boolean remove(Author author) { + return false; } @Override public int count() { - return 0; + + return authors.length ; } } From d40525790673e446bb9c4d5c01288796f177cbd7 Mon Sep 17 00:00:00 2001 From: AlCor Date: Tue, 1 Dec 2020 08:28:37 +0400 Subject: [PATCH 06/11] bookRepository --- .../repository/SimpleAuthorRepository.java | 12 ++++++-- .../SimpleSchoolBookRepository.java | 28 +++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java index b0409388..35968a47 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java @@ -33,13 +33,21 @@ public Author findByFullName(String name, String lastname) { @Override public boolean remove(Author author) { - + if (findByFullName(author.getName(), author.getLastName()) != null){ + Author[] removeAuthors = new Author[authors.length - 1] ; + for (int i = 0 , j = 0 ; j { + + private SchoolBook[] schoolBooks ; + + @Override + public boolean save(SchoolBook book) { + return false; + } + + @Override + public SchoolBook[] findByName(String name) { + return new SchoolBook[0]; + } + + @Override + public boolean removeByName(String name) { + return false; + } + + @Override + public int count() { + return 0; + } +} From 564f50b5fbd4f62bada9fee9912aac8e9a04f56e Mon Sep 17 00:00:00 2001 From: AlCor Date: Tue, 1 Dec 2020 08:41:31 +0400 Subject: [PATCH 07/11] frame --- .../online/service/SimpleAuthorService.java | 37 ++++++++++++++ .../service/SimpleSchoolBookService.java | 50 +++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 src/main/java/com/epam/izh/rd/online/service/SimpleAuthorService.java create mode 100644 src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleAuthorService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleAuthorService.java new file mode 100644 index 00000000..d1098d1f --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleAuthorService.java @@ -0,0 +1,37 @@ +package com.epam.izh.rd.online.service; + +import com.epam.izh.rd.online.entity.Author; +import com.epam.izh.rd.online.repository.AuthorRepository; + +public class SimpleAuthorService implements AuthorService { + + private AuthorRepository authorRepository ; + + public SimpleAuthorService( AuthorRepository authorRepository) { + + } + + public SimpleAuthorService() { + + } + + @Override + public boolean save(Author author) { + return false; + } + + @Override + public Author findByFullName(String name, String lastname) { + return null; + } + + @Override + public boolean remove(Author author) { + return false; + } + + @Override + public int count() { + return 0; + } +} diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java new file mode 100644 index 00000000..7987e4cc --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java @@ -0,0 +1,50 @@ +package com.epam.izh.rd.online.service; + +import com.epam.izh.rd.online.entity.Author; +import com.epam.izh.rd.online.entity.Book; +import com.epam.izh.rd.online.entity.SchoolBook; +import com.epam.izh.rd.online.repository.BookRepository; + +public class SimpleSchoolBookService implements BookService { + + private BookRepository schoolBookBookRepository ; + private AuthorService authorService ; + + public SimpleSchoolBookService() { + } + + public SimpleSchoolBookService(BookRepository schoolBookBookRepository, AuthorService authorService) { + this.schoolBookBookRepository = schoolBookBookRepository; + this.authorService = authorService; + } + + @Override + public boolean save(Book book) { + return false; + } + + @Override + public Book[] findByName(String name) { + return new Book[0]; + } + + @Override + public int getNumberOfBooksByName(String name) { + return 0; + } + + @Override + public boolean removeByName(String name) { + return false; + } + + @Override + public int count() { + return 0; + } + + @Override + public Author findAuthorByBookName(String name) { + return null; + } +} From 0a48673dde95b09a378273b8a87c04dc2386f6d5 Mon Sep 17 00:00:00 2001 From: AlCor Date: Tue, 1 Dec 2020 11:13:01 +0400 Subject: [PATCH 08/11] com1 --- .../repository/SimpleAuthorRepository.java | 6 ++--- .../SimpleSchoolBookRepository.java | 26 ++++++++++++++++--- .../online/service/SimpleAuthorService.java | 13 +++++----- .../service/SimpleSchoolBookService.java | 18 ++++++++----- 4 files changed, 41 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java index 35968a47..fc0e7fda 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java @@ -10,9 +10,8 @@ public class SimpleAuthorRepository implements AuthorRepository { public boolean save(Author author) { int saveCount = count() ; if (findByFullName(author.getName(), author.getLastName()) == null){ - - saveCount++ ; - Author[] saveAuthor = new Author[saveCount] ; + Author[] saveAuthor = new Author[saveCount+1] ; + saveAuthor[saveCount] = author ; System.arraycopy(authors, 0 ,saveAuthor ,0, saveCount); authors = saveAuthor ; return true ; @@ -22,7 +21,6 @@ public boolean save(Author author) { @Override public Author findByFullName(String name, String lastname) { - for (Author author : authors) { if (author.getName().equals(name) && author.getLastName().equals(lastname)){ return author ; diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java index 5d168000..e96d2356 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java @@ -2,18 +2,36 @@ import com.epam.izh.rd.online.entity.SchoolBook; +import java.util.Arrays; + public class SimpleSchoolBookRepository implements BookRepository { - private SchoolBook[] schoolBooks ; + SchoolBook[] schoolBooks = new SchoolBook[]{}; @Override public boolean save(SchoolBook book) { - return false; + int saveCount = count() ; + SchoolBook [] saveBook = new SchoolBook[saveCount + 1] ; + saveBook[saveCount] = book ; + System.arraycopy(schoolBooks, 0 ,saveBook, 0 ,saveCount); + schoolBooks = saveBook ; + + return true; } @Override public SchoolBook[] findByName(String name) { - return new SchoolBook[0]; + SchoolBook[] books = new SchoolBook[]{}; + int bookNum = 0 ; + for (SchoolBook book: schoolBooks ) { + if(book.getName().equals(name)){ + books[bookNum] = book ; + bookNum++ ; + + } + } + + return books; } @Override @@ -23,6 +41,6 @@ public boolean removeByName(String name) { @Override public int count() { - return 0; + return schoolBooks.length; } } diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleAuthorService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleAuthorService.java index d1098d1f..e3f108b3 100644 --- a/src/main/java/com/epam/izh/rd/online/service/SimpleAuthorService.java +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleAuthorService.java @@ -5,33 +5,32 @@ public class SimpleAuthorService implements AuthorService { - private AuthorRepository authorRepository ; + AuthorRepository authorRepository ; public SimpleAuthorService( AuthorRepository authorRepository) { - + this.authorRepository = authorRepository ; } public SimpleAuthorService() { - } @Override public boolean save(Author author) { - return false; + return authorRepository.save(author); } @Override public Author findByFullName(String name, String lastname) { - return null; + return authorRepository.findByFullName(name, lastname); } @Override public boolean remove(Author author) { - return false; + return authorRepository.remove(author); } @Override public int count() { - return 0; + return authorRepository.count(); } } diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java index 7987e4cc..bda93867 100644 --- a/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java @@ -1,14 +1,14 @@ package com.epam.izh.rd.online.service; import com.epam.izh.rd.online.entity.Author; -import com.epam.izh.rd.online.entity.Book; + import com.epam.izh.rd.online.entity.SchoolBook; import com.epam.izh.rd.online.repository.BookRepository; -public class SimpleSchoolBookService implements BookService { +public class SimpleSchoolBookService implements BookService { - private BookRepository schoolBookBookRepository ; - private AuthorService authorService ; + BookRepository schoolBookBookRepository ; + AuthorService authorService ; public SimpleSchoolBookService() { } @@ -19,13 +19,17 @@ public SimpleSchoolBookService(BookRepository schoolBookBookReposito } @Override - public boolean save(Book book) { + public boolean save(SchoolBook book) { + if (authorService.findByFullName(book.getAuthorName(), book.getAuthorLastName()) != null){ + schoolBookBookRepository.save(book) ; + return true ; + } return false; } @Override - public Book[] findByName(String name) { - return new Book[0]; + public SchoolBook[] findByName(String name) { + return new SchoolBook[0]; } @Override From 78ef27b47f8b4ac1f4bbaed5998268494bd6f4f1 Mon Sep 17 00:00:00 2001 From: AlCor Date: Tue, 1 Dec 2020 16:30:24 +0400 Subject: [PATCH 09/11] comm --- .../repository/SimpleSchoolBookRepository.java | 18 +++++++++++++++--- .../service/SimpleSchoolBookService.java | 12 ++++++++---- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java index e96d2356..51b1499a 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java @@ -25,17 +25,29 @@ public SchoolBook[] findByName(String name) { int bookNum = 0 ; for (SchoolBook book: schoolBooks ) { if(book.getName().equals(name)){ - books[bookNum] = book ; + SchoolBook[]tempBook = new SchoolBook[bookNum +1] ; + tempBook[bookNum] = book ; bookNum++ ; - + books = tempBook ; + System.arraycopy(tempBook, 0, books, 0 ,bookNum); } } - return books; } @Override public boolean removeByName(String name) { + int removeCount = count() ; + SchoolBook[] removeBook = new SchoolBook[removeCount] ; + for (SchoolBook book: schoolBooks) { + if( book.getName().equals(name)){ + removeBook[removeCount] = book ; + removeCount-- ; + schoolBooks = removeBook ; + System.arraycopy(removeBook,0,schoolBooks,0,removeCount); + return true ; + } + } return false; } diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java index bda93867..63b812d3 100644 --- a/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java @@ -29,26 +29,30 @@ public boolean save(SchoolBook book) { @Override public SchoolBook[] findByName(String name) { - return new SchoolBook[0]; + return schoolBookBookRepository.findByName(name); } @Override public int getNumberOfBooksByName(String name) { - return 0; + return findByName(name).length; } @Override public boolean removeByName(String name) { - return false; + return schoolBookBookRepository.removeByName(name); } @Override public int count() { - return 0; + return schoolBookBookRepository.count(); } @Override public Author findAuthorByBookName(String name) { + SchoolBook[] books = findByName(name) ; + if(books.length > 0){ + return authorService.findByFullName(books[0].getAuthorName(),books[0].getAuthorLastName()) ; + } return null; } } From 1a33ad879e775c4c0fcf80d83811f9c9b6f83ed8 Mon Sep 17 00:00:00 2001 From: AlCor Date: Tue, 8 Dec 2020 13:03:32 +0400 Subject: [PATCH 10/11] fix --- .../repository/SimpleAuthorRepository.java | 3 ++- .../SimpleSchoolBookRepository.java | 20 +++++++++---------- .../service/SimpleSchoolBookService.java | 8 +++----- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java index fc0e7fda..6e8200ff 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java @@ -12,7 +12,8 @@ public boolean save(Author author) { if (findByFullName(author.getName(), author.getLastName()) == null){ Author[] saveAuthor = new Author[saveCount+1] ; saveAuthor[saveCount] = author ; - System.arraycopy(authors, 0 ,saveAuthor ,0, saveCount); + // System.arraycopy(authors, 0 ,saveAuthor ,0, saveCount); + authors = saveAuthor ; return true ; } diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java index 51b1499a..69daab9f 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java @@ -2,7 +2,7 @@ import com.epam.izh.rd.online.entity.SchoolBook; -import java.util.Arrays; + public class SimpleSchoolBookRepository implements BookRepository { @@ -12,8 +12,8 @@ public class SimpleSchoolBookRepository implements BookRepository { public boolean save(SchoolBook book) { int saveCount = count() ; SchoolBook [] saveBook = new SchoolBook[saveCount + 1] ; - saveBook[saveCount] = book ; System.arraycopy(schoolBooks, 0 ,saveBook, 0 ,saveCount); + saveBook[saveCount] = book ; schoolBooks = saveBook ; return true; @@ -26,10 +26,10 @@ public SchoolBook[] findByName(String name) { for (SchoolBook book: schoolBooks ) { if(book.getName().equals(name)){ SchoolBook[]tempBook = new SchoolBook[bookNum +1] ; + System.arraycopy(books, 0, tempBook, 0 ,bookNum); tempBook[bookNum] = book ; - bookNum++ ; books = tempBook ; - System.arraycopy(tempBook, 0, books, 0 ,bookNum); + bookNum++ ; } } return books; @@ -37,18 +37,16 @@ public SchoolBook[] findByName(String name) { @Override public boolean removeByName(String name) { - int removeCount = count() ; - SchoolBook[] removeBook = new SchoolBook[removeCount] ; + int removeCount = 0 ; + int num = count() ; for (SchoolBook book: schoolBooks) { if( book.getName().equals(name)){ - removeBook[removeCount] = book ; - removeCount-- ; + removeCount++ ; + SchoolBook[] removeBook = new SchoolBook[num-removeCount] ; schoolBooks = removeBook ; - System.arraycopy(removeBook,0,schoolBooks,0,removeCount); - return true ; } } - return false; + return removeCount!=0;//return removeCount!=cont() тоже отработало, почему? } @Override diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java index 63b812d3..e18c210a 100644 --- a/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java @@ -49,10 +49,8 @@ public int count() { @Override public Author findAuthorByBookName(String name) { - SchoolBook[] books = findByName(name) ; - if(books.length > 0){ - return authorService.findByFullName(books[0].getAuthorName(),books[0].getAuthorLastName()) ; - } - return null; + return authorService.findByFullName(schoolBookBookRepository.findByName(name)[0].getAuthorName(), + schoolBookBookRepository.findByName(name)[0].getAuthorLastName()) ; + } } From 3eae1d7e1fd3b610f24ae6e93c00c4db7e5a248b Mon Sep 17 00:00:00 2001 From: AlCor Date: Tue, 8 Dec 2020 15:16:35 +0400 Subject: [PATCH 11/11] fix1 --- .../izh/rd/online/repository/SimpleAuthorRepository.java | 2 -- .../rd/online/repository/SimpleSchoolBookRepository.java | 7 +++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java index 6e8200ff..3b12261b 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java @@ -12,8 +12,6 @@ public boolean save(Author author) { if (findByFullName(author.getName(), author.getLastName()) == null){ Author[] saveAuthor = new Author[saveCount+1] ; saveAuthor[saveCount] = author ; - // System.arraycopy(authors, 0 ,saveAuthor ,0, saveCount); - authors = saveAuthor ; return true ; } diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java index 69daab9f..e93d9a7d 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java @@ -38,13 +38,16 @@ public SchoolBook[] findByName(String name) { @Override public boolean removeByName(String name) { int removeCount = 0 ; - int num = count() ; - for (SchoolBook book: schoolBooks) { + int num = count(); + for (SchoolBook book : schoolBooks) { if( book.getName().equals(name)){ removeCount++ ; SchoolBook[] removeBook = new SchoolBook[num-removeCount] ; + //System.arraycopy(schoolBooks,0,removeBook,0,removeBook.length); schoolBooks = removeBook ; } + + } return removeCount!=0;//return removeCount!=cont() тоже отработало, почему? }