Interface AccountCache

  • All Known Implementing Classes:
    AccountCacheImpl

    public interface AccountCache
    Caches important (but small) account state to avoid database hits.
    • Method Detail

      • get

        AccountState get​(Account.Id accountId)
        Returns an AccountState instance for the given account ID. If not cached yet the account is loaded. Returns an empty AccountState instance to represent a missing account.
        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 empty AccountState instance is returned to represent the missing account
      • getOrNull

        AccountState getOrNull​(Account.Id accountId)
        Returns an AccountState instance for the given account ID. If not cached yet the account is loaded. Returns null if the account is missing.
        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 null is returned
      • getByUsername

        AccountState getByUsername​(String username)
        Returns an AccountState 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.

        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 fails null is returned
      • evict

        void evict​(Account.Id accountId)
            throws IOException
        Evicts the account from the cache and triggers a reindex for it.
        Parameters:
        accountId - account ID of the account that should be evicted
        Throws:
        IOException - thrown if reindexing fails
      • evictAllNoReindex

        void evictAllNoReindex()
        Evict all accounts from the cache, but doesn't trigger reindex of all accounts.