From 8adec160257da93688e990eca1bb02ba0c4f17cb Mon Sep 17 00:00:00 2001 From: VictoriaPresnyakova Date: Sun, 23 Apr 2023 22:12:56 +0400 Subject: [PATCH] lab 4 ComponentService --- .../service/ComponentNotFoundException.java | 7 ++++ .../repair/service/ComponentService.java | 36 +++++++++++-------- .../service/FavorNotFoundException.java | 7 ++++ .../service/OrderNotFoundException.java | 7 ++++ 4 files changed, 43 insertions(+), 14 deletions(-) create mode 100644 src/main/java/ru/ulstu/is/sbapp/repair/service/ComponentNotFoundException.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/repair/service/FavorNotFoundException.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/repair/service/OrderNotFoundException.java diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/service/ComponentNotFoundException.java b/src/main/java/ru/ulstu/is/sbapp/repair/service/ComponentNotFoundException.java new file mode 100644 index 0000000..f5dc9a5 --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/repair/service/ComponentNotFoundException.java @@ -0,0 +1,7 @@ +package ru.ulstu.is.sbapp.repair.service; + +public class ComponentNotFoundException extends RuntimeException{ + public ComponentNotFoundException(Long id) { + super(String.format("Component with id [%s] is not found", id)); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/service/ComponentService.java b/src/main/java/ru/ulstu/is/sbapp/repair/service/ComponentService.java index 74d360d..7e1963b 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/service/ComponentService.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/service/ComponentService.java @@ -3,21 +3,32 @@ package ru.ulstu.is.sbapp.repair.service; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import ru.ulstu.is.sbapp.repair.model.Component; +import ru.ulstu.is.sbapp.repair.repository.ComponentRepository; +import ru.ulstu.is.sbapp.repair.util.validation.ValidatorUtil; import javax.persistence.EntityManager; import javax.persistence.EntityNotFoundException; import javax.persistence.PersistenceContext; import java.util.ArrayList; import java.util.List; +import java.util.Optional; @Service public class ComponentService { - @PersistenceContext - private EntityManager em; + @Autowired + private final ComponentRepository componentRepository; + @Autowired + private final ValidatorUtil validatorUtil; + + public ComponentService(ComponentRepository componentRepository, ValidatorUtil validatorUtil) { + this.componentRepository = componentRepository; + this.validatorUtil = validatorUtil; + } @Transactional public Component addComponent(String componentName, Integer amount) { @@ -25,23 +36,19 @@ public class ComponentService { throw new IllegalArgumentException("Component is null or empty"); } final Component component = new Component(componentName, amount); - em.persist(component); - return component; + validatorUtil.validate(component); + return componentRepository.save(component); } @Transactional(readOnly = true) public Component findComponent(Long id) { - final Component component = em.find(Component.class, id); - if (component == null) { - throw new EntityNotFoundException(String.format("Component with id [%s] is not found", id)); - } - return component; + final Optional component = componentRepository.findById(id); + return component.orElseThrow(() -> new ComponentNotFoundException(id)); } @Transactional(readOnly = true) public List findAllComponent() { - return em.createQuery("select c from Component c", Component.class) - .getResultList(); + return componentRepository.findAll(); } @Transactional @@ -52,17 +59,18 @@ public class ComponentService { final Component currentComponent = findComponent(id); currentComponent.setComponentName(componentName); currentComponent.setAmount(amount); - return em.merge(currentComponent); + validatorUtil.validate(currentComponent); + return componentRepository.save(currentComponent); } @Transactional public Component deleteComponent(Long id) { final Component currentComponent = findComponent(id); - em.remove(currentComponent); + componentRepository.delete(currentComponent); return currentComponent; } @Transactional public void deleteAllComponent() { - em.createQuery("delete from Component").executeUpdate(); + componentRepository.deleteAll(); } } diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/service/FavorNotFoundException.java b/src/main/java/ru/ulstu/is/sbapp/repair/service/FavorNotFoundException.java new file mode 100644 index 0000000..6caab54 --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/repair/service/FavorNotFoundException.java @@ -0,0 +1,7 @@ +package ru.ulstu.is.sbapp.repair.service; + +public class FavorNotFoundException extends RuntimeException{ + public FavorNotFoundException(Long id) { + super(String.format("Favor with id [%s] is not found", id)); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/service/OrderNotFoundException.java b/src/main/java/ru/ulstu/is/sbapp/repair/service/OrderNotFoundException.java new file mode 100644 index 0000000..b8ed4d0 --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/repair/service/OrderNotFoundException.java @@ -0,0 +1,7 @@ +package ru.ulstu.is.sbapp.repair.service; + +public class OrderNotFoundException extends RuntimeException{ + public OrderNotFoundException(Long id) { + super(String.format("Order with id [%s] is not found", id)); + } +}