1

Change Lombok annotations to enable Jackson deserializing

This commit is contained in:
Christoph
2020-03-09 15:47:17 +01:00
parent 160e03d9e9
commit 4186e7c09c
7 changed files with 53 additions and 29 deletions

View File

@ -1,14 +1,16 @@
package mops.gruppen2.domain.event;
import lombok.EqualsAndHashCode;
import lombok.Value;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import mops.gruppen2.domain.User;
/**
* Fügt einen einzelnen Nutzer einer Gruppe hinzu.
*/
@EqualsAndHashCode(callSuper = true)
@Value
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class AddUserEvent extends Event {
String givenname;
String familyname;

View File

@ -1,10 +1,12 @@
package mops.gruppen2.domain.event;
import lombok.EqualsAndHashCode;
import lombok.Value;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true)
@Value
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class CreateGroupEvent extends Event {
String groupTitle;
String groupDescription;

View File

@ -1,13 +1,13 @@
package mops.gruppen2.domain.event;
import lombok.EqualsAndHashCode;
import lombok.Value;
import lombok.*;
/**
* Entfernt ein einzelnes Mitglied einer Gruppe.
*/
@EqualsAndHashCode(callSuper = true)
@Value
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class DeleteUserEvent extends Event {
public DeleteUserEvent(long event_id, long group_id, String user_id) {

View File

@ -1,12 +1,28 @@
package mops.gruppen2.domain.event;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import lombok.Value;
import lombok.experimental.NonFinal;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Value
@NonFinal
@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME)
@Getter
@NoArgsConstructor
@AllArgsConstructor
@JsonTypeInfo(
include = JsonTypeInfo.As.PROPERTY,
use = JsonTypeInfo.Id.NAME,
property = "type"
)
@JsonSubTypes({
@JsonSubTypes.Type(value = AddUserEvent.class, name = "AddUserEvent"),
@JsonSubTypes.Type(value = AddUserEvent.class, name = "CreateGroupEvent"),
@JsonSubTypes.Type(value = AddUserEvent.class, name = "DeleteUserEvent"),
@JsonSubTypes.Type(value = AddUserEvent.class, name = "UpdateGroupDescriptionEvent"),
@JsonSubTypes.Type(value = AddUserEvent.class, name = "UpdateGroupTitleEvent"),
@JsonSubTypes.Type(value = AddUserEvent.class, name = "UpdateRoleEvent"),
})
public class Event {
long event_id;
long group_id;

View File

@ -1,13 +1,15 @@
package mops.gruppen2.domain.event;
import lombok.EqualsAndHashCode;
import lombok.Value;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
/**
* Ändert nur die Gruppenbeschreibung.
*/
@EqualsAndHashCode(callSuper = true)
@Value
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class UpdateGroupDescriptionEvent extends Event {
String newGroupDescription;

View File

@ -1,13 +1,15 @@
package mops.gruppen2.domain.event;
import lombok.EqualsAndHashCode;
import lombok.Value;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
/**
* Ändert nur den Gruppentitel.
*/
@EqualsAndHashCode(callSuper = true)
@Value
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class UpdateGroupTitleEvent extends Event {
String newGroupTitle;

View File

@ -1,14 +1,14 @@
package mops.gruppen2.domain.event;
import lombok.EqualsAndHashCode;
import lombok.Value;
import lombok.*;
import mops.gruppen2.domain.Role;
/**
* Aktualisiert die Gruppenrolle eines Teilnehmers.
*/
@EqualsAndHashCode(callSuper = true)
@Value
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class UpdateRoleEvent extends Event {
Role newRole;