+ switch (value) {
+ case "enabled":
+ return GroupLinkState.ENABLED;
+ case "enabled-with-approval":
+ case "enabledWithApproval":
+ return GroupLinkState.ENABLED_WITH_APPROVAL;
+ case "disabled":
+ return GroupLinkState.DISABLED;
+ default:
+ throw new UserErrorException("Invalid group link state: " + value);
+ }
+ }
+
+ GroupPermission getGroupPermission(String value) throws UserErrorException {
+ if (value == null) {
+ return null;
+ }
+ switch (value) {
+ case "every-member":
+ case "everyMember":
+ return GroupPermission.EVERY_MEMBER;
+ case "only-admins":
+ case "onlyAdmins":
+ return GroupPermission.ONLY_ADMINS;
+ default:
+ throw new UserErrorException("Invalid group permission: " + value);
+ }
+ }
+
+ @Override
+ public void handleCommand(
+ final Namespace ns, final Manager m, final OutputWriter outputWriter
+ ) throws CommandException {
+ final var groupIdString = ns.getString("group-id");
+ var groupId = CommandUtil.getGroupId(groupIdString);
+
+ final var localNumber = m.getSelfNumber();