From 1ddfab009169539df3a1fdc077eacc645093fd3f Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 6 Mar 2020 14:40:55 +0100 Subject: [PATCH] rename events package, add aggregat superclass --- .../mops/gruppen2/Events/CreateGroupEvent.java | 17 ----------------- src/main/java/mops/gruppen2/Events/Event.java | 15 --------------- .../java/mops/gruppen2/entities/Aggregat.java | 18 ++++++++++++++++++ .../java/mops/gruppen2/entities/Gruppe.java | 14 +++----------- .../mops/gruppen2/events/CreateGroupEvent.java | 15 +++++++++++++++ src/main/java/mops/gruppen2/events/Event.java | 12 ++++++++++++ .../gruppen2/repositories/EventRepository.java | 2 +- .../mops/gruppen2/services/GruppenService.java | 5 ++--- .../services/SerializationService.java | 10 ++++++++++ 9 files changed, 61 insertions(+), 47 deletions(-) delete mode 100644 src/main/java/mops/gruppen2/Events/CreateGroupEvent.java delete mode 100644 src/main/java/mops/gruppen2/Events/Event.java create mode 100644 src/main/java/mops/gruppen2/entities/Aggregat.java create mode 100644 src/main/java/mops/gruppen2/events/CreateGroupEvent.java create mode 100644 src/main/java/mops/gruppen2/events/Event.java create mode 100644 src/main/java/mops/gruppen2/services/SerializationService.java diff --git a/src/main/java/mops/gruppen2/Events/CreateGroupEvent.java b/src/main/java/mops/gruppen2/Events/CreateGroupEvent.java deleted file mode 100644 index 06d432d..0000000 --- a/src/main/java/mops/gruppen2/Events/CreateGroupEvent.java +++ /dev/null @@ -1,17 +0,0 @@ -package mops.gruppen2.Events; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.Getter; - -@Getter -public class CreateGroupEvent extends Event{ - String titel; - String beschreibung; - - public CreateGroupEvent(Long id, Long gruppe_id, Long user_id, String titel,String beschreibung) { - super(id, gruppe_id, user_id); - this.titel = titel; - this.beschreibung = beschreibung; - } -} diff --git a/src/main/java/mops/gruppen2/Events/Event.java b/src/main/java/mops/gruppen2/Events/Event.java deleted file mode 100644 index 203f08f..0000000 --- a/src/main/java/mops/gruppen2/Events/Event.java +++ /dev/null @@ -1,15 +0,0 @@ -package mops.gruppen2.Events; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import org.springframework.data.annotation.Id; - -@Getter -@AllArgsConstructor -public class Event { - @Id - Long id; - Long gruppe_id; - Long user_id; - -} diff --git a/src/main/java/mops/gruppen2/entities/Aggregat.java b/src/main/java/mops/gruppen2/entities/Aggregat.java new file mode 100644 index 0000000..8322852 --- /dev/null +++ b/src/main/java/mops/gruppen2/entities/Aggregat.java @@ -0,0 +1,18 @@ +package mops.gruppen2.entities; + +import mops.gruppen2.events.Event; + +import java.lang.reflect.Method; + +public abstract class Aggregat { + + public void applyEvent(Event event) { + try { + Method method = this.getClass().getDeclaredMethod("applyEvent", event.getClass()); + method.setAccessible(true); + method.invoke(this, event); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/mops/gruppen2/entities/Gruppe.java b/src/main/java/mops/gruppen2/entities/Gruppe.java index 33f163d..19369b2 100644 --- a/src/main/java/mops/gruppen2/entities/Gruppe.java +++ b/src/main/java/mops/gruppen2/entities/Gruppe.java @@ -1,29 +1,21 @@ package mops.gruppen2.entities; import lombok.Data; -import mops.gruppen2.Events.CreateGroupEvent; -import mops.gruppen2.Events.Event; -import org.springframework.data.annotation.Id; +import mops.gruppen2.events.CreateGroupEvent; import java.util.List; @Data -public class Gruppe { - @Id - Long id; +public class Gruppe extends Aggregat { + long id; String titel; String beschreibung; List teilnehmersList; - public void applyEvent(Event event){ - - } - public void applyEvent(CreateGroupEvent event){ this.id = event.getId(); this.titel = event.getTitel(); this.beschreibung = event.getBeschreibung(); this.teilnehmersList= null; } - } diff --git a/src/main/java/mops/gruppen2/events/CreateGroupEvent.java b/src/main/java/mops/gruppen2/events/CreateGroupEvent.java new file mode 100644 index 0000000..8b2758c --- /dev/null +++ b/src/main/java/mops/gruppen2/events/CreateGroupEvent.java @@ -0,0 +1,15 @@ +package mops.gruppen2.events; + +import lombok.Getter; + +@Getter +public class CreateGroupEvent extends Event { + String titel; + String beschreibung; + + public CreateGroupEvent(long id, long gruppe_id, long user_id, String titel, String beschreibung) { + super(id, gruppe_id, user_id); + this.titel = titel; + this.beschreibung = beschreibung; + } +} diff --git a/src/main/java/mops/gruppen2/events/Event.java b/src/main/java/mops/gruppen2/events/Event.java new file mode 100644 index 0000000..3ceb3cd --- /dev/null +++ b/src/main/java/mops/gruppen2/events/Event.java @@ -0,0 +1,12 @@ +package mops.gruppen2.events; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class Event { + long id; + long gruppe_id; + long user_id; +} diff --git a/src/main/java/mops/gruppen2/repositories/EventRepository.java b/src/main/java/mops/gruppen2/repositories/EventRepository.java index 9a8d872..a3b329d 100644 --- a/src/main/java/mops/gruppen2/repositories/EventRepository.java +++ b/src/main/java/mops/gruppen2/repositories/EventRepository.java @@ -1,6 +1,6 @@ package mops.gruppen2.repositories; -import mops.gruppen2.Events.Event; +import mops.gruppen2.events.Event; import org.springframework.data.repository.CrudRepository; public interface EventRepository extends CrudRepository { diff --git a/src/main/java/mops/gruppen2/services/GruppenService.java b/src/main/java/mops/gruppen2/services/GruppenService.java index 2c67671..8807ee3 100644 --- a/src/main/java/mops/gruppen2/services/GruppenService.java +++ b/src/main/java/mops/gruppen2/services/GruppenService.java @@ -1,9 +1,8 @@ package mops.gruppen2.services; -import mops.gruppen2.Events.CreateGroupEvent; -import mops.gruppen2.Events.Event; +import mops.gruppen2.events.CreateGroupEvent; +import mops.gruppen2.events.Event; import mops.gruppen2.entities.Gruppe; -import mops.gruppen2.repositories.EventRepository; import org.springframework.stereotype.Service; import java.util.ArrayList; diff --git a/src/main/java/mops/gruppen2/services/SerializationService.java b/src/main/java/mops/gruppen2/services/SerializationService.java new file mode 100644 index 0000000..b8de09a --- /dev/null +++ b/src/main/java/mops/gruppen2/services/SerializationService.java @@ -0,0 +1,10 @@ +package mops.gruppen2.services; + +import org.springframework.stereotype.Service; + +/** + * Übersetzt und baut + */ +@Service +public class SerializationService { +}