1
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:
Carm Jos 2022-12-11 02:04:23 +08:00
parent 35398ab741
commit 01e20df559

View File

@ -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 {