88
99/**
1010 * <h1>配置管理器</h1>
11- * 抽象类,提供了 {@link YamlConfiguration} 相关的操作代码,以免重复编写IO操作流。
11+ * 抽象类,提供了 {@link YamlConfiguration} 相关的操作代码,以免重复编写 IO流 相关操作。
12+ * 使用方法:
13+ * 1.直接使用,new 出实例即可。
14+ * 2.创建子类,super 然后 new 子类即可。
1215 */
1316public abstract class ConfigurationManager {
1417
1518 /**
1619 * <h2>初始化方法</h2>
20+ * 若继承,则需使用该实例。
1721 */
1822 public abstract void init ();
1923
24+ private final File configFile ;
25+
26+ private final YamlConfiguration config ;
27+
28+ public ConfigurationManager (File configFile , YamlConfiguration config ) {
29+ this .configFile = configFile ;
30+ this .config = config ;
31+ }
32+
33+ public ConfigurationManager (ConfigurationManager manager ){
34+ this .configFile = manager .getConfigFile ();
35+ this .config = manager .getConfig ();
36+ }
37+
2038 /**
2139 * <h2>初始化文件</h2>
2240 * 如果没有这个文件就自动创建,并返回 {@link YamlConfiguration} 配置文件,方便操作
23- * @param configFile {@link File} 格式的文件,只需要指定路径和文件名称
2441 * @return 读取到的 {@link YamlConfiguration} 配置文件
2542 */
26- public YamlConfiguration initFile (File configFile ){
43+ public YamlConfiguration initFile (){
2744 if (!configFile .exists ()){
2845 try {
2946 configFile .getParentFile ().mkdirs ();
@@ -39,28 +56,32 @@ public YamlConfiguration initFile(File configFile){
3956 /**
4057 * <h2>保存 {@link Map} 类型的配置文件</h2>
4158 * @param configMap {@link Map} 类型的配置文件
42- * @param config {@link YamlConfiguration} 类型的配置文件,可以直接进行内存读写操作
43- * @param configFile {@link File} 类型文件,用于将内存中的配置文件保存
4459 */
45- public void saveMapConfig (Map <String , Object > configMap , YamlConfiguration config , File configFile ){
60+ public void saveMapConfig (Map <String , Object > configMap ){
4661 if (!configFile .exists ()) return ;
4762
4863 configMap .forEach (config ::set );
4964
50- save (config , configFile );
65+ save ();
5166 }
5267
5368 /**
5469 * <h2>从内存中保存 {@link YamlConfiguration} 格式文件</h2>
55- * @param config {@link YamlConfiguration} 内存中配置文件
56- * @param configFile {@link File} IO配置文件
5770 */
58- public void save (YamlConfiguration config , File configFile ){
71+ public void save (){
5972 try {
6073 config .save (configFile );
6174 } catch (IOException e ) {
6275 e .printStackTrace ();
6376 }
6477 }
6578
79+
80+ public File getConfigFile () {
81+ return configFile ;
82+ }
83+
84+ public YamlConfiguration getConfig () {
85+ return config ;
86+ }
6687}
0 commit comments