♻️ Extract method to create JSON object for window
authorDavid Roden <github-a8in@qsheltier.de>
Sun, 26 Jan 2025 20:58:30 +0000 (21:58 +0100)
committerDavid Roden <github-a8in@qsheltier.de>
Sun, 26 Jan 2025 20:58:30 +0000 (21:58 +0100)
server/src/main/java/de/qsheltier/msta/Server.java

index bd7fd3f..f64c852 100644 (file)
@@ -135,7 +135,7 @@ public class Server implements Closeable {
                        var newWindows = currentlyOpenWindows.stream().filter(window -> !windows.containsValue(window)).toList();
                        newWindows.forEach(newWindow -> {
                                synchronized (outputWriters) {
-                                       outputWriters.forEach(writeLine -> writeLine.accept(createEvent("window-opened", objectMapper.createObjectNode().put("id", newWindow.getName()).put("is-frame", newWindow instanceof Frame))));
+                                       outputWriters.forEach(writeLine -> writeLine.accept(createEvent("window-opened", getWindowObject(newWindow))));
                                }
                                windows.put(newWindow.getName(), newWindow);
                        });
@@ -170,7 +170,7 @@ public class Server implements Closeable {
                                        if (words.getFirst().equalsIgnoreCase("info") && (words.size() == 3) && words.get(1).equalsIgnoreCase("window")) {
                                                var windowName = words.get(2);
                                                stream(Window.getWindows()).filter(window -> window.getName().equals(windowName))
-                                                               .forEach(window -> writeLine.accept(createMessage(objectMapper.createObjectNode().put("info", "window").put("id", window.getName()))));
+                                                               .forEach(window -> writeLine.accept(createMessage(getWindowObject(window).put("info", "window"))));
                                        }
                                }
                        } finally {
@@ -181,6 +181,13 @@ public class Server implements Closeable {
                }
        }
 
+       private ObjectNode getWindowObject(Window window) {
+               var windowNode = objectMapper.createObjectNode();
+               windowNode.put("id", window.getName());
+               windowNode.put("is-frame", window instanceof Frame);
+               return windowNode;
+       }
+
        private String createEvent(String name, ObjectNode parameters) {
                parameters.put("event", name);
                return createMessage(parameters);