feat: 添加自动化配置保存

Signed-off-by: 502647092 <admin@yumc.pw>
This commit is contained in:
502647092 2016-09-25 22:41:34 +08:00
parent 36f79decfa
commit 4b1340b2d2
2 changed files with 53 additions and 2 deletions

View File

@ -34,6 +34,18 @@ public abstract class AbstractInjectConfig {
* 配置区 * 配置区
*/ */
public void inject(final ConfigurationSection config) { public void inject(final ConfigurationSection config) {
inject(config, false);
}
/**
* 注入配置数据
*
* @param config
* 配置区
* @param save
* 是否为保存
*/
public void inject(final ConfigurationSection config, final boolean save) {
if (config == null) { if (config == null) {
Log.warning("尝试注入 ConfigurationSection 为 Null 的数据!"); Log.warning("尝试注入 ConfigurationSection 为 Null 的数据!");
return; return;
@ -49,10 +61,24 @@ public abstract class AbstractInjectConfig {
path = node.value(); path = node.value();
} }
field.setAccessible(true); field.setAccessible(true);
setField(path, field); if (save) {
setConfig(path, field);
} else {
setField(path, field);
}
} }
} }
/**
* 自动化保存
*
* @param config
* 配置文件区
*/
public void save(final ConfigurationSection config) {
inject(config, true);
}
/** /**
* 添加默认值 * 添加默认值
* *
@ -156,7 +182,24 @@ public abstract class AbstractInjectConfig {
} }
/** /**
* 通用解析流程 * 通用保存流程
*
* @param path
* 配置路径
* @param field
* 字段
*/
protected void setConfig(final String path, final Field field) {
try {
config.set(path, field.get(this));
} catch (IllegalArgumentException | IllegalAccessException e) {
Log.w(INJECT_ERROR, e.getClass().getName(), e.getMessage());
Log.debug(e);
}
}
/**
* 通用读取流程
* *
* @param path * @param path
* 配置路径 * 配置路径

View File

@ -44,4 +44,12 @@ public abstract class InjectConfig extends AbstractInjectConfig {
config.reload(); config.reload();
inject(config); inject(config);
} }
/**
* 自动化保存
*/
public void save() {
save(config);
config.save();
}
} }