Class UserCache

java.lang.Object
de.murmelmeister.murmelapi.user.UserCache
All Implemented Interfaces:
RefreshListener, AutoCloseable

public class UserCache 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,User> cacheById
    • cacheByUUID

      private final com.github.benmanes.caffeine.cache.LoadingCache<UUID,User> cacheByUUID
    • cacheByName

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

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

      private final Long fetchLimit
  • Constructor Details

    • UserCache

      public UserCache(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<User> loadAllFromDatabase()
    • loadByName

      private User loadByName(String name)
    • loadByUUID

      private User loadByUUID(UUID uuid)
    • loadById

      private User loadById(int id)
    • getById

      public User getById(int id)
    • getByUUID

      public User getByUUID(UUID uuid)
    • getByName

      public User getByName(String name)
    • put

      public void put(User user)
    • remove

      public void remove(int id)
    • clear

      public void clear()
    • getCachedUsers

      public List<User> getCachedUsers()