code: def _GetIdentifierMappings(self, parser_mediator, cache, database):
      
      identifier_mappings = cache.GetResults('SruDbIdMapTable', default_value={})
      if not identifier_mappings:
        esedb_table = database.get_table_by_name('SruDbIdMapTable')
        if not esedb_table:
          parser_mediator.ProduceExtractionWarning(
              'unable to retrieve table: SruDbIdMapTable')
        else:
          identifier_mappings = self._ParseIdentifierMappingsTable(
              parser_mediator, esedb_table)
  
        cache.StoreDictInCache('SruDbIdMapTable', identifier_mappings)
  
      return identifier_mappings
docs: Retrieves the identifier mappings from SruDbIdMapTable table.
  
      In the SRUM database individual tables contain numeric identifiers for
      the application ("AppId") and user identifier ("UserId"). A more descriptive
      string of these values can be found in the SruDbIdMapTable. For example the
      numeric value of 42 mapping to DiagTrack. This method will cache the
      mappings of a specific SRUM database.
  
      Args:
        parser_mediator (ParserMediator): mediates interactions between parsers
            and other components, such as storage and dfvfs.
        cache (ESEDBCache): cache, which contains information about
            the identifiers stored in the SruDbIdMapTable table.
        database (pyesedb.file): ESE database.
  
      Returns:
        dict[int, str]: mapping of numeric identifiers to their string
            representation.