summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/group/ListSubgroups.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/group/ListSubgroups.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/group/ListSubgroups.java88
1 files changed, 0 insertions, 88 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/ListSubgroups.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/ListSubgroups.java
deleted file mode 100644
index 70eefe798d..0000000000
--- a/gerrit-server/src/main/java/com/google/gerrit/server/group/ListSubgroups.java
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (C) 2013 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.server.group;
-
-import static com.google.common.base.Strings.nullToEmpty;
-
-import com.google.gerrit.common.data.GroupDescription;
-import com.google.gerrit.common.errors.NoSuchGroupException;
-import com.google.gerrit.extensions.common.GroupInfo;
-import com.google.gerrit.extensions.restapi.MethodNotAllowedException;
-import com.google.gerrit.extensions.restapi.RestReadView;
-import com.google.gerrit.reviewdb.client.AccountGroup;
-import com.google.gerrit.server.account.GroupControl;
-import com.google.gerrit.server.account.GroupIncludeCache;
-import com.google.gwtorm.server.OrmException;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Singleton
-public class ListSubgroups implements RestReadView<GroupResource> {
- private static final Logger log = LoggerFactory.getLogger(ListSubgroups.class);
-
- private final GroupControl.Factory controlFactory;
- private final GroupIncludeCache groupIncludeCache;
- private final GroupJson json;
-
- @Inject
- ListSubgroups(
- GroupControl.Factory controlFactory, GroupIncludeCache groupIncludeCache, GroupJson json) {
- this.controlFactory = controlFactory;
- this.groupIncludeCache = groupIncludeCache;
- this.json = json;
- }
-
- @Override
- public List<GroupInfo> apply(GroupResource rsrc) throws MethodNotAllowedException, OrmException {
- GroupDescription.Internal group =
- rsrc.asInternalGroup().orElseThrow(MethodNotAllowedException::new);
-
- boolean ownerOfParent = rsrc.getControl().isOwner();
- List<GroupInfo> included = new ArrayList<>();
- Collection<AccountGroup.UUID> subgroupUuids =
- groupIncludeCache.subgroupsOf(group.getGroupUUID());
- for (AccountGroup.UUID subgroupUuid : subgroupUuids) {
- try {
- GroupControl i = controlFactory.controlFor(subgroupUuid);
- if (ownerOfParent || i.isVisible()) {
- included.add(json.format(i.getGroup()));
- }
- } catch (NoSuchGroupException notFound) {
- log.warn("Group {} no longer available, subgroup of {}", subgroupUuid, group.getName());
- continue;
- }
- }
- Collections.sort(
- included,
- new Comparator<GroupInfo>() {
- @Override
- public int compare(GroupInfo a, GroupInfo b) {
- int cmp = nullToEmpty(a.name).compareTo(nullToEmpty(b.name));
- if (cmp != 0) {
- return cmp;
- }
- return nullToEmpty(a.id).compareTo(nullToEmpty(b.id));
- }
- });
- return included;
- }
-}