feat: The size buffer for listeners to a chatroom is configurable
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / persistence / InMemoryChatroomFactory.java
1 package de.juplo.kafka.chat.backend.persistence;
2
3 import de.juplo.kafka.chat.backend.domain.Chatroom;
4 import de.juplo.kafka.chat.backend.domain.ChatroomFactory;
5 import lombok.RequiredArgsConstructor;
6
7 import java.util.LinkedHashMap;
8 import java.util.UUID;
9
10
11 @RequiredArgsConstructor
12 public class InMemoryChatroomFactory implements ChatroomFactory<InMemoryPersistenceStrategy>
13 {
14   private final int bufferSize;
15
16
17   @Override
18   public Chatroom createChatroom(UUID id, String name)
19   {
20     InMemoryPersistenceStrategy persistenceStrategy =
21         new InMemoryPersistenceStrategy(new LinkedHashMap<>());
22     return new Chatroom(id, name, persistenceStrategy, bufferSize);
23   }
24
25   @Override
26   public Chatroom restoreChatroom(
27       UUID id,
28       String name,
29       InMemoryPersistenceStrategy persistenceStrategy)
30   {
31     return new Chatroom(id, name, persistenceStrategy, bufferSize);
32   }
33 }