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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
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 groupsOptional<InternalGroup>
get(AccountGroup.Id groupId)
Looks up an internal group by its ID.Optional<InternalGroup>
get(AccountGroup.NameKey name)
Looks up an internal group by its name.Optional<InternalGroup>
get(AccountGroup.UUID groupUuid)
Looks up an internal group by its UUID.Map<AccountGroup.UUID,InternalGroup>
get(Collection<AccountGroup.UUID> groupUuids)
Returns aMap
ofAccountGroup.UUID
toInternalGroup
for the given groups UUIDs.InternalGroup
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 Detail
-
get
Optional<InternalGroup> get(AccountGroup.Id groupId)
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
Optional<InternalGroup> get(AccountGroup.NameKey name)
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
Optional<InternalGroup> get(AccountGroup.UUID groupUuid)
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
Map<AccountGroup.UUID,InternalGroup> get(Collection<AccountGroup.UUID> groupUuids)
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
void evict(AccountGroup.Id groupId)
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
void evict(AccountGroup.NameKey groupName)
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
void evict(AccountGroup.UUID groupUuid)
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
void evict(Collection<AccountGroup.UUID> groupUuid)
Removes the association of the given UUIDs with groups
-
-