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}