aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java
diff options
context:
space:
mode:
author9308233900 <reagan_hunt@brown.edu>2021-04-20 10:24:34 -0700
committer9308233900 <reagan_hunt@brown.edu>2021-04-20 10:24:34 -0700
commit2e3243bb52b23571df529697d841f883846a8954 (patch)
tree315eda2621ddc65d96472e2fc29548356d25425b /src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java
parent564295d2ac6b40e349a1cbc3e3bd329989e9ec82 (diff)
parent4411ae1564d716e5aa063e4c47302ffc907a078a (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.java32
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);