refactor: Moved exceptions into package `exceptions` - Aligned Code
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / domain / exceptions / UnknownChatroomException.java
1 package de.juplo.kafka.chat.backend.domain.exceptions;
2
3 import lombok.Getter;
4
5 import java.util.Arrays;
6 import java.util.Optional;
7 import java.util.UUID;
8 import java.util.stream.Collectors;
9
10
11 public class UnknownChatroomException extends IllegalStateException
12 {
13   @Getter
14   private final UUID chatroomId;
15   @Getter
16   private final Optional<Integer> shard;
17   @Getter
18   private final Optional<int[]> ownedShards;
19
20   public UnknownChatroomException(UUID chatroomId)
21   {
22     super("Chatroom does not exist: " + chatroomId);
23     this.chatroomId = chatroomId;
24     this.shard = Optional.empty();
25     this.ownedShards = Optional.empty();
26   }
27
28   public UnknownChatroomException(UUID chatroomId, int shard, int[] ownedShards)
29   {
30     super(
31         "Chatroom does not exist (here): " +
32         chatroomId +
33         " shard=" +
34         shard +
35         ", owned=" +
36         Arrays
37             .stream(ownedShards)
38             .mapToObj(ownedShard -> Integer.toString(ownedShard))
39             .collect(Collectors.joining(",")));
40     this.chatroomId = chatroomId;
41     this.shard = Optional.of(shard);
42     this.ownedShards = Optional.of(ownedShards);
43   }
44 }