1
Files
lecture-professional-softwa…/src/main/java/mops/gruppen2/domain/event/KickMemberEvent.java
2020-04-17 14:55:43 +02:00

47 lines
1.1 KiB
Java

package mops.gruppen2.domain.event;
import lombok.AllArgsConstructor;
import lombok.Value;
import lombok.extern.log4j.Log4j2;
import mops.gruppen2.domain.exception.LastAdminException;
import mops.gruppen2.domain.exception.UserNotFoundException;
import mops.gruppen2.domain.model.group.Group;
import mops.gruppen2.infrastructure.GroupCache;
import java.util.UUID;
/**
* Entfernt ein einzelnes Mitglied einer Gruppe.
*/
@Log4j2
@Value
@AllArgsConstructor
public class KickMemberEvent extends Event {
public KickMemberEvent(UUID groupId, String exec, String target) {
super(groupId, exec, target);
}
@Override
protected void updateCache(GroupCache cache, Group group) {
cache.usersRemove(target, group);
}
@Override
protected void applyEvent(Group group) throws UserNotFoundException, LastAdminException {
group.kickMember(target);
log.trace("\t\t\t\t\tNeue Members: {}", group.getMembers());
}
@Override
public String format() {
return "Mitglied entfernt: " + target + ".";
}
@Override
public String type() {
return EventType.KICKMEMBER.toString();
}
}