Class GroupCache

java.lang.Object
de.murmelmeister.murmelapi.group.GroupCache
All Implemented Interfaces:
RefreshListener, AutoCloseable

public class GroupCache extends Object implements RefreshListener, AutoCloseable
  • 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,Group> cacheById
    • cacheByName

      private final com.github.benmanes.caffeine.cache.LoadingCache<String,Group> cacheByName
    • listCache

      private final com.github.benmanes.caffeine.cache.LoadingCache<String,List<Group>> listCache
    • fetchLimit

      private final Long fetchLimit
  • Constructor Details

    • GroupCache

      public GroupCache(de.murmelmeister.library.database.Database database, String tableName, Long fetchLimit, long cacheCapacity, Duration refreshInterval)
  • 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<Group> loadAllFromDatabase()
    • loadByName

      private Group loadByName(String name)
    • loadById

      private Group loadById(int id)
    • getById

      public Group getById(int id)
    • getByName

      public Group getByName(String name)
    • put

      public void put(Group group)
    • remove

      public void remove(int id)
    • clear

      public void clear()
    • getCachedGroups

      public List<Group> getCachedGroups()