Class LanguageCache

java.lang.Object
de.murmelmeister.murmelapi.language.LanguageCache
All Implemented Interfaces:
RefreshListener, AutoCloseable

public class LanguageCache extends Object implements RefreshListener, AutoCloseable
LanguageCache provides a Caffeine-backed cache for language lookups by id and language code.
  • Field Details

    • ALL_KEY

      private static final String ALL_KEY
      See Also:
    • database

      private final de.murmelmeister.library.database.Database database
    • tableName

      private final String tableName
    • cacheById

      private final com.github.benmanes.caffeine.cache.LoadingCache<Integer,Language> cacheById
    • codeToId

      private final com.github.benmanes.caffeine.cache.LoadingCache<String,Integer> codeToId
    • listCache

      private final com.github.benmanes.caffeine.cache.LoadingCache<String,List<Language>> listCache
  • Constructor Details

    • LanguageCache

      public LanguageCache(de.murmelmeister.library.database.Database database, String tableName, long cacheCapacity)
  • Method Details

    • onRefresh

      public void onRefresh(RefreshEvent<?> event)
      Specified by:
      onRefresh in interface RefreshListener
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • refreshAll

      private void refreshAll()
    • refreshSingle

      private void refreshSingle(int id)
    • loadAllFromDatabase

      private List<Language> loadAllFromDatabase()
    • loadByCodeKey

      private Integer loadByCodeKey(String key)
    • loadById

      private Language loadById(int id)
    • getById

      public Language getById(int id)
    • getByCode

      public Language getByCode(String code)
    • put

      public void put(Language language)
    • remove

      public void remove(int id)
    • clear

      public void clear()
    • getCachedLanguages

      public List<Language> getCachedLanguages()
    • toKey

      private static String toKey(String code)