diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/TransactionArchive.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/TransactionArchive.java index e69de29..5b816b5 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/TransactionArchive.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/TransactionArchive.java @@ -0,0 +1,61 @@ +package edu.ntnu.idi.idatt2003.g40.mappe; + +import java.util.ArrayList; +import java.util.List; + +public class TransactionArchive { + + private final List transactions = new ArrayList<>(); + + public TransactionArchive() { + } + + public boolean add(Transaction transaction) { + return transactions.add(transaction); + } + + public boolean isEmpty() { + return transactions.isEmpty(); + } + + public List getTransactions(int week) { + List result = new ArrayList<>(); + for (Transaction transaction : transactions) { + if (transaction.getWeek() == week) { + result.add(transaction); + } + } + return result; + } + + public List getPurchases(int week) { + List result = new ArrayList<>(); + for (Transaction transaction : transactions) { + if (transaction instanceof Purchase purchase && transaction.getWeek() == week) { + result.add(purchase); + } + } + return result; + } + + public List getSales(int week) { + List result = new ArrayList<>(); + for (Transaction transaction : transactions) { + if (transaction instanceof Sale sale && transaction.getWeek() == week) { + result.add(sale); + } + } + return result; + } + + public int countDistinctWeeks() { + List weeks = new ArrayList<>(); + for (Transaction transaction : transactions) { + int week = transaction.getWeek(); + if (!weeks.contains(week)) { + weeks.add(week); + } + } + return weeks.size(); + } +} \ No newline at end of file