]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/ListGroupsCommand.java
Use pattern matching switch cases
[signal-cli] / src / main / java / org / asamk / signal / commands / ListGroupsCommand.java
index b22ace6cbc8f51438f1faf91aa9a36cc4fc759c3..eb53516f518375f365a034a6fd380d38239ee152 100644 (file)
@@ -89,34 +89,34 @@ public class ListGroupsCommand implements JsonRpcLocalCommand {
             groups = groups.stream().filter(g -> groupIds.contains(g.groupId())).toList();
         }
 
-        if (outputWriter instanceof JsonWriter jsonWriter) {
-
-            var jsonGroups = groups.stream().map(group -> {
-                final var groupInviteLink = group.groupInviteLinkUrl();
-
-                return new JsonGroup(group.groupId().toBase64(),
-                        group.title(),
-                        group.description(),
-                        group.isMember(),
-                        group.isBlocked(),
-                        group.messageExpirationTimer(),
-                        resolveJsonMembers(group.members()),
-                        resolveJsonMembers(group.pendingMembers()),
-                        resolveJsonMembers(group.requestingMembers()),
-                        resolveJsonMembers(group.adminMembers()),
-                        resolveJsonMembers(group.bannedMembers()),
-                        group.permissionAddMember().name(),
-                        group.permissionEditDetails().name(),
-                        group.permissionSendMessage().name(),
-                        groupInviteLink == null ? null : groupInviteLink.getUrl());
-            }).toList();
-
-            jsonWriter.write(jsonGroups);
-        } else {
-            final var writer = (PlainTextWriter) outputWriter;
-            boolean detailed = Boolean.TRUE.equals(ns.getBoolean("detailed"));
-            for (var group : groups) {
-                printGroupPlainText(writer, group, detailed);
+        switch (outputWriter) {
+            case JsonWriter jsonWriter -> {
+                var jsonGroups = groups.stream().map(group -> {
+                    final var groupInviteLink = group.groupInviteLinkUrl();
+
+                    return new JsonGroup(group.groupId().toBase64(),
+                            group.title(),
+                            group.description(),
+                            group.isMember(),
+                            group.isBlocked(),
+                            group.messageExpirationTimer(),
+                            resolveJsonMembers(group.members()),
+                            resolveJsonMembers(group.pendingMembers()),
+                            resolveJsonMembers(group.requestingMembers()),
+                            resolveJsonMembers(group.adminMembers()),
+                            resolveJsonMembers(group.bannedMembers()),
+                            group.permissionAddMember().name(),
+                            group.permissionEditDetails().name(),
+                            group.permissionSendMessage().name(),
+                            groupInviteLink == null ? null : groupInviteLink.getUrl());
+                }).toList();
+                jsonWriter.write(jsonGroups);
+            }
+            case PlainTextWriter writer -> {
+                boolean detailed = Boolean.TRUE.equals(ns.getBoolean("detailed"));
+                for (var group : groups) {
+                    printGroupPlainText(writer, group, detailed);
+                }
             }
         }
     }