From 553e67be41508e446b5a88b56e1340f149a152c2 Mon Sep 17 00:00:00 2001 From: Alexander Savelyev Date: Wed, 3 Jun 2020 10:37:15 +0300 Subject: [PATCH 1/7] Before Optional --- .../com/epam/izh/rd/online/entity/Author.java | 72 +++++++++++++++++++ .../repository/SimpleAuthorRepository.java | 40 +++++++++++ 2 files changed, 112 insertions(+) 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/entity/Author.java b/src/main/java/com/epam/izh/rd/online/entity/Author.java index 166be587..c2e90241 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,76 @@ */ 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 void setName(String name) { + this.name = name; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public LocalDate getBirthDate() { + return birthDate; + } + + public void setBirthDate(LocalDate birthDate) { + this.birthDate = birthDate; + } + + public String getCountry() { + return country; + } + + 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 Objects.equals(name, author.name) && + Objects.equals(lastName, author.lastName) && + Objects.equals(birthDate, author.birthDate) && + Objects.equals(country, author.country); + } + + @Override + public int hashCode() { + return Objects.hash(name, lastName, birthDate, country); + } + + @Override + public String toString() { + return "Author{" + + "name='" + name + '\'' + + ", lastName='" + lastName + '\'' + + ", birthDate=" + birthDate + + ", country='" + country + '\'' + + '}'; + } } 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..d702f0db --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java @@ -0,0 +1,40 @@ +package com.epam.izh.rd.online.repository; + +import com.epam.izh.rd.online.entity.Author; + +import java.util.Arrays; +import java.util.Optional; + +public class SimpleAuthorRepository implements AuthorRepository{ + + private Author[] authors = new Author[] {}; + + @Override + public boolean save(Author author) { + findByFullName(author.getName(), author.getLastName()); + authors = (Author[]) Arrays.stream(authors).toArray(); + return false; + } + + @Override + public Author findByFullName(String name, String lastName) { + name = name.toUpperCase(); + lastName = name.toUpperCase(); + for (Author author : authors) { + if (author.getName().equals(name) && author.getLastName().equals(lastName)) return author; + } + return Optional; + } + + @Override + public boolean remove(Author author) { + int countBefore = count(); + authors = (Author[]) Arrays.stream(authors).filter(o -> !o.equals(author)).toArray(); + return countBefore == count() ? false : true; + } + + @Override + public int count() { + return authors.length; + } +} From 6793ba3f25e0e240865154a5c533e31a0c216cf1 Mon Sep 17 00:00:00 2001 From: Alexander Savelyev Date: Wed, 3 Jun 2020 11:27:23 +0300 Subject: [PATCH 2/7] SimpleAuthorRepository is ready --- .../java/com/epam/izh/rd/online/Main.java | 18 ++++++++++++++++++ .../repository/SimpleAuthorRepository.java | 19 +++++++++++-------- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/Main.java b/src/main/java/com/epam/izh/rd/online/Main.java index e3939a4b..5f4465b1 100644 --- a/src/main/java/com/epam/izh/rd/online/Main.java +++ b/src/main/java/com/epam/izh/rd/online/Main.java @@ -1,9 +1,27 @@ package com.epam.izh.rd.online; +import com.epam.izh.rd.online.entity.Author; +import com.epam.izh.rd.online.repository.SimpleAuthorRepository; + +import java.time.LocalDate; + public class Main { public static void main(String[] args) { + SimpleAuthorRepository repository = new SimpleAuthorRepository(); + + repository.save(new Author("Alexander", "Pushkin", LocalDate.of(1799, 06, 06),"Russia")); + System.out.println(repository.findByFullName("AleXANDER", "PushkiN")); + System.out.println(repository.count()); + + repository.save(new Author("Alexander", "Pushkin", LocalDate.of(1799, 6, 6),"Russia")); + System.out.println(repository.count()); + + repository.save(new Author("Lev", "Tosltoy", LocalDate.of(1828, 9, 9),"Russia")); + System.out.println(repository.count()); + System.out.println(repository.findByFullName("Le", "T")); + } } 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 d702f0db..5c026812 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 @@ -4,6 +4,9 @@ import java.util.Arrays; import java.util.Optional; +import java.util.stream.Stream; + +import static org.apache.commons.lang3.ArrayUtils.toArray; public class SimpleAuthorRepository implements AuthorRepository{ @@ -11,26 +14,26 @@ public class SimpleAuthorRepository implements AuthorRepository{ @Override public boolean save(Author author) { - findByFullName(author.getName(), author.getLastName()); - authors = (Author[]) Arrays.stream(authors).toArray(); - return false; + if (findByFullName(author.getName(), author.getLastName()) != null) return false; + //authors = Arrays.stream(authors).toArray(Author[]::new); + authors = Stream.concat(Arrays.stream(authors), Stream.of(author)).toArray(Author[]::new); + return true; } @Override public Author findByFullName(String name, String lastName) { - name = name.toUpperCase(); - lastName = name.toUpperCase(); for (Author author : authors) { - if (author.getName().equals(name) && author.getLastName().equals(lastName)) return author; + if (author.getName().toUpperCase().equals(name.toUpperCase()) && + author.getLastName().toUpperCase().equals(lastName.toUpperCase())) return author; } - return Optional; + return null; } @Override public boolean remove(Author author) { int countBefore = count(); authors = (Author[]) Arrays.stream(authors).filter(o -> !o.equals(author)).toArray(); - return countBefore == count() ? false : true; + return countBefore != count(); } @Override From 54be999b9d7213d05cae74db3c7507775cf0359d Mon Sep 17 00:00:00 2001 From: Alexander Savelyev Date: Wed, 3 Jun 2020 11:30:33 +0300 Subject: [PATCH 3/7] SimpleAuthorRepository is ready2 --- .../epam/izh/rd/online/repository/SimpleAuthorRepository.java | 1 - 1 file changed, 1 deletion(-) 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 5c026812..e00f6463 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 @@ -15,7 +15,6 @@ public class SimpleAuthorRepository implements AuthorRepository{ @Override public boolean save(Author author) { if (findByFullName(author.getName(), author.getLastName()) != null) return false; - //authors = Arrays.stream(authors).toArray(Author[]::new); authors = Stream.concat(Arrays.stream(authors), Stream.of(author)).toArray(Author[]::new); return true; } From eb9e3b4a971654443fbb940a0d3a2257868f1186 Mon Sep 17 00:00:00 2001 From: Alexander Savelyev Date: Wed, 3 Jun 2020 11:38:52 +0300 Subject: [PATCH 4/7] All entities are ready --- .../com/epam/izh/rd/online/entity/Book.java | 49 ++++++++++++++ .../epam/izh/rd/online/entity/SchoolBook.java | 64 +++++++++++++++++++ .../repository/SimpleAuthorRepository.java | 3 - 3 files changed, 113 insertions(+), 3 deletions(-) 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..afca6cb5 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 @@ -1,5 +1,6 @@ package com.epam.izh.rd.online.entity; +import java.io.StringReader; import java.util.Objects; /** @@ -17,4 +18,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 void setNumberOfPages(int numberOfPages) { + this.numberOfPages = numberOfPages; + } + + public String getName() { + return name; + } + + 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 numberOfPages == book.numberOfPages && + Objects.equals(name, book.name); + } + + @Override + public int hashCode() { + return Objects.hash(numberOfPages, name); + } + + @Override + public String toString() { + return "Book{" + + "numberOfPages=" + numberOfPages + + ", name='" + name + '\'' + + '}'; + } } 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..61426cf2 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,68 @@ */ public class SchoolBook extends Book { + private String name; + private String authorLastName; + private LocalDate publishDate; + + public SchoolBook() { + } + + public SchoolBook(int numberOfPages, String bookName, String authorName, String authorLastName, LocalDate publishDate) { + super(numberOfPages, bookName); + this.name = authorName; + this.authorLastName = authorLastName; + this.publishDate = publishDate; + } + + @Override + public String getName() { + return name; + } + + @Override + public void setName(String name) { + this.name = name; + } + + 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 Objects.equals(name, that.name) && + Objects.equals(authorLastName, that.authorLastName) && + Objects.equals(publishDate, that.publishDate); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), name, authorLastName, publishDate); + } + + @Override + public String toString() { + return "SchoolBook{" + + "name='" + name + '\'' + + ", authorLastName='" + authorLastName + '\'' + + ", publishDate=" + publishDate + + '}'; + } } 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 e00f6463..6d5f264f 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 @@ -3,11 +3,8 @@ import com.epam.izh.rd.online.entity.Author; import java.util.Arrays; -import java.util.Optional; import java.util.stream.Stream; -import static org.apache.commons.lang3.ArrayUtils.toArray; - public class SimpleAuthorRepository implements AuthorRepository{ private Author[] authors = new Author[] {}; From feb2c32e1d88706f7c7a662ab48534edd9cb1d3a Mon Sep 17 00:00:00 2001 From: Alexander Savelyev Date: Wed, 3 Jun 2020 12:13:30 +0300 Subject: [PATCH 5/7] SimpleSchoolBookRepository is ready --- .../java/com/epam/izh/rd/online/Main.java | 37 +++++++++++++------ .../epam/izh/rd/online/entity/SchoolBook.java | 24 ++++++------ .../SimpleSchoolBookRepository.java | 35 ++++++++++++++++++ 3 files changed, 71 insertions(+), 25 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/Main.java b/src/main/java/com/epam/izh/rd/online/Main.java index 5f4465b1..0252b713 100644 --- a/src/main/java/com/epam/izh/rd/online/Main.java +++ b/src/main/java/com/epam/izh/rd/online/Main.java @@ -1,26 +1,39 @@ package com.epam.izh.rd.online; import com.epam.izh.rd.online.entity.Author; +import com.epam.izh.rd.online.entity.SchoolBook; import com.epam.izh.rd.online.repository.SimpleAuthorRepository; +import com.epam.izh.rd.online.repository.SimpleSchoolBookRepository; import java.time.LocalDate; +import java.util.Arrays; public class Main { public static void main(String[] args) { - SimpleAuthorRepository repository = new SimpleAuthorRepository(); - - repository.save(new Author("Alexander", "Pushkin", LocalDate.of(1799, 06, 06),"Russia")); - System.out.println(repository.findByFullName("AleXANDER", "PushkiN")); - System.out.println(repository.count()); - - repository.save(new Author("Alexander", "Pushkin", LocalDate.of(1799, 6, 6),"Russia")); - System.out.println(repository.count()); - - repository.save(new Author("Lev", "Tosltoy", LocalDate.of(1828, 9, 9),"Russia")); - System.out.println(repository.count()); - System.out.println(repository.findByFullName("Le", "T")); +// SimpleAuthorRepository repository = new SimpleAuthorRepository(); +// +// repository.save(new Author("Alexander", "Pushkin", LocalDate.of(1799, 06, 06),"Russia")); +// System.out.println(repository.findByFullName("AleXANDER", "PushkiN")); +// System.out.println(repository.count()); +// +// repository.save(new Author("Alexander", "Pushkin", LocalDate.of(1799, 6, 6),"Russia")); +// System.out.println(repository.count()); +// +// repository.save(new Author("Lev", "Tosltoy", LocalDate.of(1828, 9, 9),"Russia")); +// System.out.println(repository.count()); +// System.out.println(repository.findByFullName("Le", "T")); + + + SimpleSchoolBookRepository simpleSchoolBookRepository = new SimpleSchoolBookRepository(); + simpleSchoolBookRepository.save(new SchoolBook(100, "BookName", "AuthorName", "AuthorLastName", LocalDate.of(1974,10, 10))); + simpleSchoolBookRepository.save(new SchoolBook(100, "BookName", "AuthorName", "AuthorLastName", LocalDate.of(1980,10, 10))); + simpleSchoolBookRepository.save(new SchoolBook(100, "BookNameNew", "AuthorName", "AuthorLastName", LocalDate.of(1980,10, 10))); + System.out.println(simpleSchoolBookRepository.count()); + Arrays.stream(simpleSchoolBookRepository.findByName("BookName")).forEach(System.out::println); + System.out.println(simpleSchoolBookRepository.removeByName("BookName")); + System.out.println(simpleSchoolBookRepository.count()); } 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 61426cf2..fb67fb6e 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,28 +21,26 @@ */ public class SchoolBook extends Book { - private String name; + private String authorName; private String authorLastName; private LocalDate publishDate; public SchoolBook() { } - public SchoolBook(int numberOfPages, String bookName, String authorName, String authorLastName, LocalDate publishDate) { - super(numberOfPages, bookName); - this.name = authorName; + public SchoolBook(int numberOfPages, String name, String authorName, String authorLastName, LocalDate publishDate) { + super(numberOfPages, name); + this.authorName = authorName; this.authorLastName = authorLastName; this.publishDate = publishDate; } - @Override - public String getName() { - return name; + public String getAuthorName() { + return authorName; } - @Override - public void setName(String name) { - this.name = name; + public void setAuthorName(String authorName) { + this.authorName = authorName; } public String getAuthorLastName() { @@ -67,20 +65,20 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; if (!super.equals(o)) return false; SchoolBook that = (SchoolBook) o; - return Objects.equals(name, that.name) && + return Objects.equals(authorName, that.authorName) && Objects.equals(authorLastName, that.authorLastName) && Objects.equals(publishDate, that.publishDate); } @Override public int hashCode() { - return Objects.hash(super.hashCode(), name, authorLastName, publishDate); + return Objects.hash(super.hashCode(), authorName, authorLastName, publishDate); } @Override public String toString() { return "SchoolBook{" + - "name='" + name + '\'' + + "authorName='" + authorName + '\'' + ", authorLastName='" + authorLastName + '\'' + ", publishDate=" + publishDate + '}'; 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 new file mode 100644 index 00000000..9f35d049 --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java @@ -0,0 +1,35 @@ +package com.epam.izh.rd.online.repository; + +import com.epam.izh.rd.online.entity.SchoolBook; + +import java.util.Arrays; +import java.util.stream.Stream; + +public class SimpleSchoolBookRepository implements BookRepository{ + + private SchoolBook[] schoolBooks = new SchoolBook[] {}; + + @Override + public boolean save(SchoolBook book) { + schoolBooks = Stream.concat(Arrays.stream(schoolBooks), Stream.of(book)).toArray(SchoolBook[]::new); + return true; + } + + @Override + public SchoolBook[] findByName(String name) { + return Arrays.stream(schoolBooks).filter(book -> book.getName().equals(name)).toArray(SchoolBook[]::new); + //return new SchoolBook[0]; + } + + @Override + public boolean removeByName(String name) { + int countBefore = count(); + schoolBooks = Arrays.stream(schoolBooks).filter(book -> !book.getName().equals(name)).toArray(SchoolBook[]::new); + return countBefore != count(); + } + + @Override + public int count() { + return schoolBooks.length; + } +} From c3e446874b060f2ec494615255d07bc09858acc4 Mon Sep 17 00:00:00 2001 From: Alexander Savelyev Date: Wed, 3 Jun 2020 12:42:12 +0300 Subject: [PATCH 6/7] Initial dev before test --- .../SimpleSchoolBookRepository.java | 1 - .../online/service/SimpleAuthorService.java | 36 ++++++++++++ .../service/SimpleSchoolBookService.java | 55 +++++++++++++++++++ 3 files changed, 91 insertions(+), 1 deletion(-) 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/repository/SimpleSchoolBookRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java index 9f35d049..e676c8c9 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 @@ -18,7 +18,6 @@ public boolean save(SchoolBook book) { @Override public SchoolBook[] findByName(String name) { return Arrays.stream(schoolBooks).filter(book -> book.getName().equals(name)).toArray(SchoolBook[]::new); - //return new SchoolBook[0]; } @Override 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..35d81cb9 --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleAuthorService.java @@ -0,0 +1,36 @@ +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() { + } + + public SimpleAuthorService(AuthorRepository authorRepository) { + this.authorRepository = authorRepository; + } + + @Override + public boolean save(Author author) { + return authorRepository.save(author); + } + + @Override + public Author findByFullName(String name, String lastName) { + return authorRepository.findByFullName(name, lastName); + } + + @Override + public boolean remove(Author author) { + return authorRepository.remove(author); + } + + @Override + public int count() { + 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 new file mode 100644 index 00000000..f04f79e0 --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleSchoolBookService.java @@ -0,0 +1,55 @@ +package com.epam.izh.rd.online.service; + +import com.epam.izh.rd.online.entity.Author; +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(SchoolBook book) { + if (authorService.findByFullName(book.getAuthorName(), book.getAuthorLastName()) != null) { + schoolBookBookRepository.save(book); + return true; + } + return false; + } + + @Override + public SchoolBook[] findByName(String name) { + return schoolBookBookRepository.findByName(name); + } + + @Override + public int getNumberOfBooksByName(String name) { + return schoolBookBookRepository.findByName(name).length; + } + + @Override + public boolean removeByName(String name) { + return schoolBookBookRepository.removeByName(name); + } + + @Override + public int count() { + return schoolBookBookRepository.count(); + } + + @Override + public Author findAuthorByBookName(String name) { + SchoolBook[] schoolBooks = schoolBookBookRepository.findByName(name); + if (schoolBooks == null || schoolBooks.length == 0) return null; + return authorService.findByFullName(schoolBooks[0].getAuthorName(), schoolBooks[0].getAuthorLastName()); + } +} From 3e4ed148d26c82512b416df591eece36f0c8b68b Mon Sep 17 00:00:00 2001 From: Alexander Savelyev Date: Wed, 3 Jun 2020 12:52:15 +0300 Subject: [PATCH 7/7] The final development --- .../java/com/epam/izh/rd/online/Main.java | 32 ------------------- .../com/epam/izh/rd/online/entity/Author.java | 20 ++++++------ .../com/epam/izh/rd/online/entity/Book.java | 1 - .../repository/SimpleAuthorRepository.java | 2 +- 4 files changed, 11 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/Main.java b/src/main/java/com/epam/izh/rd/online/Main.java index 0252b713..00109f5a 100644 --- a/src/main/java/com/epam/izh/rd/online/Main.java +++ b/src/main/java/com/epam/izh/rd/online/Main.java @@ -1,40 +1,8 @@ package com.epam.izh.rd.online; -import com.epam.izh.rd.online.entity.Author; -import com.epam.izh.rd.online.entity.SchoolBook; -import com.epam.izh.rd.online.repository.SimpleAuthorRepository; -import com.epam.izh.rd.online.repository.SimpleSchoolBookRepository; - -import java.time.LocalDate; -import java.util.Arrays; - public class Main { public static void main(String[] args) { - -// SimpleAuthorRepository repository = new SimpleAuthorRepository(); -// -// repository.save(new Author("Alexander", "Pushkin", LocalDate.of(1799, 06, 06),"Russia")); -// System.out.println(repository.findByFullName("AleXANDER", "PushkiN")); -// System.out.println(repository.count()); -// -// repository.save(new Author("Alexander", "Pushkin", LocalDate.of(1799, 6, 6),"Russia")); -// System.out.println(repository.count()); -// -// repository.save(new Author("Lev", "Tosltoy", LocalDate.of(1828, 9, 9),"Russia")); -// System.out.println(repository.count()); -// System.out.println(repository.findByFullName("Le", "T")); - - - SimpleSchoolBookRepository simpleSchoolBookRepository = new SimpleSchoolBookRepository(); - simpleSchoolBookRepository.save(new SchoolBook(100, "BookName", "AuthorName", "AuthorLastName", LocalDate.of(1974,10, 10))); - simpleSchoolBookRepository.save(new SchoolBook(100, "BookName", "AuthorName", "AuthorLastName", LocalDate.of(1980,10, 10))); - simpleSchoolBookRepository.save(new SchoolBook(100, "BookNameNew", "AuthorName", "AuthorLastName", LocalDate.of(1980,10, 10))); - System.out.println(simpleSchoolBookRepository.count()); - Arrays.stream(simpleSchoolBookRepository.findByName("BookName")).forEach(System.out::println); - System.out.println(simpleSchoolBookRepository.removeByName("BookName")); - System.out.println(simpleSchoolBookRepository.count()); - } } 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 c2e90241..3a00906b 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 @@ -22,16 +22,16 @@ public class Author { private String name; private String lastName; - private LocalDate birthDate; + private LocalDate birthdate; private String country; public Author() { } - public Author(String name, String lastName, LocalDate birthDate, String country) { + public Author(String name, String lastName, LocalDate birthdate, String country) { this.name = name; this.lastName = lastName; - this.birthDate = birthDate; + this.birthdate = birthdate; this.country = country; } @@ -51,12 +51,12 @@ public void setLastName(String lastName) { this.lastName = lastName; } - public LocalDate getBirthDate() { - return birthDate; + public LocalDate getBirthdate() { + return birthdate; } - public void setBirthDate(LocalDate birthDate) { - this.birthDate = birthDate; + public void setBirthdate(LocalDate birthdate) { + this.birthdate = birthdate; } public String getCountry() { @@ -74,13 +74,13 @@ public boolean equals(Object o) { Author author = (Author) o; return Objects.equals(name, author.name) && Objects.equals(lastName, author.lastName) && - Objects.equals(birthDate, author.birthDate) && + Objects.equals(birthdate, author.birthdate) && Objects.equals(country, author.country); } @Override public int hashCode() { - return Objects.hash(name, lastName, birthDate, country); + return Objects.hash(name, lastName, birthdate, country); } @Override @@ -88,7 +88,7 @@ public String toString() { return "Author{" + "name='" + name + '\'' + ", lastName='" + lastName + '\'' + - ", birthDate=" + birthDate + + ", birthdate=" + birthdate + ", country='" + country + '\'' + '}'; } 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 afca6cb5..8f079869 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 @@ -1,6 +1,5 @@ package com.epam.izh.rd.online.entity; -import java.io.StringReader; import java.util.Objects; /** 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 6d5f264f..0a4bef3c 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 @@ -28,7 +28,7 @@ public Author findByFullName(String name, String lastName) { @Override public boolean remove(Author author) { int countBefore = count(); - authors = (Author[]) Arrays.stream(authors).filter(o -> !o.equals(author)).toArray(); + authors = Arrays.stream(authors).filter(o -> !o.equals(author)).toArray(Author[]::new); return countBefore != count(); }