Sauvegarde et lecture du fichier de synchronisation -> Json vers AppData terminé
This commit is contained in:
parent
57984456f1
commit
d4cff6de09
@ -1,9 +1,8 @@
|
|||||||
package lightcontainer.storage;
|
package lightcontainer.storage;
|
||||||
|
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.*;
|
||||||
import com.google.gson.JsonObject;
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.*;
|
||||||
|
|
||||||
public class JsonAdapter implements Adapter {
|
public class JsonAdapter implements Adapter {
|
||||||
|
|
||||||
@ -65,6 +64,62 @@ public class JsonAdapter implements Adapter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AppData fromString(String appDataString) {
|
public AppData fromString(String appDataString) {
|
||||||
|
try {
|
||||||
|
JsonElement jsonString = JsonParser.parseString(appDataString);
|
||||||
|
JsonObject jsonAppData = jsonString.getAsJsonObject();
|
||||||
|
AppConfig appConfig = AppConfig.getInstance();
|
||||||
|
appConfig.setUnicastPort(jsonAppData.get("unicast_port").getAsInt());
|
||||||
|
appConfig.setMulticastIp(jsonAppData.get("multicast_ip").getAsString());
|
||||||
|
appConfig.setMulticastPort(jsonAppData.get("multicast_port").getAsInt());
|
||||||
|
appConfig.setNetworkInterface(jsonAppData.get("network_interface").getAsString());
|
||||||
|
appConfig.setTls(jsonAppData.get("tls").getAsBoolean());
|
||||||
|
JsonArray jsonUsers = jsonAppData.getAsJsonArray("users");
|
||||||
|
List<User> users = new ArrayList<>();
|
||||||
|
getUsers(jsonUsers, users);
|
||||||
|
AppData appData = AppData.getInstance();
|
||||||
|
appData.setAppConfig(appConfig);
|
||||||
|
for (User user : users) {
|
||||||
|
appData.addUser(user);
|
||||||
|
}
|
||||||
|
return appData;
|
||||||
|
} catch (JsonParseException parseException) {
|
||||||
|
System.out.println("[FFE] : Error while loading configuration file"); //TODO - changer en log
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void getUsers(JsonArray jsonUsers, List<User> users) {
|
||||||
|
for (JsonElement element : jsonUsers) {
|
||||||
|
JsonObject jsonUser = element.getAsJsonObject();
|
||||||
|
String name = jsonUser.get("username").getAsString();
|
||||||
|
String password = jsonUser.get("password").getAsString();
|
||||||
|
String aeskey = jsonUser.get("aes_key").getAsString();
|
||||||
|
Map<String, File> userFiles = new HashMap<>();
|
||||||
|
JsonArray jsonFiles = jsonUser.getAsJsonArray("files");
|
||||||
|
getFiles(userFiles, jsonFiles);
|
||||||
|
User user = new User(name, password, aeskey, userFiles);
|
||||||
|
users.add(user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getFiles(Map<String, File> userFiles, JsonArray jsonFiles) {
|
||||||
|
for (JsonElement fileElement : jsonFiles) {
|
||||||
|
JsonObject jsonFile = fileElement.getAsJsonObject();
|
||||||
|
String fileName = jsonFile.get("name").getAsString();
|
||||||
|
int size = jsonFile.get("size").getAsInt();
|
||||||
|
String iv = jsonFile.get("iv").getAsString();
|
||||||
|
Set<String> storage = new HashSet<>();
|
||||||
|
JsonArray jsonStorage = jsonFile.getAsJsonArray("storage");
|
||||||
|
getStorage(storage, jsonStorage);
|
||||||
|
File file = new File(fileName, size, iv, storage);
|
||||||
|
userFiles.put(file.getName(), file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getStorage(Set<String> storage, JsonArray jsonStorage) {
|
||||||
|
for (JsonElement storageElement : jsonStorage) {
|
||||||
|
String storageName = storageElement.getAsString();
|
||||||
|
storage.add(storageName);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user