Interface GroupCache

  • All Known Implementing Classes:
    GroupCacheImpl

    public interface GroupCache
    Tracks group objects in memory for efficient access.
    • 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 empty Optional 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 empty Optional 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 empty Optional 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 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