slight changes to package structure + naming
This commit is contained in:
4
src/main/java/mops/gruppen2/domain/Admin.java
Normal file
4
src/main/java/mops/gruppen2/domain/Admin.java
Normal file
@ -0,0 +1,4 @@
|
||||
package mops.gruppen2.domain;
|
||||
|
||||
public class Admin extends Role {
|
||||
}
|
||||
23
src/main/java/mops/gruppen2/domain/Aggregate.java
Normal file
23
src/main/java/mops/gruppen2/domain/Aggregate.java
Normal file
@ -0,0 +1,23 @@
|
||||
package mops.gruppen2.domain;
|
||||
|
||||
import mops.gruppen2.domain.event.Event;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public abstract class Aggregate {
|
||||
|
||||
/**
|
||||
* Ruft die spezifische applyEvent-Methode im entsprechenden Aggregat auf.
|
||||
*
|
||||
* @param event
|
||||
*/
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
69
src/main/java/mops/gruppen2/domain/Group.java
Normal file
69
src/main/java/mops/gruppen2/domain/Group.java
Normal file
@ -0,0 +1,69 @@
|
||||
package mops.gruppen2.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import mops.gruppen2.domain.event.*;
|
||||
import mops.gruppen2.domain.event.AddUserEvent;
|
||||
import mops.gruppen2.domain.event.CreateGroupEvent;
|
||||
import mops.gruppen2.domain.event.UpdateGroupDescriptionEvent;
|
||||
import mops.gruppen2.domain.event.UpdateGroupTitleEvent;
|
||||
import mops.gruppen2.domain.event.DeleteUserEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@EqualsAndHashCode(callSuper=false)
|
||||
@Data
|
||||
public class Group extends Aggregate {
|
||||
long id;
|
||||
String titel;
|
||||
String beschreibung;
|
||||
List<User> teilnehmersList;
|
||||
Map<User, Role> rollenList;
|
||||
|
||||
public void applyEvent(CreateGroupEvent event){
|
||||
this.id = event.getGruppe_id();
|
||||
this.titel = event.getTitel();
|
||||
this.beschreibung = event.getBeschreibung();
|
||||
this.teilnehmersList = new ArrayList<>();
|
||||
this.rollenList = new HashMap<>();
|
||||
}
|
||||
|
||||
public void applyEvent(UpdateRoleEvent event) {
|
||||
teilnehmersList.stream()
|
||||
.filter(user -> user.getId().equals(event.getUser_id()))
|
||||
.findFirst()
|
||||
.ifPresentOrElse(user -> rollenList.put(user, event.getRole()),
|
||||
() -> System.out.println("UserNotFoundException"));
|
||||
}
|
||||
|
||||
public void applyEvent(AddUserEvent event){
|
||||
User user = new User();
|
||||
|
||||
user.setId(event.getUser_id());
|
||||
user.setVorname(event.getVorname());
|
||||
user.setNachname(event.getNachname());
|
||||
user.setEmail(event.getEmail());
|
||||
|
||||
this.teilnehmersList.add(user);
|
||||
}
|
||||
|
||||
public void applyEvent(UpdateGroupTitleEvent event) {
|
||||
this.titel = event.getTitel();
|
||||
}
|
||||
|
||||
public void applyEvent(UpdateGroupDescriptionEvent event) {
|
||||
this.beschreibung = event.getBeschreibung();
|
||||
}
|
||||
|
||||
public void applyEvent(DeleteUserEvent event) {
|
||||
for (User user : teilnehmersList) {
|
||||
if (user.getId().equals(event.getUser_id())) {
|
||||
this.teilnehmersList.remove(user);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4
src/main/java/mops/gruppen2/domain/Org.java
Normal file
4
src/main/java/mops/gruppen2/domain/Org.java
Normal file
@ -0,0 +1,4 @@
|
||||
package mops.gruppen2.domain;
|
||||
|
||||
public class Org extends Role {
|
||||
}
|
||||
5
src/main/java/mops/gruppen2/domain/Role.java
Normal file
5
src/main/java/mops/gruppen2/domain/Role.java
Normal file
@ -0,0 +1,5 @@
|
||||
package mops.gruppen2.domain;
|
||||
|
||||
public class Role {
|
||||
|
||||
}
|
||||
14
src/main/java/mops/gruppen2/domain/User.java
Normal file
14
src/main/java/mops/gruppen2/domain/User.java
Normal file
@ -0,0 +1,14 @@
|
||||
package mops.gruppen2.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class User {
|
||||
String id;
|
||||
String vorname;
|
||||
String nachname;
|
||||
String email;
|
||||
List<Group> gruppen;
|
||||
}
|
||||
15
src/main/java/mops/gruppen2/domain/event/AddUserEvent.java
Normal file
15
src/main/java/mops/gruppen2/domain/event/AddUserEvent.java
Normal file
@ -0,0 +1,15 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public class AddUserEvent extends Event{
|
||||
String vorname, nachname, email;
|
||||
|
||||
public AddUserEvent(long id, long gruppe_id, String user_id, String vorname, String nachname, String email) {
|
||||
super(id, gruppe_id, user_id);
|
||||
this.vorname = vorname;
|
||||
this.nachname = nachname;
|
||||
this.email = email;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public class CreateGroupEvent extends Event {
|
||||
String titel;
|
||||
String beschreibung;
|
||||
|
||||
public CreateGroupEvent(long id, long gruppe_id, String user_id, String titel, String beschreibung) {
|
||||
super(id, gruppe_id, user_id);
|
||||
this.titel = titel;
|
||||
this.beschreibung = beschreibung;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public class DeleteUserEvent extends Event{
|
||||
|
||||
public DeleteUserEvent(long id, long gruppe_id, String user_id) {
|
||||
super(id, gruppe_id, user_id);
|
||||
}
|
||||
}
|
||||
12
src/main/java/mops/gruppen2/domain/event/Event.java
Normal file
12
src/main/java/mops/gruppen2/domain/event/Event.java
Normal file
@ -0,0 +1,12 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public class Event {
|
||||
long id;
|
||||
long gruppe_id;
|
||||
String user_id;
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public class UpdateGroupDescriptionEvent extends Event {
|
||||
String beschreibung;
|
||||
|
||||
public UpdateGroupDescriptionEvent(long id, long gruppe_id, String user_id, String beschreibung) {
|
||||
super(id, gruppe_id, user_id);
|
||||
this.beschreibung = beschreibung;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public class UpdateGroupTitleEvent extends Event {
|
||||
String titel;
|
||||
|
||||
public UpdateGroupTitleEvent(long id, long gruppe_id, String user_id, String titel) {
|
||||
super(id, gruppe_id, user_id);
|
||||
this.titel = titel;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.Getter;
|
||||
import mops.gruppen2.domain.Role;
|
||||
|
||||
@Getter
|
||||
public class UpdateRoleEvent extends Event {
|
||||
|
||||
private final Role role;
|
||||
|
||||
public UpdateRoleEvent(long id, long gruppe_id, String user_id, Role newRole) {
|
||||
super(id, gruppe_id, user_id);
|
||||
|
||||
this.role = newRole;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user