diff options
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.java | 21 |
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); } |