Interface GroupCache

All Known Implementing Classes:
GroupCacheImpl

public interface GroupCache
Tracks group objects in memory for efficient access.
  • 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 empty Optional 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 empty Optional 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 empty Optional if no internal group with this UUID exists on this server or an error occurred during lookup
    • get

      Returns a Map of AccountGroup.UUID to InternalGroup 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 of AccountGroup.UUID to InternalGroup 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 an InternalGroup instance for the given AccountGroup.UUID at the given metaId of RefNames.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 group
      metaId - the sha1 of commit in RefNames.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

      See evict(AccountGroup.UUID)