Class AccountCacheImpl
- All Implemented Interfaces:
AccountCache
This class should be bounded as a Singleton. However, due to internal limitations in Google, it cannot be marked as a singleton. The common installation pattern should therefore be:
install(AccountCacheImpl.module());
install(AccountCacheImpl.bindingModule());
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static class
-
Method Summary
Modifier and TypeMethodDescriptionstatic com.google.inject.Module
get
(Account.Id accountId) Returns anAccountState
instance for the given account ID.get
(Set<Account.Id> accountIds) Returns aMap
ofAccount.Id
toAccountState
for the given account IDs.getByUsername
(String username) Returns anAccountState
instance for the given username.getEvenIfMissing
(Account.Id accountId) Returns anAccountState
instance for the given account ID.getFromMetaId
(Account.Id id, org.eclipse.jgit.lib.ObjectId metaId) Returns anAccountState
instance for the given account ID at the givenmetaId
ofRefNames.refsUsers(com.google.gerrit.entities.Account.Id)
ref.static com.google.inject.Module
module()
-
Method Details
-
module
public static com.google.inject.Module module() -
bindingModule
public static com.google.inject.Module bindingModule() -
getEvenIfMissing
Description copied from interface:AccountCache
Returns anAccountState
instance for the given account ID. If not cached yet the account is loaded. Returns an emptyAccountState
instance to represent a missing account.This method should only be used in exceptional cases where it is required to get an account state even if the account is missing. Callers should leave a comment with the method invocation explaining why this method is used. Most callers of
AccountCache
should useAccountCache.get(Account.Id)
instead and handle the missing account case explicitly.- Specified by:
getEvenIfMissing
in interfaceAccountCache
- Parameters:
accountId
- ID of the account that should be retrieved- Returns:
AccountState
instance for the given account ID, if no account with this ID exists an emptyAccountState
instance is returned to represent the missing account
-
get
Description copied from interface:AccountCache
Returns anAccountState
instance for the given account ID. If not cached yet the account is loaded. ReturnsOptional.empty()
if the account is missing.- Specified by:
get
in interfaceAccountCache
- Parameters:
accountId
- ID of the account that should be retrieved- Returns:
AccountState
instance for the given account ID, if no account with this ID existsOptional.empty()
is returned
-
getFromMetaId
Description copied from interface:AccountCache
Returns anAccountState
instance for the given account ID at the givenmetaId
ofRefNames.refsUsers(com.google.gerrit.entities.Account.Id)
ref.The caller is responsible to ensure the presence of
metaId
and the corresponding meta ref. The method does not populateAccountState.defaultPreferences()
.- Specified by:
getFromMetaId
in interfaceAccountCache
- Parameters:
id
- ID of the account that should be retrieved.metaId
- the sha1 of commit inRefNames.refsUsers(com.google.gerrit.entities.Account.Id)
ref.- Returns:
AccountState
instance for the given account ID at specific sha1metaId
.
-
get
Description copied from interface:AccountCache
Returns aMap
ofAccount.Id
toAccountState
for the given account IDs. If not cached yet the accounts are loaded. If an account can't be loaded (e.g. because it is missing), the entry will be missing from the result.Loads accounts in parallel if applicable.
- Specified by:
get
in interfaceAccountCache
- Parameters:
accountIds
- IDs of the account that should be retrieved- Returns:
Map
ofAccount.Id
toAccountState
instances for the given account IDs, if an account can't be loaded (e.g. because it is missing), the entry will be missing from the result
-
getByUsername
Description copied from interface:AccountCache
Returns anAccountState
instance for the given username.This method first loads the external ID for the username and then uses the account ID of the external ID to lookup the account from the cache.
- Specified by:
getByUsername
in interfaceAccountCache
- Parameters:
username
- username of the account that should be retrieved- Returns:
AccountState
instance for the given username, if no account with this username exists or if loading the external ID failsOptional.empty()
is returned
-