This commit is contained in:
2025-10-30 14:01:16 -04:00
parent a2274d8ef2
commit 8b41c89e02
7 changed files with 120 additions and 8 deletions

View File

@@ -66,7 +66,11 @@ public class DataRepository {
read(manager, path);
}
public static void WalkFileSystemTree(final TransactionManager manager) throws IOException {
public static void WalkFileSystemTree(final TransactionManager manager) throws JsonException, IOException, Exception {
String dataRoot = getRepositoryConfig.getPath();
dataRoot = dataRoot + "/transactions.json";
Path path = Paths.get(dataRoot);
read(manager, path);
}
static void serialize_deserialize() {
@@ -129,6 +133,21 @@ public class DataRepository {
}
}
public static void write(TransactionManager mgr) throws IOException {
JsonbConfig config = new JsonbConfig()
.withFormatting(true); // Enable pretty-printing
Jsonb jsonb = JsonbBuilder.create(config);
String result = jsonb.toJson(mgr.TRANSACTIONS);
String dataRoot = getRepositoryConfig.getPath();
dataRoot = dataRoot + "/transactions.json";
Path path = Paths.get(dataRoot);
try (BufferedWriter writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {
writer.write(result);
writer.flush();
}
}
private static void read(CustomerManager customerManager, Path path) throws Exception {
String result;
try (BufferedReader in = new BufferedReader(new FileReader(path.toFile(), StandardCharsets.UTF_8))) {
@@ -141,7 +160,19 @@ public class DataRepository {
customerManager.CUSTOMERS.addAll(customers);
}
private static void read(InventoryManager manager, Path path) throws JsonException, IOException, Exception {
private static void read(TransactionManager manager, Path path) throws Exception {
String result;
try (BufferedReader in = new BufferedReader(new FileReader(path.toFile(), StandardCharsets.UTF_8))) {
result = in.readAllAsString();
}
List<Transaction> transactions = mapJsonToObjectList(result, Transaction.class);
manager.TRANSACTIONS.clear();
manager.TRANSACTIONS.addAll(transactions);
}
private static void read(InventoryManager manager, Path path) throws JsonException, IOException, InvalidRecordDataException, Exception {
String result;
try (BufferedReader in = new BufferedReader(new FileReader(path.toFile(), StandardCharsets.UTF_8))) {
result = in.readAllAsString();
@@ -188,5 +219,4 @@ public class DataRepository {
return home.replace('\\', '/') + "/workspace/inventorym/Api/src/resources/db";
}
}
}

View File

@@ -92,6 +92,10 @@ public class Transaction {
this.customerId = id;
}
public void check() throws InvalidTransactionException {
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();

View File

@@ -13,7 +13,7 @@ public class TransactionList extends ArrayList<Transaction> {
@Override
public boolean add(Transaction e) {
// TODO Auto-generated method stub
// TODO check transaction
return super.add(e);
}
}

View File

@@ -4,6 +4,8 @@
*/
package edu.inventorym.model;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.time.ZonedDateTime;
public class TransactionManager {
@@ -19,6 +21,7 @@ public class TransactionManager {
public Transaction TransactRequest(Customer customer, InventoryList iPieces) {
Transaction transacted = new Transaction(customer, iPieces);
transacted.setShipToAddress(customer.getMailing());
add(transacted);
compute(transacted);
return transacted;
}
@@ -47,12 +50,31 @@ public class TransactionManager {
return null;
}
public void add(Transaction tran) {
TRANSACTIONS.add(tran);
}
public void remove(Transaction tran) {
}
public void save() {
try {
DataRepository.write(this);
} catch (IOException e) {
e.printStackTrace();
}
}
public void load() {
try {
DataRepository.WalkFileSystemTree(this);
} catch (FileNotFoundException e) {
System.out.println(String.format("TRANSACTIONS: %s", e.getLocalizedMessage().toString()));
} catch (Exception e) {
e.printStackTrace();
}
}
}