Package refactoring
This commit is contained in:
parent
4ce0f36193
commit
b03e0a9dd6
1 changed files with 92 additions and 0 deletions
92
io/src/main/java/org/zhdev/varioutil/config/Config.java
Normal file
92
io/src/main/java/org/zhdev/varioutil/config/Config.java
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
package org.zhdev.varioutil.config;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
public interface Config extends ConfigSection {
|
||||
String getKey();
|
||||
|
||||
void load(Reader reader);
|
||||
|
||||
default void load(InputStream stream) {
|
||||
load(new InputStreamReader(stream, StandardCharsets.UTF_8));
|
||||
}
|
||||
|
||||
default void load(Path path) throws IOException, ConfigException {
|
||||
load(Files.newInputStream(path));
|
||||
}
|
||||
|
||||
default void load(File file) throws IOException, ConfigException {
|
||||
load(file.toPath());
|
||||
}
|
||||
|
||||
default Path load(String pathname) throws ConfigException {
|
||||
Path path = Paths.get(pathname);
|
||||
try {
|
||||
if (Files.exists(path)) load(path);
|
||||
} catch (IOException e) {
|
||||
throw new ConfigException(e);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
Path load() throws ConfigException;
|
||||
|
||||
void save(Writer writer);
|
||||
|
||||
default void save(OutputStream stream) {
|
||||
try (OutputStreamWriter writer = new OutputStreamWriter(stream, StandardCharsets.UTF_8)) {
|
||||
save(writer);
|
||||
writer.flush();
|
||||
} catch (IOException e) {
|
||||
throw new ConfigException(e);
|
||||
}
|
||||
}
|
||||
|
||||
default void save(Path path) throws IOException {
|
||||
try (OutputStream stream = Files.newOutputStream(path)) {
|
||||
save(stream);
|
||||
}
|
||||
}
|
||||
|
||||
default void save(File file) throws IOException {
|
||||
save(file.toPath());
|
||||
}
|
||||
|
||||
default Path save(String pathname) throws ConfigException {
|
||||
Path path = Paths.get(pathname);
|
||||
try {
|
||||
if (Files.notExists(path)) {
|
||||
Path parent = path.getParent();
|
||||
if (parent != null) Files.createDirectories(parent);
|
||||
Files.createFile(path);
|
||||
}
|
||||
save(path);
|
||||
} catch (IOException e) {
|
||||
throw new ConfigException(e);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
Path save() throws ConfigException;
|
||||
|
||||
default Path saveIfEmpty(String pathname) throws ConfigException {
|
||||
Path path = Paths.get(pathname);
|
||||
try {
|
||||
if (Files.notExists(path) || Files.size(path) == 0) {
|
||||
Path parent = path.getParent();
|
||||
if (parent != null) Files.createDirectories(parent);
|
||||
Files.createFile(path);
|
||||
save(path);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new ConfigException(e);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
Path saveIfEmpty() throws ConfigException;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue