refactor: DRY for computation of new `ChatRoomData` instances
authorKai Moritz <kai@juplo.de>
Fri, 15 Sep 2023 19:38:34 +0000 (21:38 +0200)
committerKai Moritz <kai@juplo.de>
Fri, 15 Sep 2023 19:38:34 +0000 (21:38 +0200)
src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/DataChannel.java

index 181f7bf..da90663 100644 (file)
@@ -245,14 +245,9 @@ public class DataChannel implements Runnable, ConsumerRebalanceListener
     Message.MessageKey key = Message.MessageKey.of(chatMessageTo.getUser(), chatMessageTo.getId());
     Message message = new Message(key, offset, timestamp, chatMessageTo.getText());
 
-    ChatRoomData chatRoomData = this.chatRoomData[partition].computeIfAbsent(
-        chatRoomId,
-        (id) ->
-        {
-          log.info("Creating ChatRoom {} with buffer-size {}", id, bufferSize);
-          KafkaChatMessageService service = new KafkaChatMessageService(this, id);
-          return new ChatRoomData(clock, service, bufferSize);
-        });
+    ChatRoomData chatRoomData = this
+        .chatRoomData[partition]
+        .computeIfAbsent(chatRoomId, this::computeChatRoomData);
     KafkaChatMessageService kafkaChatRoomService =
         (KafkaChatMessageService) chatRoomData.getChatRoomService();
 
@@ -299,18 +294,14 @@ public class DataChannel implements Runnable, ConsumerRebalanceListener
 
     return infoChannel
         .getChatRoomInfo(id)
-        .map(chatRoomInfo -> chatRoomData[shard].computeIfAbsent(
-            id,
-            computeChatRoomData()));
+        .map(chatRoomInfo ->
+            chatRoomData[shard].computeIfAbsent(id, this::computeChatRoomData));
   }
 
-  private Function<UUID, ChatRoomData> computeChatRoomData()
+  private ChatRoomData computeChatRoomData(UUID chatRoomId)
   {
-    return (chatRoomId) ->
-    {
-      log.info("Creating ChatRoom {} with buffer-size {}", chatRoomId, bufferSize);
-      KafkaChatMessageService service = new KafkaChatMessageService(this, chatRoomId);
-      return new ChatRoomData(clock, service, bufferSize);
-    };
+    log.info("Creating ChatRoom {} with buffer-size {}", chatRoomId, bufferSize);
+    KafkaChatMessageService service = new KafkaChatMessageService(this, chatRoomId);
+    return new ChatRoomData(clock, service, bufferSize);
   }
 }