package given;
import java.math.BigDecimal;
import java.util.*;
class Position {
private String accountId;
private String symbol;
private long shares;
public Position(String accountId, String symbol, long shares) {
this.accountId = accountId;
this.symbol = symbol;
this.shares = shares;
}
public String getAccountId() {
return accountId;
}
public String getSymbol() {
return symbol;
}
public long getShares() {
return shares;
}
}
class Quote {
private String symbol;
private BigDecimal price;
public Quote(String symbol, double price) {
this.symbol = symbol;
this.price = BigDecimal.valueOf(price);
}
public String getSymbol() {
return symbol;
}
public BigDecimal getPrice() {
return price;
}
}
class PositionService {
private List previousClosedQuotes;
public QuoteService() {
// Initializing the list dynamically
this.previousClosedQuotes = new ArrayList<>();
// Adding previous close quotes dynamically using double values
this.previousClosedQuotes.add(new Quote("WMT", 140.50));
this.previousClosedQuotes.add(new Quote("MCD", 210.00));
this.previousClosedQuotes.add(new Quote("AAPL", 144.00));
this.previousClosedQuotes.add(new Quote("GOOGL", 2700.00));
this.previousClosedQuotes.add(new Quote("TSLA", 730.00));
this.previousClosedQuotes.add(new Quote("PB", 138.33)); // Additional example
}
public List
getAllPreviousClosedQuotes() {
return previousClosedQuotes;
}
// Write this method to get the latest price of a given symbol
public BigDecimal getLatestPrice(String symbol) {
// Look for the latest price in previousClosedQuotes
for (Quote quote : previousClosedQuotes) {
if (quote.getSymbol().equals(symbol)) {
return quote.getPrice();
}
}
// Default price if not found
return BigDecimal.ZERO;
}
}
public class TradingFirm {
public static void main(String[] args) {
PositionService positionService = new PositionService();
QuoteService quoteService = new QuoteService();
List
previousQuotes = quoteService.getAllPreviousClosedQuotes();
// Map to store total account values
Map