feat: 添加自动化配置保存

Signed-off-by: 502647092 <admin@yumc.pw>
merge/1/MERGE
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) {
inject(config, false);
}
/**
*
*
* @param config
*
* @param save
*
*/
public void inject(final ConfigurationSection config, final boolean save) {
if (config == null) {
Log.warning("尝试注入 ConfigurationSection 为 Null 的数据!");
return;
@ -49,10 +61,24 @@ public abstract class AbstractInjectConfig {
path = node.value();
}
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
*

View File

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