From 5ec6c530ad36129c8a58ca955234c84230d1b850 Mon Sep 17 00:00:00 2001 From: Solveig Natvig Date: Sun, 22 Mar 2026 13:59:02 +0100 Subject: [PATCH] Add TransactionArchive --- src/main/java/TransactionArchive.java | 40 +++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main/java/TransactionArchive.java diff --git a/src/main/java/TransactionArchive.java b/src/main/java/TransactionArchive.java new file mode 100644 index 0000000..6d86d71 --- /dev/null +++ b/src/main/java/TransactionArchive.java @@ -0,0 +1,40 @@ +import java.util.ArrayList; +import java.util.stream.Collectors; +import java.util.List; + +public class TransactionArchive { + private List transactions; + + public TransactionArchive() { + this.transactions = new ArrayList<>(); + } + + public boolean add(Transaction transaction) { + if (transaction == null) { + throw new IllegalArgumentException("Should not be null"); // Eller NullPointerExeption? + } + + return transactions.add(transaction); + + } + + public boolean isEmpty() { + return transactions.isEmpty(); + } + + public List getTransactions(int week) { + return transactions.stream().filter(transaction -> transaction.getWeek() == week).collect(Collectors.toList()); + } + + public List getPurchase(int week) { + return transactions.stream().filter(transaction -> transaction.getWeek() == week).filter(purchase -> transactions instanceof Purchase).map(transaction -> (Purchase) transaction).collect(Collectors.toList()); + } + + public List getSale(int week) { + return transactions.stream().filter(transaction -> transaction.getWeek() == week).filter(sale -> transactions instanceof Sale).map(transaction -> (Sale) transaction).collect(Collectors.toList()); + } + + public int countDistinctWeeks() { + return (int) transactions.stream().map(Transaction::getWeek).distinct().count(); + } +}