001package com.ericlam.mc.eld.configurations;
002
003import com.ericlam.mc.eld.components.GroupLangConfiguration;
004
005import java.util.Optional;
006
007/**
008 * 語言文件池,性質大致跟 {@link GroupConfig} 相同,但只提供唯讀操作
009 * @param <T> 語言文件池類別
010 */
011public interface GroupLang<T extends GroupLangConfiguration> {
012
013    /**
014     * 根據 語言 id 獲取語言文件實例
015     * @param locale 語言 id
016     * @return 語言文件實例
017     */
018    Optional<T> getByLocale(String locale);
019
020    /**
021     * 獲取默認語言文件實例
022     * @return 默認語言文件實例
023     */
024    T getDefault();
025
026    /**
027     * 根據 語言 id 清除快取
028     * @param locale 語言 id
029     */
030    void fetchById(String locale);
031
032    /**
033     * 清除所有快取
034     */
035    void fetch();
036
037
038}