fd7d73aa3bbaf7e81631a0d4fd2a23e4782109f2
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chatroom / domain / Chatroom.java
1 package de.juplo.kafka.chatroom.domain;
2
3 import lombok.Getter;
4 import lombok.RequiredArgsConstructor;
5
6 import java.time.LocalDateTime;
7 import java.util.LinkedList;
8 import java.util.List;
9 import java.util.UUID;
10 import java.util.stream.Stream;
11
12
13 @RequiredArgsConstructor
14 public class Chatroom
15 {
16   @Getter
17   private final UUID id;
18   @Getter
19   private final String name;
20   private final List<Message> messages = new LinkedList<>();
21
22   synchronized public Message addMessage(
23       UUID id,
24       LocalDateTime timestamp,
25       String user,
26       String text)
27   {
28     Message message = new Message(id, (long)messages.size(), timestamp, user, text);
29     messages.add(message);
30     return message;
31   }
32
33   public Stream<Message> getMessages(long firstMessage)
34   {
35     return messages.stream().filter(message -> message.getSerialNumber() >= firstMessage);
36   }
37 }