From 4079e92cac47d35f481e5af27334326ad8fbc650 Mon Sep 17 00:00:00 2001 From: Nikollai Date: Mon, 25 May 2026 13:04:09 +0200 Subject: [PATCH] Deleted unused duplicate files, continued javadoc documentation --- .../TransactionCalculatorFactory.java | 22 --------------- src/main/java/millions/model/Share.java | 16 ++++++----- src/main/java/millions/model/Stock.java | 18 ++++++------- src/main/java/millions/model/Transaction.java | 12 +++++++++ .../millions/model/TransactionArchive.java | 27 ++++++++++++++++++- 5 files changed, 56 insertions(+), 39 deletions(-) delete mode 100644 src/main/java/millions/calculators/TransactionCalculatorFactory.java diff --git a/src/main/java/millions/calculators/TransactionCalculatorFactory.java b/src/main/java/millions/calculators/TransactionCalculatorFactory.java deleted file mode 100644 index 36a71c0..0000000 --- a/src/main/java/millions/calculators/TransactionCalculatorFactory.java +++ /dev/null @@ -1,22 +0,0 @@ -package millions.calculators; - -import millions.model.Share; -import millions.model.calculators.PurchaseCalculator; -import millions.model.calculators.SaleCalculator; -import millions.model.calculators.TransactionCalculator; - -/** - * Factory for creating transaction calculators. - */ -public class TransactionCalculatorFactory { - - private TransactionCalculatorFactory() {} - - public TransactionCalculator createPurchaseCalculator(Share share) { - return new PurchaseCalculator(share); - } - - public TransactionCalculator createSaleCalculator(Share share) { - return new SaleCalculator(share); - } -} diff --git a/src/main/java/millions/model/Share.java b/src/main/java/millions/model/Share.java index 7967b95..5a7a726 100644 --- a/src/main/java/millions/model/Share.java +++ b/src/main/java/millions/model/Share.java @@ -10,9 +10,11 @@ public class Share { /** * @param stock Which stock the share is for. - * @param quantity How many stocks - * @param purchasePrice Purchase price of the share - * @throws IllegalArgumentException + * @param quantity How many stocks. + * @param purchasePrice Purchase price of the share. + * @throws IllegalArgumentException if stock is null. + * @throws IllegalArgumentException if quantity is null. + * @throws IllegalArgumentException if purchasePrice is null. */ public Share(Stock stock, BigDecimal quantity, BigDecimal purchasePrice) { this.stock = stock; @@ -30,27 +32,27 @@ public Share(Stock stock, BigDecimal quantity, BigDecimal purchasePrice) { } } - /** Share() with int quantity */ + /** Share() with int quantity. */ public Share(Stock stock, int quantity, BigDecimal purchasePrice) { this(stock, BigDecimal.valueOf(quantity), purchasePrice); } /** - * @return + * @return Stock object. */ public Stock getStock() { return this.stock; } /** - * @return + * @return BigDecimal: quantity. */ public BigDecimal getQuantity() { return this.quantity; } /** - * @return + * @return BigDecimal PurchasePrice. */ public BigDecimal getPurchasePrice() { return this.purchasePrice; diff --git a/src/main/java/millions/model/Stock.java b/src/main/java/millions/model/Stock.java index cc1a23f..e21fb9e 100644 --- a/src/main/java/millions/model/Stock.java +++ b/src/main/java/millions/model/Stock.java @@ -30,48 +30,48 @@ public Stock(String symbol, String company, List prices) { } } - /** Stock() with single price instead of list */ + /** Stock() with single price instead of list. */ public Stock(String symbol, String company, BigDecimal initialPrice) { this(symbol, company, new ArrayList<>(List.of(initialPrice))); } /** - * @return + * @return String: symbol. */ public String getSymbol() { return this.symbol; } /** - * @return + * @return String: company. */ public String getCompany() { return this.company; } /** - * @return + * @return BigDecimal: price. */ public BigDecimal getSalesPrice() { return this.prices.getLast(); } /** - * @param price Sales price + * @param price Sales price. */ public void addNewSalesPrice(BigDecimal price) { this.prices.add(price); } /** - * @return + * @return BigDecimal list of prices. */ public List getHistoricalPrices() { return this.prices; } /** - * @return + * @return BigDecimal highest recorded price. */ public BigDecimal getHighestPrice() { BigDecimal highestPrice = this.prices.get(0); @@ -84,7 +84,7 @@ public BigDecimal getHighestPrice() { } /** - * @return + * @return BigDecimal lowest recorded price. */ public BigDecimal getLowestPrice() { BigDecimal lowestPrice = this.prices.get(0); @@ -97,7 +97,7 @@ public BigDecimal getLowestPrice() { } /** - * @return + * @return BigDecimal price difference from last week */ public BigDecimal getLatestPriceChange() { if (this.prices.size() < 2) { diff --git a/src/main/java/millions/model/Transaction.java b/src/main/java/millions/model/Transaction.java index 6e1e8b1..69c1167 100644 --- a/src/main/java/millions/model/Transaction.java +++ b/src/main/java/millions/model/Transaction.java @@ -17,18 +17,30 @@ protected Transaction(Share share, int week, TransactionCalculator transactionCa this.committed = false; } + /** + * @return Share object + */ public Share getShare() { return this.share; } + /** + * @return int: week + */ public int getWeek() { return this.week; } + /** + * @return TransactionCalculator object + */ public TransactionCalculator getCalculator() { return this.transactionCalculator; } + /** + * @return Boolean: status + */ public boolean isCommitted() { return this.committed; } diff --git a/src/main/java/millions/model/TransactionArchive.java b/src/main/java/millions/model/TransactionArchive.java index 6910a6c..20b7e7a 100644 --- a/src/main/java/millions/model/TransactionArchive.java +++ b/src/main/java/millions/model/TransactionArchive.java @@ -13,6 +13,11 @@ public TransactionArchive() { this.transactions = new ArrayList<>(); } + /** + * Adds a transaction to the archive + * @param transaction transaction object + * @return Boolean for success + */ public boolean add(Transaction transaction) { if (transactions.contains(transaction)) { return false; @@ -21,25 +26,45 @@ public boolean add(Transaction transaction) { return true; } + /** + * @return Boolean + */ public boolean isEmpty() { return transactions.isEmpty(); } + /** + * @return List of transaction objects + */ public List getTransactions() { return new ArrayList<>(transactions); } + /** + * returns transaction processed in a given week + * @param week int + * @return List of transaction objects + */ public List getTransactions(int week) { return transactions.stream().filter(x -> x.getWeek() == week).collect(Collectors.toList()); } + /** + * Returns all purchase transactions in a given week + * @param week int + * @return List of transaction objects + */ public List getPurchases(int week) { return transactions.stream() .filter(t -> t.getWeek() == week && t instanceof Purchase) .map(t -> (Purchase) t) .collect(Collectors.toList()); } - + /** + * Returns all sale transactions in a given week + * @param week int + * @return List of transaction objects + */ public List getSales(int week) { return transactions.stream() .filter(t -> t.getWeek() == week && t instanceof Sale)