mirror of
https://github.com/CarmJos/EasyConfiguration.git
synced 2024-09-19 20:25:51 +00:00
feat(init): 支持针对于实体类的初始化 #9
This commit is contained in:
parent
35398ab741
commit
01e20df559
@ -105,32 +105,6 @@ public class ConfigInitializer<T extends ConfigurationProvider<?>> {
|
||||
}
|
||||
}
|
||||
|
||||
private void initializeField(@NotNull ConfigurationRoot root,
|
||||
@NotNull Field field, @Nullable String parent,
|
||||
boolean saveDefaults) {
|
||||
try {
|
||||
field.setAccessible(true);
|
||||
Object object = field.get(root);
|
||||
if (object instanceof ConfigValue<?>) {
|
||||
initializeValue(
|
||||
(ConfigValue<?>) object, getFieldPath(field, parent),
|
||||
field.getAnnotation(HeaderComment.class),
|
||||
field.getAnnotation(InlineComment.class),
|
||||
saveDefaults
|
||||
);
|
||||
} else if (object instanceof ConfigurationRoot) {
|
||||
initializeClass(
|
||||
(ConfigurationRoot) object, parent, field.getName(),
|
||||
field.getAnnotation(ConfigPath.class),
|
||||
field.getAnnotation(HeaderComment.class),
|
||||
field.getAnnotation(InlineComment.class),
|
||||
saveDefaults
|
||||
);
|
||||
}
|
||||
} catch (IllegalAccessException ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
protected void initializeClass(@NotNull Class<?> clazz,
|
||||
@Nullable String parentPath, @Nullable String fieldName,
|
||||
@Nullable ConfigPath fieldPath,
|
||||
@ -157,6 +131,32 @@ public class ConfigInitializer<T extends ConfigurationProvider<?>> {
|
||||
}
|
||||
}
|
||||
|
||||
private void initializeField(@NotNull ConfigurationRoot root,
|
||||
@NotNull Field field, @Nullable String parent,
|
||||
boolean saveDefaults) {
|
||||
try {
|
||||
field.setAccessible(true);
|
||||
Object object = field.get(root);
|
||||
if (object instanceof ConfigValue<?>) {
|
||||
initializeValue(
|
||||
(ConfigValue<?>) object, getFieldPath(field, parent),
|
||||
field.getAnnotation(HeaderComment.class),
|
||||
field.getAnnotation(InlineComment.class),
|
||||
saveDefaults
|
||||
);
|
||||
} else if (object instanceof ConfigurationRoot) {
|
||||
initializeClass(
|
||||
(ConfigurationRoot) object, parent, field.getName(),
|
||||
field.getAnnotation(ConfigPath.class),
|
||||
field.getAnnotation(HeaderComment.class),
|
||||
field.getAnnotation(InlineComment.class),
|
||||
saveDefaults
|
||||
);
|
||||
}
|
||||
} catch (IllegalAccessException ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
private void initializeField(@NotNull Class<?> source, @NotNull Field field, @Nullable String parent,
|
||||
boolean saveDefaults, boolean loadSubClasses) {
|
||||
try {
|
||||
|
Loading…
Reference in New Issue
Block a user