From fb597316b0308dbb8b444f8c19d577ebdc51f319 Mon Sep 17 00:00:00 2001 From: "K. Naveen Kumar" Date: Wed, 2 Jun 2021 18:29:36 +0530 Subject: [PATCH] The code has been reformatted using the intelliJ-formatter.xml from https://github.com/eugenp/tutorials/blob/master/intelliJ/intelliJ-formatter.xml --- ...UsingHexagonalArchitectureApplication.java | 6 +++--- .../boostrore/actions/BookReadActions.java | 3 ++- .../controller/AuthorsController.java | 3 +-- .../boostrore/controller/BookController.java | 19 ++++++------------- .../boostrore/controller/dto/Author.java | 7 +++---- .../boostrore/domain/AuthorsOperation.java | 4 ++++ .../domain/AuthorsOperationsImpl.java | 1 + .../boostrore/domain/BookOperations.java | 7 ++++--- .../boostrore/domain/BookOperationsImpl.java | 10 +++------- .../hexarch/boostrore/model/Author.java | 12 ++++++++---- .../hexarch/boostrore/model/Book.java | 18 +++++++++++++----- .../repository/AuthorsRepository.java | 1 + 12 files changed, 49 insertions(+), 42 deletions(-) diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/BookStoreUsingHexagonalArchitectureApplication.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/BookStoreUsingHexagonalArchitectureApplication.java index b3c228b631..205f06b45e 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/BookStoreUsingHexagonalArchitectureApplication.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/BookStoreUsingHexagonalArchitectureApplication.java @@ -7,7 +7,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories; @EnableJpaRepositories @SpringBootApplication public class BookStoreUsingHexagonalArchitectureApplication { - public static void main(String[] args) { - SpringApplication.run(BookStoreUsingHexagonalArchitectureApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(BookStoreUsingHexagonalArchitectureApplication.class, args); + } } diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/actions/BookReadActions.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/actions/BookReadActions.java index 91775f0dc0..b375ccfd42 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/actions/BookReadActions.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/actions/BookReadActions.java @@ -3,7 +3,8 @@ package com.baeldung.hexarch.boostrore.actions; import lombok.Getter; import lombok.Setter; -@Getter @Setter +@Getter +@Setter public class BookReadActions { private String bookId; private String bookName; diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/AuthorsController.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/AuthorsController.java index 9600277c39..13dd909052 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/AuthorsController.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/AuthorsController.java @@ -13,8 +13,7 @@ import org.springframework.web.bind.annotation.RestController; public class AuthorsController { private final AuthorsRepository authorsRepository; - @PutMapping(value = "/api/v1/authors", - consumes = MediaType.APPLICATION_JSON_VALUE) + @PutMapping(value = "/api/v1/authors", consumes = MediaType.APPLICATION_JSON_VALUE) private void createAuthor(@RequestBody final Author author) { com.baeldung.hexarch.boostrore.model.Author author1 = new com.baeldung.hexarch.boostrore.model.Author(); author1.setLastName(author.getLastName()); diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/BookController.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/BookController.java index 88269bfbe9..fdcf22e469 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/BookController.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/BookController.java @@ -20,21 +20,14 @@ import java.util.stream.Collectors; public class BookController { private final BookOperations bookOperations; - @PutMapping(value = "/api/v1/books", - consumes = MediaType.APPLICATION_JSON_VALUE) + @PutMapping(value = "/api/v1/books", consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody - private BookResponse createBook( - @RequestBody final CreateBookRequest createBookRequest) { - Set authorEmailSet = createBookRequest.getAuthors() - .stream().map(Author::getEmailId) - .collect(Collectors.toSet()); + private BookResponse createBook(@RequestBody final CreateBookRequest createBookRequest) { + Set authorEmailSet = createBookRequest.getAuthors().stream().map(Author::getEmailId).collect(Collectors.toSet()); - Book book = bookOperations.create(createBookRequest.getIsbn(), - createBookRequest.getTitle(), authorEmailSet); + Book book = bookOperations.create(createBookRequest.getIsbn(), createBookRequest.getTitle(), authorEmailSet); -// book.getAuthors().stream().map() - return BookResponse.builder() - .isbn(book.getIsbn()).title(book.getName()) - .build(); + // book.getAuthors().stream().map() + return BookResponse.builder().isbn(book.getIsbn()).title(book.getName()).build(); } } diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/dto/Author.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/dto/Author.java index 420f8b0c0f..5132ff45c1 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/dto/Author.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/controller/dto/Author.java @@ -1,9 +1,8 @@ package com.baeldung.hexarch.boostrore.controller.dto; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import lombok.*; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Value; @Value @Builder diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/AuthorsOperation.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/AuthorsOperation.java index 7d27cb475d..dfc21cea02 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/AuthorsOperation.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/AuthorsOperation.java @@ -4,8 +4,12 @@ import com.baeldung.hexarch.boostrore.model.Author; public interface AuthorsOperation { Author create(String firstName, String lastName, String emailId); + Author getAuthorByEmailId(final String emailId); + Author get(final long id); + void delete(final String emailId); + void delete(final long id); } diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/AuthorsOperationsImpl.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/AuthorsOperationsImpl.java index 39f2dc9ce5..cc3d8b0b7c 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/AuthorsOperationsImpl.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/AuthorsOperationsImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; @AllArgsConstructor public class AuthorsOperationsImpl implements AuthorsOperation { private final AuthorsRepository authorsRepository; + @Override public Author create(String firstName, String lastName, String emailId) { Author author = new Author(); diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/BookOperations.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/BookOperations.java index 03723e3af5..1d47f7fa28 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/BookOperations.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/BookOperations.java @@ -5,11 +5,12 @@ import com.baeldung.hexarch.boostrore.model.Book; import java.util.Set; - public interface BookOperations { - Book create(final String isbn, final String bookName, - Set authorEmails); + Book create(final String isbn, final String bookName, Set authorEmails); + Book getBookById(final long id); + Book getBookByIsbn(final String isbn); + Set getAuthorsOfBook(final long id); } diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/BookOperationsImpl.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/BookOperationsImpl.java index 84d490907e..b00b285fe1 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/BookOperationsImpl.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/domain/BookOperationsImpl.java @@ -22,13 +22,10 @@ public class BookOperationsImpl implements BookOperations { // if the book with given isbn already exists then let us // throw an error if (booksRepository.findByIsbn(isbn).isPresent()) { - throw new RuntimeException("A Book with ISBN " + isbn - + " already exists"); + throw new RuntimeException("A Book with ISBN " + isbn + " already exists"); } //Ask for the Author objects - Set authorSet = authors.stream() - .map(this::upsetAuthor) - .collect(Collectors.toSet()); + Set authorSet = authors.stream().map(this::upsetAuthor).collect(Collectors.toSet()); // create the book object and associate the authors Book book = new Book(); @@ -62,8 +59,7 @@ public class BookOperationsImpl implements BookOperations { // Check if a author already exists with given email id. if not create the Author // else return the author we found if (byEmailId.isEmpty()) { - throw new RuntimeException("Author not found: email id " - + email); + throw new RuntimeException("Author not found: email id " + email); } return byEmailId.get(); } diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/model/Author.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/model/Author.java index 2e92e265f8..5614a6d868 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/model/Author.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/model/Author.java @@ -9,11 +9,13 @@ import javax.persistence.Id; import javax.persistence.Table; import java.util.Objects; -@Getter @Setter +@Getter +@Setter @Entity(name = "authors") @Table(name = "authors") public class Author { - @Id @GeneratedValue + @Id + @GeneratedValue private long id; private String firstName; private String lastName; @@ -21,8 +23,10 @@ public class Author { @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; Author author = (Author) o; return id == author.id; } diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/model/Book.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/model/Book.java index 54c27c457b..c1c7ba5b61 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/model/Book.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/model/Book.java @@ -3,12 +3,18 @@ package com.baeldung.hexarch.boostrore.model; import lombok.Getter; import lombok.Setter; -import javax.persistence.*; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; import java.util.Objects; import java.util.Set; -@Getter @Setter -@Entity(name = "books") @Table(name = "books") +@Getter +@Setter +@Entity(name = "books") +@Table(name = "books") public class Book { @Id @GeneratedValue @@ -20,8 +26,10 @@ public class Book { @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; Book book = (Book) o; return id == book.id; } diff --git a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/repository/AuthorsRepository.java b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/repository/AuthorsRepository.java index 8fd5c23246..d98d1d5f71 100644 --- a/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/repository/AuthorsRepository.java +++ b/book-store-using-hexagonal-architecture/src/main/java/com/baeldung/hexarch/boostrore/repository/AuthorsRepository.java @@ -9,5 +9,6 @@ import java.util.Optional; @Repository public interface AuthorsRepository extends JpaRepository { Optional findByEmailId(final String emailId); + void deleteByEmailId(final String emailId); }