Class ExternalIdNotes.ExternalIdNotesLoader

java.lang.Object
com.google.gerrit.server.account.externalids.storage.notedb.ExternalIdNotes.ExternalIdNotesLoader
Direct Known Subclasses:
ExternalIdNotes.Factory, ExternalIdNotes.FactoryNoReindex
Enclosing class:
ExternalIdNotes

public abstract static class ExternalIdNotes.ExternalIdNotesLoader extends Object
  • Field Details

  • Constructor Details

  • Method Details

    • load

      public abstract ExternalIdNotes load(org.eclipse.jgit.lib.Repository allUsersRepo) throws IOException, org.eclipse.jgit.errors.ConfigInvalidException
      Loads the external ID notes from the current tip of the refs/meta/external-ids branch.
      Parameters:
      allUsersRepo - the All-Users repository
      Throws:
      IOException
      org.eclipse.jgit.errors.ConfigInvalidException
    • load

      public abstract ExternalIdNotes load(org.eclipse.jgit.lib.Repository allUsersRepo, org.eclipse.jgit.lib.ObjectId rev) throws IOException, org.eclipse.jgit.errors.ConfigInvalidException
      Loads the external ID notes from the specified revision of the refs/meta/external-ids branch.
      Parameters:
      allUsersRepo - the All-Users repository
      rev - the revision from which the external ID notes should be loaded, if null the external ID notes are loaded from the current tip, if ObjectId.zeroId() it's assumed that the refs/meta/external-ids branch doesn't exist and the loaded external IDs will be empty
      Throws:
      IOException
      org.eclipse.jgit.errors.ConfigInvalidException
    • updateExternalIdCacheAndMaybeReindexAccounts

      public void updateExternalIdCacheAndMaybeReindexAccounts(ExternalIdNotes externalIdNotes, Collection<Account.Id> accountsToSkipForReindex) throws IOException
      Updates the external ID cache. Subclasses of type ExternalIdNotes.Factory will also reindex the accounts for which external IDs were modified, while subclasses of type ExternalIdNotes.FactoryNoReindex will skip this.

      Must only be called after committing changes.

      Parameters:
      externalIdNotes - the committed updates that should be applied to the cache. This first and last element must be the updates commited first and last, respectively.
      accountsToSkipForReindex - accounts that should not be reindexed. This is to avoid double reindexing when updated accounts will already be reindexed by ReindexAccountsAfterRefUpdate.
      Throws:
      IOException
    • reindexAccount

      protected abstract void reindexAccount(Account.Id id)