mirror of
https://github.com/CarmJos/EasyConfiguration.git
synced 2024-09-19 20:25:51 +00:00
refactor(comments): 优化注释的存储方式
This commit is contained in:
parent
5f89ff4db7
commit
bcdf0d9bd1
@ -0,0 +1,51 @@
|
|||||||
|
package cc.carm.lib.configuration.core.source;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.annotations.Unmodifiable;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public abstract class ConfigurationComments {
|
||||||
|
|
||||||
|
protected final @NotNull Map<String, List<String>> headerComments = new HashMap<>();
|
||||||
|
protected final @NotNull Map<String, String> inlineComments = new HashMap<>();
|
||||||
|
|
||||||
|
protected @NotNull Map<String, List<String>> getHeaderComments() {
|
||||||
|
return headerComments;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected @NotNull Map<String, String> getInlineComments() {
|
||||||
|
return inlineComments;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeaderComments(@Nullable String path, @Nullable List<String> comments) {
|
||||||
|
|
||||||
|
if (comments == null) {
|
||||||
|
getHeaderComments().remove(path);
|
||||||
|
} else {
|
||||||
|
getHeaderComments().put(path, comments);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setInlineComment(@NotNull String path, @Nullable String comment) {
|
||||||
|
if (comment == null) {
|
||||||
|
getInlineComments().remove(path);
|
||||||
|
} else {
|
||||||
|
getInlineComments().put(path, comment);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Unmodifiable
|
||||||
|
public List<String> getHeaderComment(@Nullable String path) {
|
||||||
|
return Optional.ofNullable(getHeaderComments().get(path)).map(Collections::unmodifiableList).orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public @Nullable String getInlineComment(@NotNull String path) {
|
||||||
|
return getInlineComments().get(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
package cc.carm.lib.configuration;
|
||||||
|
|
||||||
|
public class EasyConfiguration {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -1,60 +1,22 @@
|
|||||||
package cc.carm.lib.configuration.yaml;
|
package cc.carm.lib.configuration.yaml;
|
||||||
|
|
||||||
|
import cc.carm.lib.configuration.core.source.ConfigurationComments;
|
||||||
import org.bspfsystems.yamlconfiguration.configuration.ConfigurationSection;
|
import org.bspfsystems.yamlconfiguration.configuration.ConfigurationSection;
|
||||||
import org.bspfsystems.yamlconfiguration.file.FileConfiguration;
|
import org.bspfsystems.yamlconfiguration.file.FileConfiguration;
|
||||||
import org.bspfsystems.yamlconfiguration.file.YamlConfiguration;
|
import org.bspfsystems.yamlconfiguration.file.YamlConfiguration;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.annotations.Unmodifiable;
|
|
||||||
|
|
||||||
import java.io.BufferedWriter;
|
import java.io.BufferedWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.List;
|
||||||
|
import java.util.StringJoiner;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.IntStream;
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
import static cc.carm.lib.configuration.yaml.YAMLConfigProvider.SEPARATOR;
|
import static cc.carm.lib.configuration.yaml.YAMLConfigProvider.SEPARATOR;
|
||||||
|
|
||||||
public class YAMLComments {
|
public class YAMLComments extends ConfigurationComments {
|
||||||
|
|
||||||
protected final @NotNull Map<String, List<String>> headerComments = new HashMap<>();
|
|
||||||
protected final @NotNull Map<String, String> inlineComments = new HashMap<>();
|
|
||||||
|
|
||||||
protected @NotNull Map<String, List<String>> getHeaderComments() {
|
|
||||||
return headerComments;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected @NotNull Map<String, String> getInlineComments() {
|
|
||||||
return inlineComments;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHeaderComments(@Nullable String path, @Nullable List<String> comments) {
|
|
||||||
|
|
||||||
if (comments == null) {
|
|
||||||
getHeaderComments().remove(path);
|
|
||||||
} else {
|
|
||||||
getHeaderComments().put(path, comments);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void setInlineComment(@NotNull String path, @Nullable String comment) {
|
|
||||||
if (comment == null) {
|
|
||||||
getInlineComments().remove(path);
|
|
||||||
} else {
|
|
||||||
getInlineComments().put(path, comment);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Unmodifiable
|
|
||||||
public List<String> getHeaderComment(@Nullable String path) {
|
|
||||||
return Optional.ofNullable(getHeaderComments().get(path)).map(Collections::unmodifiableList).orElse(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public @Nullable String getInlineComment(@NotNull String path) {
|
|
||||||
return getInlineComments().get(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
public @Nullable String buildHeaderComments(@Nullable String path, @NotNull String indents) {
|
public @Nullable String buildHeaderComments(@Nullable String path, @NotNull String indents) {
|
||||||
List<String> comments = getHeaderComment(path);
|
List<String> comments = getHeaderComment(path);
|
||||||
|
Loading…
Reference in New Issue
Block a user