Configuration -> add default values

This commit is contained in:
jeffcheasey88 2023-09-08 11:32:58 +02:00
parent 1f2e30a7d1
commit e2cf4f8542
2 changed files with 17 additions and 13 deletions

View file

@ -46,17 +46,23 @@ public class Configuration {
this._file = new File(path); this._file = new File(path);
System.out.println("Config on " + _file.getAbsolutePath()); System.out.println("Config on " + _file.getAbsolutePath());
} }
public <T> Configuration addDefaultValue(String name, T value) throws Exception{
if(value == null) throw new IllegalArgumentException("Value cannot be null");
Field field = getClass().getDeclaredField(name);
field.setAccessible(true);
field.set(this, value);
return this;
}
public void load() throws Exception { public void load() throws Exception{
if (!this._file.exists()) if(!this._file.exists()) return;
return;
BufferedReader reader = new BufferedReader(new FileReader(this._file)); BufferedReader reader = new BufferedReader(new FileReader(this._file));
String line; String line;
while ((line = reader.readLine()) != null) { while((line = reader.readLine()) != null){
String[] split = line.split("="); String[] split = line.split("=");
Field field = getClass().getDeclaredField(split[0]); Field field = getClass().getDeclaredField(split[0]);
if (field == null) if(field == null) continue;
continue;
field.setAccessible(true); field.setAccessible(true);
injectValue(field, split[1]); injectValue(field, split[1]);
} }
@ -110,10 +116,9 @@ public class Configuration {
} }
Field[] fields = getClass().getDeclaredFields(); Field[] fields = getClass().getDeclaredFields();
BufferedWriter writer = new BufferedWriter(new FileWriter(_file)); BufferedWriter writer = new BufferedWriter(new FileWriter(_file));
for (Field field : fields) { for(Field field : fields){
field.setAccessible(true); field.setAccessible(true);
if (field.getName().startsWith("_")) if(field.getName().startsWith("_")) continue;
continue;
Object value = field.get(this); Object value = field.get(this);
writer.write(field.getName() + "=" + value); writer.write(field.getName() + "=" + value);
} }
@ -165,9 +170,7 @@ public class Configuration {
return this.use_ssl; return this.use_ssl;
} }
public String getUsersFiles() { public String getUsersFiles(){
if (users_files == null || users_files.trim().isEmpty())
users_files = "/tmp/users_files";
return users_files; return users_files;
} }

View file

@ -42,7 +42,8 @@ import dev.peerat.framework.Router;
public class Main{ public class Main{
public static void main(String[] args) throws Exception{ public static void main(String[] args) throws Exception{
Configuration config = new Configuration("config.txt"); Configuration config = new Configuration("config.txt")
.addDefaultValue("users_files", "/tmp/users_files");
config.load(); config.load();
Class.forName("com.mysql.cj.jdbc.Driver"); Class.forName("com.mysql.cj.jdbc.Driver");