This commit is contained in:
2025-10-30 13:13:30 -04:00
parent 731dd2b991
commit f81d6ebd0e
5 changed files with 161 additions and 73 deletions

View File

@@ -15,12 +15,15 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import jakarta.json.Json;
import jakarta.json.JsonArray;
import jakarta.json.JsonException;
import jakarta.json.JsonObject;
import jakarta.json.JsonValue;
import jakarta.json.bind.Jsonb;
import jakarta.json.bind.JsonbBuilder;
import jakarta.json.bind.JsonbConfig;
@@ -144,10 +147,38 @@ public class DataRepository {
result = in.readAllAsString();
}
List<InventoryPiece> inventory = mapJsonToObjectList(result, InventoryPiece.class);
List<InventoryPiece> inventory;
manager.INVENTORY.clear();
manager.INVENTORY.addAll(inventory);
try (var reader = Json.createReader(new StringReader(result));
Jsonb jsonb = JsonbBuilder.create()) {
JsonArray jsonArray = reader.readArray();
inventory = new ArrayList<InventoryPiece>();
jsonArray.forEach(item -> {
try {
switch (item.asJsonObject().getString("type")) {
case "DRAWING":
inventory.add(jsonb.fromJson(item.toString(), Drawing.class));
break;
case "PAINTING":
inventory.add(jsonb.fromJson(item.toString(), Painting.class));
break;
case "PRINT":
inventory.add(jsonb.fromJson(item.toString(), Print.class));
break;
case "SCULPTURE":
inventory.add(jsonb.fromJson(item.toString(), Sculpture.class));
break;
}
} catch (Exception e) {
e.printStackTrace();
}
});
manager.INVENTORY.clear();
manager.INVENTORY.addAll(inventory);
}
}
public final static class getRepositoryConfig {

View File

@@ -4,6 +4,7 @@
*/
package edu.inventorym.model;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.EnumSet;
import java.util.Set;
@@ -31,7 +32,7 @@ public class InventoryManager {
return iv;
}
}
return null;
}
@@ -50,13 +51,15 @@ public class InventoryManager {
public void load() {
try {
DataRepository.WalkFileSystemTree(this);
} catch (FileNotFoundException e) {
System.out.println(String.format("INVENTORY: %s", e.getLocalizedMessage().toString()));
} catch (Exception e) {
e.printStackTrace();
}
}
public InventoryPiece Remove(InventoryPiece iPiece) {
int i = INVENTORY.indexOf(iPiece);
int i = INVENTORY.indexOf(iPiece);
return INVENTORY.remove(i);
};