Class MessageCache
java.lang.Object
de.murmelmeister.murmelapi.language.message.MessageCache
- All Implemented Interfaces:
RefreshListener,AutoCloseable
MessageCache is a thread-safe cache for storing messages by their ID and tag.
It allows for quick retrieval and management of messages based on their unique identifiers.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static final recordprotected static final record -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final com.github.benmanes.caffeine.cache.LoadingCache<MessageCache.LanguageKey, List<Message>> private final com.github.benmanes.caffeine.cache.LoadingCache<MessageCache.TagKey, Message> private final de.murmelmeister.library.database.Databaseprivate final Longprivate static final Patternprivate final Stringprivate static final Pattern -
Constructor Summary
ConstructorsConstructorDescriptionMessageCache(de.murmelmeister.library.database.Database database, String tableName, Long fetchLimit, long cacheCapacity, Duration refreshInterval) -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()voidclose()getById(int id) getByLanguage(int languageId) private MessageloadById(int id) loadByLanguage(int languageId) private MessagevoidonRefresh(RefreshEvent<?> event) voidprivate voidprivate voidrefreshSingle(int id) private voidprivate voidvoidremove(int id) voidremoveByLanguage(int languageId) voidremoveByTag(String tag, int languageId)
-
Field Details
-
LANGUAGE_KEY_PATTERN
-
TAG_KEY_PATTERN
-
database
private final de.murmelmeister.library.database.Database database -
tableName
-
cacheById
-
cacheByTag
private final com.github.benmanes.caffeine.cache.LoadingCache<MessageCache.TagKey,Message> cacheByTag -
cacheByLanguage
private final com.github.benmanes.caffeine.cache.LoadingCache<MessageCache.LanguageKey,List<Message>> cacheByLanguage -
fetchLimit
-
-
Constructor Details
-
MessageCache
-
-
Method Details
-
onRefresh
- Specified by:
onRefreshin interfaceRefreshListener
-
close
public void close()- Specified by:
closein interfaceAutoCloseable
-
refreshAll
private void refreshAll() -
refreshSingle
-
refreshSingle
-
refreshSingle
private void refreshSingle(int id) -
loadAllFromDatabase
-
loadByLanguage
-
loadByTag
-
loadById
-
getById
-
getByTag
-
getByLanguage
-
put
-
remove
public void remove(int id) -
removeByTag
-
removeByLanguage
public void removeByLanguage(int languageId) -
clear
public void clear()
-