summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupCache.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/account/GroupCache.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/account/GroupCache.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupCache.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupCache.java
index 978d9c2a90..b092ac4162 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupCache.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupCache.java
@@ -14,19 +14,36 @@
package com.google.gerrit.server.account;
-import com.google.gerrit.reviewdb.AccountGroup;
+import com.google.gerrit.reviewdb.client.AccountGroup;
import java.util.Collection;
+import javax.annotation.Nullable;
+
/** Tracks group objects in memory for efficient access. */
public interface GroupCache {
public AccountGroup get(AccountGroup.Id groupId);
public AccountGroup get(AccountGroup.NameKey name);
+ /**
+ * Lookup a group definition by its UUID. The returned definition may be null
+ * if the group has been deleted and the UUID reference is stale, or was
+ * copied from another server.
+ */
+ @Nullable
+ public AccountGroup get(AccountGroup.UUID uuid);
+
public Collection<AccountGroup> get(AccountGroup.ExternalNameKey externalName);
+ /** @return sorted iteration of groups. */
+ public abstract Iterable<AccountGroup> all();
+
+ /** Notify the cache that a new group was constructed. */
+ public void onCreateGroup(AccountGroup.NameKey newGroupName);
+
public void evict(AccountGroup group);
- public void evictAfterRename(AccountGroup.NameKey oldName);
+ public void evictAfterRename(final AccountGroup.NameKey oldName,
+ final AccountGroup.NameKey newName);
}