diff --git a/src/main/java/Controller/StockFileHandler.java b/src/main/java/Controller/StockFileHandler.java index 8874232..b64f9c0 100644 --- a/src/main/java/Controller/StockFileHandler.java +++ b/src/main/java/Controller/StockFileHandler.java @@ -11,43 +11,27 @@ public class StockFileHandler { // lesing public List loadStocksFromFile(String filename) throws IOException { - List stocks = new ArrayList<>(); - List lines = Files.readAllLines(Paths.get(filename)); - - for (String line : lines) { - line = line.trim(); - if (line.isEmpty() || line.startsWith("#")) { - continue; - } - - String[] parts = line.split(","); - if (parts.length == 3) { - String symbol = parts[0]; - String name = parts[1]; - BigDecimal price = new BigDecimal(parts[2]); - - stocks.add(new Stock(symbol, name, price)); - } - } - return stocks; // returnerer listen + return Files.readAllLines(Paths.get(filename)).stream() + .map(String::trim) + .filter(line -> !line.isEmpty() && !line.startsWith("#")) + .map(line -> line.split(",")) + .filter(parts -> parts.length == 3) + .map(parts -> new Stock(parts[0], parts[1], new BigDecimal(parts[2]))) + .toList(); } // lagring public void saveStocksToFile(String filename, List stocks) throws IOException { List lines = new ArrayList<>(); - - // header lines.add("# Ticker,Name,Price"); - - for (Stock stock : stocks) { - // formaterer hver aksje som "SYMBOL,NAME,PRICE" - String line = String.format("%s,%s,%s", + + lines.addAll(stocks.stream() + .map(stock -> String.format("%s,%s,%s", stock.getSymbol(), stock.getCompany(), - stock.getSalesPrice().toString()); - lines.add(line); - } - + stock.getSalesPrice().toString())) + .toList()); + Files.write(Paths.get(filename), lines); } } \ No newline at end of file diff --git a/src/main/java/Model/Portfolio.java b/src/main/java/Model/Portfolio.java index 949bea3..ba050e7 100644 --- a/src/main/java/Model/Portfolio.java +++ b/src/main/java/Model/Portfolio.java @@ -33,13 +33,9 @@ public List getShares(String symbol) { if (symbol == null || symbol.isBlank()) { throw new IllegalArgumentException("Symbol cannot be null or blank"); } - List result = new ArrayList<>(); - for (Share share : shares) { - if (share.getStock().getSymbol().equals(symbol)) { - result.add(share); - } - } - return result; + return shares.stream() + .filter(share -> share.getStock().getSymbol().equals(symbol)) + .toList(); } public boolean contains(Share share) { @@ -50,12 +46,9 @@ public boolean contains(Share share) { } public BigDecimal getNetWorth() { - BigDecimal total = BigDecimal.ZERO; - for (Share share : shares) { - SaleCalculator calc = new SaleCalculator(share); - total = total.add(calc.calculateTotal()); - } - return total; + return shares.stream() + .map(share -> new SaleCalculator(share).calculateTotal()) + .reduce(BigDecimal.ZERO, BigDecimal::add); } } diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index f40803d..88de729 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -2,6 +2,7 @@ C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Control C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\Exchange.java C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\ExchangeObserver.java C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\Player.java +C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\PlayerStatus.java C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\Portfolio.java C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\Purchase.java C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\PurchaseCalculator.java @@ -12,6 +13,7 @@ C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\S C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\Transaction.java C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\TransactionArchive.java C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\TransactionCalculator.java +C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\TransactionFactory.java C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\View\GameSetupScene.java C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\View\Launcher.java C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\View\MainGameScene.java