Class ExternalIdNotes.ExternalIdNotesLoader

    • Method Detail

      • 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 ReindexAfterRefUpdate.
        Throws:
        IOException
      • reindexAccount

        protected abstract void reindexAccount​(Account.Id id)