diff options
author | 9308233900 <reagan_hunt@brown.edu> | 2021-04-20 10:24:34 -0700 |
---|---|---|
committer | 9308233900 <reagan_hunt@brown.edu> | 2021-04-20 10:24:34 -0700 |
commit | 2e3243bb52b23571df529697d841f883846a8954 (patch) | |
tree | 315eda2621ddc65d96472e2fc29548356d25425b /src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java | |
parent | 564295d2ac6b40e349a1cbc3e3bd329989e9ec82 (diff) | |
parent | 4411ae1564d716e5aa063e4c47302ffc907a078a (diff) |
Merge branch 'master' of https://github.com/cs0320-2021/term-project-cohwille-jmccaul3-mfoiani-rhunt2master
Diffstat (limited to 'src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java')
-rw-r--r-- | src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java b/src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java index 31e2625..e749aff 100644 --- a/src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java +++ b/src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java @@ -11,8 +11,9 @@ public class LinkMapper { //TODO: Review what we actually need in here //not strictly necessary but may be nice to maintain - private List<List<Trade>> allTrades = new ArrayList<>(); + //private List<List<Trade>> allTrades = new ArrayList<>(); private Map<Holder, Set<Holder>> followerToLeaders = new HashMap<>(); + private static Map<Integer, Set<Trade>> holderIDToTrades = new HashMap<>(); private DatabaseQuerier databaseQuerier; public LinkMapper(DatabaseQuerier db){ @@ -55,6 +56,25 @@ public class LinkMapper { return followerToLeaders; } + public static List<String> getCommonTrades(int leaderID, int followerID){ + Set<Trade> leaderTrades = new HashSet<>(holderIDToTrades.get(leaderID)); + Set<Trade> followerTrades = new HashSet<>(holderIDToTrades.get(followerID)); + + leaderTrades.retainAll(followerTrades); + //TODO: Could retain WAY more info in here! + List<String> commonTrades = new ArrayList<>(); + for(Trade leaderTrade: leaderTrades){ + String buyType = ""; + if(leaderTrade.isBuy()){ + buyType = "Buy"; + } else{ + buyType = "Sell"; + } + commonTrades.add(buyType + ": " + leaderTrade.getStock()); + } + return commonTrades; + } + /** * Converts a single trade list into entries in the follower to leader map * @param tradeList - a list of trades for a single stock (either buy or sell) @@ -64,7 +84,15 @@ public class LinkMapper { //gets in order list of people for (Trade trade : tradeList) { - holderList.add(trade.getHolder()); + Holder currentHolder = trade.getHolder(); + holderList.add(currentHolder); + if(!holderIDToTrades.containsKey(currentHolder.getId())){ + Set<Trade> tradeSet = new HashSet<>(); + tradeSet.add(trade); + holderIDToTrades.put(currentHolder.getId(), tradeSet); + } else { + holderIDToTrades.get(currentHolder.getId()).add(trade); + } } //Set<Holder> followers = new HashSet<>(holderList); |