diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Portfolio.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Portfolio.java index bee0941..f27e44c 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Portfolio.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Portfolio.java @@ -4,29 +4,61 @@ import java.util.List; import java.util.Objects; +/** + * Represents a player's portfolio of shares. + *

+ * The portfolio stores shares and provides operations for adding, removing, + * retrieving and checking ownership of shares. + *

+ */ public class Portfolio { private final List shares = new ArrayList<>(); + /** + * Creates an empty portfolio. + */ public Portfolio() { // Intentionally empty } + /** + * Adds a share to the portfolio. + * + * @param share the share to add + * @return {@code true} if the share was added, {@code false} otherwise + */ public boolean addShare(Share share) { Objects.requireNonNull(share, "share cannot be null"); return shares.add(share); } + /** + * Removes a share from the portfolio. + * + * @param share the share to remove + * @return {@code true} if the share was removed, {@code false} if it was not present + */ public boolean removeShare(Share share) { Objects.requireNonNull(share, "share cannot be null"); return shares.remove(share); } - + /** + * Returns an immutable snapshot of all shares in the portfolio. + * + * @return a list of shares + */ public List getShares() { return List.copyOf(shares); } + /** + * Returns an immutable snapshot of all shares whose stock symbol matches the given symbol. + * + * @param symbol the stock symbol to match + * @return a list of shares matching the symbol + */ public List getShares(String symbol) { Objects.requireNonNull(symbol, "symbol cannot be null"); return shares.stream() @@ -34,6 +66,12 @@ public List getShares(String symbol) { .toList(); } + /** + * Checks whether the given share exists in the portfolio. + * + * @param share the share to check + * @return {@code true} if the portfolio contains the share, otherwise {@code false} + */ public boolean contains(Share share) { Objects.requireNonNull(share, "share cannot be null"); return shares.contains(share);