Package com.google.gerrit.server.account
Interface GroupCache
- All Known Implementing Classes:
GroupCacheImpl
public interface GroupCache
Tracks group objects in memory for efficient access.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
evict
(AccountGroup.Id groupId) Removes the association of the given ID with a group.void
evict
(AccountGroup.NameKey groupName) Removes the association of the given name with a group.void
evict
(AccountGroup.UUID groupUuid) Removes the association of the given UUID with a group.void
evict
(Collection<AccountGroup.UUID> groupUuid) Removes the association of the given UUIDs with groupsget
(AccountGroup.Id groupId) Looks up an internal group by its ID.get
(AccountGroup.NameKey name) Looks up an internal group by its name.get
(AccountGroup.UUID groupUuid) Looks up an internal group by its UUID.get
(Collection<AccountGroup.UUID> groupUuids) Returns aMap
ofAccountGroup.UUID
toInternalGroup
for the given groups UUIDs.getFromMetaId
(AccountGroup.UUID groupUuid, org.eclipse.jgit.lib.ObjectId metaId) Returns anInternalGroup
instance for the givenAccountGroup.UUID
at the givenmetaId
ofRefNames.refsGroups(com.google.gerrit.entities.AccountGroup.UUID)
ref.
-
Method Details
-
get
Looks up an internal group by its ID.- Parameters:
groupId
- the ID of the internal group- Returns:
- an
Optional
of the internal group, or an emptyOptional
if no internal group with this ID exists on this server or an error occurred during lookup
-
get
Looks up an internal group by its name.- Parameters:
name
- the name of the internal group- Returns:
- an
Optional
of the internal group, or an emptyOptional
if no internal group with this name exists on this server or an error occurred during lookup
-
get
Looks up an internal group by its UUID.- Parameters:
groupUuid
- the UUID of the internal group- Returns:
- an
Optional
of the internal group, or an emptyOptional
if no internal group with this UUID exists on this server or an error occurred during lookup
-
get
Returns aMap
ofAccountGroup.UUID
toInternalGroup
for the given groups UUIDs. If not cached yet the groups are loaded. If a group can't be loaded (e.g. because it is missing), the entry will be missing from the result.- Parameters:
groupUuids
- UUIDs of the groups that should be retrieved- Returns:
Map
ofAccountGroup.UUID
toInternalGroup
instances for the given group UUIDs, if a group can't be loaded (e.g. because it is missing), the entry will be missing from the result.
-
getFromMetaId
InternalGroup getFromMetaId(AccountGroup.UUID groupUuid, org.eclipse.jgit.lib.ObjectId metaId) throws com.google.gerrit.exceptions.StorageException Returns anInternalGroup
instance for the givenAccountGroup.UUID
at the givenmetaId
ofRefNames.refsGroups(com.google.gerrit.entities.AccountGroup.UUID)
ref.The caller is responsible to ensure the presence of
metaId
and the corresponding meta ref.- Parameters:
groupUuid
- the UUID of the internal groupmetaId
- the sha1 of commit inRefNames.refsGroups(com.google.gerrit.entities.AccountGroup.UUID)
ref.- Returns:
- the internal group at specific sha1
metaId
- Throws:
com.google.gerrit.exceptions.StorageException
- if no internal group with this UUID exists on this server at the specific sha1, or if an error occurred during lookup.
-
evict
Removes the association of the given ID with a group.The next call to
get(AccountGroup.Id)
won't provide a cached value.It's safe to call this method if no association exists.
Note: This method doesn't touch any associations between names/UUIDs and groups!
- Parameters:
groupId
- the ID of a possibly associated group
-
evict
Removes the association of the given name with a group.The next call to
get(AccountGroup.NameKey)
won't provide a cached value.It's safe to call this method if no association exists.
Note: This method doesn't touch any associations between IDs/UUIDs and groups!
- Parameters:
groupName
- the name of a possibly associated group
-
evict
Removes the association of the given UUID with a group.The next call to
get(AccountGroup.UUID)
won't provide a cached value.It's safe to call this method if no association exists.
Note: This method doesn't touch any associations between names/IDs and groups!
- Parameters:
groupUuid
- the UUID of a possibly associated group
-
evict
Removes the association of the given UUIDs with groups
-