57 lines
1.5 KiB
Java
57 lines
1.5 KiB
Java
package mops.gruppen2.domain.event;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Value;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import mops.gruppen2.domain.exception.BadArgumentException;
|
|
import mops.gruppen2.domain.model.group.Group;
|
|
import mops.gruppen2.infrastructure.GroupCache;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.UUID;
|
|
|
|
@Log4j2
|
|
@Value
|
|
@AllArgsConstructor// Value generiert den allArgsConstrucot nur, wenn keiner explizit angegeben ist
|
|
public class CreateGroupEvent extends Event {
|
|
|
|
@JsonProperty("date")
|
|
LocalDateTime date;
|
|
|
|
public CreateGroupEvent(UUID groupId, String exec, LocalDateTime date) {
|
|
super(groupId, exec, null);
|
|
this.date = date;
|
|
}
|
|
|
|
@Override
|
|
protected void updateCache(GroupCache cache, Group group) {
|
|
cache.groupsPut(groupid, group);
|
|
cache.linksPut(group.getLink(), group);
|
|
}
|
|
|
|
@Override
|
|
protected void applyEvent(Group group) throws BadArgumentException {
|
|
group.setId(groupid);
|
|
group.setCreator(exec);
|
|
group.setCreationDate(date);
|
|
|
|
log.trace("\t\t\t\t\tNeue Gruppe: {}", group.toString());
|
|
}
|
|
|
|
@Override
|
|
public String format() {
|
|
return "Gruppe erstellt.";
|
|
}
|
|
|
|
@Override
|
|
public String type() {
|
|
return EventType.CREATEGROUP.toString();
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "(" + version + "," + groupid + "," + date + ")";
|
|
}
|
|
}
|