LibJF/libjf-config-legacy-shim/src/main/java/io/gitlab/jfronny/libjf/config/impl/legacy/ConfigInstanceImpl.java

73 lines
2.0 KiB
Java

package io.gitlab.jfronny.libjf.config.impl.legacy;
import io.gitlab.jfronny.libjf.config.api.ConfigInstance;
import io.gitlab.jfronny.libjf.config.api.EntryInfo;
import io.gitlab.jfronny.libjf.config.api.v1.ConfigCategory;
import java.util.*;
import java.util.stream.Collectors;
@Deprecated
public record ConfigInstanceImpl(io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance root, ConfigCategory category) implements ConfigInstance {
public ConfigInstanceImpl(io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance instance) {
this(Objects.requireNonNull(instance), instance);
}
public static ConfigInstanceImpl of(io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance instance) {
return instance == null ? null : new ConfigInstanceImpl(instance);
}
@Override
public void load() {
root.load();
}
@Override
public void write() {
root.write();
}
@Override
public String getId() {
return category.getId();
}
@Override
public String getCategoryPath() {
return category.getCategoryPath();
}
@Override
public String getTranslationPrefix() {
return category.getTranslationPrefix();
}
@Override
public List<EntryInfo<?>> getEntries() {
return category.getEntries().stream().<EntryInfo<?>>map(EntryInfoImpl::new).toList();
}
@Override
public Map<String, Runnable> getPresets() {
return category.getPresets();
}
@Override
public List<ConfigInstance> getReferencedConfigs() {
return category.getReferencedConfigs().stream().<ConfigInstance>map(r -> new ConfigInstanceImpl(root, r)).toList();
}
@Override
public Map<String, ConfigInstance> getCategories() {
return category.getCategories().entrySet().stream().collect(Collectors.toMap(
Map.Entry::getKey,
s -> new ConfigInstanceImpl(root, s.getValue())
));
}
@Override
public void fix() {
category.fix();
}
}