You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/10/06 17:45:30 UTC
[isis-app-demo] 02/19: adds subscriber for Pets to cascade delete
if PetOwner is deleted
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/isis-app-demo.git
commit 47726c7e93ad07e7f2984d929d4068a00d8a6078
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 5 18:31:06 2021 +0100
adds subscriber for Pets to cascade delete if PetOwner is deleted
---
.../pets/dom/pet/PetOwnerForPetsSubscriber.java | 31 ++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/module-pets/src/main/java/petclinic/modules/pets/dom/pet/PetOwnerForPetsSubscriber.java b/module-pets/src/main/java/petclinic/modules/pets/dom/pet/PetOwnerForPetsSubscriber.java
new file mode 100644
index 0000000..1c94b98
--- /dev/null
+++ b/module-pets/src/main/java/petclinic/modules/pets/dom/pet/PetOwnerForPetsSubscriber.java
@@ -0,0 +1,31 @@
+package petclinic.modules.pets.dom.pet;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.services.repository.RepositoryService;
+
+import petclinic.modules.pets.dom.petowner.PetOwner;
+import petclinic.modules.pets.dom.petowner.PetOwner_delete;
+
+@Service
+public class PetOwnerForPetsSubscriber {
+
+ @EventListener(PetOwner_delete.ActionEvent.class)
+ public void on(PetOwner_delete.ActionEvent ev) {
+ switch(ev.getEventPhase()) {
+ case EXECUTING:
+ PetOwner petOwner = ev.getSubject();
+ List<Pet> pets = petRepository.findByPetOwner(petOwner);
+ pets.forEach(repositoryService::remove);
+ break;
+ }
+ }
+
+ @Inject PetRepository petRepository;
+ @Inject RepositoryService repositoryService;
+}